API¶
This part of the documentation lists the full API reference of all publicclasses and functions.
Decorators¶
- click.command(name:Callable[[...],Any])→Command¶
- click.command(name:str|None,cls:type[CmdType],**attrs:Any)→Callable[[Callable[[...],Any]],CmdType]
- click.command(name:None=None,*,cls:type[CmdType],**attrs:Any)→Callable[[Callable[[...],Any]],CmdType]
- click.command(name:str|None=None,cls:None=None,**attrs:Any)→Callable[[Callable[[...],Any]],Command]
Creates a new
Commandand uses the decorated function ascallback. This will also automatically attach all decoratedoption()s andargument()s as parameters to the command.The name of the command defaults to the name of the function, converted tolowercase, with underscores
_replaced by dashes-, and the suffixes_command,_cmd,_group, and_grpare removed. For example,init_data_commandbecomesinit-data.All keyword arguments are forwarded to the underlying command class.For the
paramsargument, any decorated params are appended tothe end of the list.Once decorated the function turns into a
Commandinstancethat can be invoked as a command line utility or be attached to acommandGroup.- Parameters:
name – The name of the command. Defaults to modifying the function’sname as described above.
cls – The command class to create. Defaults to
Command.
Changelog
Changed in version 8.2:The suffixes
_command,_cmd,_group, and_grpareremoved when generating the name.Changed in version 8.1:This decorator can be applied without parentheses.
Changed in version 8.1:The
paramsargument can be used. Decorated params areappended to the end of the list.
- click.group(name:Callable[[...],Any])→Group¶
- click.group(name:str|None,cls:type[GrpType],**attrs:Any)→Callable[[Callable[[...],Any]],GrpType]
- click.group(name:None=None,*,cls:type[GrpType],**attrs:Any)→Callable[[Callable[[...],Any]],GrpType]
- click.group(name:str|None=None,cls:None=None,**attrs:Any)→Callable[[Callable[[...],Any]],Group]
Creates a new
Groupwith a function as callback. Thisworks otherwise the same ascommand()just that theclsparameter is set toGroup.Changelog
Changed in version 8.1:This decorator can be applied without parentheses.
- click.argument(*param_decls,cls=None,**attrs)¶
Attaches an argument to the command. All positional arguments arepassed as parameter declarations to
Argument; all keywordarguments are forwarded unchanged (exceptcls).This is equivalent to creating anArgumentinstance manuallyand attaching it to theCommand.paramslist.For the default argument class, refer to
ArgumentandParameterfor descriptions of parameters.
- click.option(*param_decls,cls=None,**attrs)¶
Attaches an option to the command. All positional arguments arepassed as parameter declarations to
Option; all keywordarguments are forwarded unchanged (exceptcls).This is equivalent to creating anOptioninstance manuallyand attaching it to theCommand.paramslist.For the default option class, refer to
OptionandParameterfor descriptions of parameters.
- click.password_option(*param_decls,**kwargs)¶
Add a
--passwordoption which prompts for a password, hidinginput and asking to enter the value again for confirmation.
- click.confirmation_option(*param_decls,**kwargs)¶
Add a
--yesoption which shows a prompt before continuing ifnot passed. If the prompt is declined, the program will exit.
- click.version_option(version=None,*param_decls,package_name=None,prog_name=None,message=None,**kwargs)¶
Add a
--versionoption which immediately prints the versionnumber and exits the program.If
versionis not provided, Click will try to detect it usingimportlib.metadata.version()to get the version for thepackage_name.If
package_nameis not provided, Click will try to detect it byinspecting the stack frames. This will be used to detect theversion, so it must match the name of the installed package.- Parameters:
version (str |None) – The version number to show. If not provided, Clickwill try to detect it.
param_decls (str) – One or more option names. Defaults to the singlevalue
"--version".package_name (str |None) – The package name to detect the version from. Ifnot provided, Click will try to detect it.
prog_name (str |None) – The name of the CLI to show in the message. If notprovided, it will be detected from the command.
message (str |None) – The message to show. The values
%(prog)s,%(package)s, and%(version)sare available. Defaults to"%(prog)s,version%(version)s".
- Raises:
RuntimeError –
versioncould not be detected.- Return type:
Callable[[FC],FC]
Changelog
Changed in version 8.0:Add the
package_nameparameter, and the%(package)svalue for messages.Changed in version 8.0:Use
importlib.metadatainstead ofpkg_resources. Theversion is detected based on the package name, not the entrypoint name. The Python package name must match the installedpackage name, or be passed withpackage_name=.
- click.help_option(*param_decls,**kwargs)¶
Pre-configured
--helpoption which immediately prints the help pageand exits the program.
- click.pass_context(f)¶
Marks a callback as wanting to receive the current contextobject as first argument.
- Parameters:
f (t.Callable[te.Concatenate[Context,P],R])
- Return type:
t.Callable[P, R]
- click.pass_obj(f)¶
Similar to
pass_context(), but only pass the object on thecontext onwards (Context.obj). This is useful if that objectrepresents the state of a nested system.- Parameters:
f (t.Callable[te.Concatenate[T,P],R])
- Return type:
t.Callable[P, R]
- click.make_pass_decorator(object_type,ensure=False)¶
Given an object type this creates a decorator that will worksimilar to
pass_obj()but instead of passing the object of thecurrent context, it will find the innermost context of typeobject_type().This generates a decorator that works roughly like this:
fromfunctoolsimportupdate_wrapperdefdecorator(f):@pass_contextdefnew_func(ctx,*args,**kwargs):obj=ctx.find_object(object_type)returnctx.invoke(f,obj,*args,**kwargs)returnupdate_wrapper(new_func,f)returndecorator
- click.decorators.pass_meta_key(key,*,doc_description=None)¶
Create a decorator that passes a key from
click.Context.metaas the first argument to the decoratedfunction.- Parameters:
- Return type:
t.Callable[[t.Callable[te.Concatenate[T, P], R]], t.Callable[P, R]]
Changelog
Added in version 8.0.
Utilities¶
- click.echo(message=None,file=None,nl=True,err=False,color=None)¶
Print a message and newline to stdout or a file. This should beused instead of
print()because it provides better supportfor different data, files, and environments.Compared to
print(), this does the following:Ensures that the output encoding is not misconfigured on Linux.
Supports Unicode in the Windows console.
Supports writing to binary outputs, and supports writing bytesto text outputs.
Supports colors and styles on Windows.
Removes ANSI color and style codes if the output does not looklike an interactive terminal.
Always flushes the output.
- Parameters:
message (Any |None) – The string or bytes to output. Other objects areconverted to strings.
file (IO[Any]|None) – The file to write to. Defaults to
stdout.err (bool) – Write to
stderrinstead ofstdout.nl (bool) – Print a newline after the message. Enabled by default.
color (bool |None) – Force showing or hiding colors and other styles. Bydefault Click will remove color if the output does not look likean interactive terminal.
- Return type:
None
Changelog
Changed in version 6.0:Support Unicode output on the Windows console. Click does notmodify
sys.stdout, sosys.stdout.write()andprint()will still not support Unicode.Changed in version 4.0:Added the
colorparameter.Added in version 3.0:Added the
errparameter.Changed in version 2.0:Support colors on Windows if colorama is installed.
- click.echo_via_pager(text_or_generator,color=None)¶
This function takes a text and shows it via an environment specificpager on stdout.
Changelog
Changed in version 3.0:Added the
colorflag.
- click.prompt(text,default=None,hide_input=False,confirmation_prompt=False,type=None,value_proc=None,prompt_suffix=':',show_default=True,err=False,show_choices=True)¶
Prompts a user for input. This is a convenience function that canbe used to prompt a user for input later.
If the user aborts the input by sending an interrupt signal, thisfunction will catch it and raise a
Abortexception.- Parameters:
text (str) – the text to show for the prompt.
default (Any |None) – the default value to use if no input happens. If thisis not given it will prompt until it’s aborted.
hide_input (bool) – if this is set to true then the input value willbe hidden.
confirmation_prompt (bool |str) – Prompt a second time to confirm thevalue. Can be set to a string instead of
Trueto customizethe message.type (ParamType |Any |None) – the type to use to check the value against.
value_proc (Callable[[str],Any]|None) – if this parameter is provided it’s a function thatis invoked instead of the type conversion toconvert a value.
prompt_suffix (str) – a suffix that should be added to the prompt.
show_default (bool) – shows or hides the default value in the prompt.
err (bool) – if set to true the file defaults to
stderrinstead ofstdout, the same as with echo.show_choices (bool) – Show or hide choices if the passed type is a Choice.For example if type is a Choice of either day or week,show_choices is true and text is “Group by” then theprompt will be “Group by (day, week): “.
- Return type:
Changed in version 8.3.1:A space is no longer appended to the prompt.
Changelog
Added in version 8.0:
confirmation_promptcan be a custom string.Added in version 7.0:Added the
show_choicesparameter.Added in version 6.0:Added unicode support for cmd.exe on Windows.
Added in version 4.0:Added the
errparameter.
- click.confirm(text,default=False,abort=False,prompt_suffix=':',show_default=True,err=False)¶
Prompts for confirmation (yes/no question).
If the user aborts the input by sending a interrupt signal thisfunction will catch it and raise a
Abortexception.- Parameters:
text (str) – the question to ask.
default (bool |None) – The default value to use when no input is given. If
None, repeat until input is given.abort (bool) – if this is set to
Truea negative answer aborts theexception by raisingAbort.prompt_suffix (str) – a suffix that should be added to the prompt.
show_default (bool) – shows or hides the default value in the prompt.
err (bool) – if set to true the file defaults to
stderrinstead ofstdout, the same as with echo.
- Return type:
Changed in version 8.3.1:A space is no longer appended to the prompt.
Changelog
Changed in version 8.0:Repeat until input is given if
defaultisNone.Added in version 4.0:Added the
errparameter.
- click.progressbar(*,length:int,label:str|None=None,hidden:bool=False,show_eta:bool=True,show_percent:bool|None=None,show_pos:bool=False,fill_char:str='#',empty_char:str='-',bar_template:str='%(label)s [%(bar)s] %(info)s',info_sep:str=' ',width:int=36,file:TextIO|None=None,color:bool|None=None,update_min_steps:int=1)→ProgressBar[int]¶
- click.progressbar(iterable:Iterable[V]|None=None,length:int|None=None,label:str|None=None,hidden:bool=False,show_eta:bool=True,show_percent:bool|None=None,show_pos:bool=False,item_show_func:Callable[[V|None],str|None]|None=None,fill_char:str='#',empty_char:str='-',bar_template:str='%(label)s [%(bar)s] %(info)s',info_sep:str=' ',width:int=36,file:TextIO|None=None,color:bool|None=None,update_min_steps:int=1)→ProgressBar[V]
This function creates an iterable context manager that can be usedto iterate over something while showing a progress bar. It willeither iterate over the
iterableorlengthitems (that are countedup). While iteration happens, this function will print a renderedprogress bar to the givenfile(defaults to stdout) and will attemptto calculate remaining time and more. By default, this progress barwill not be rendered if the file is not a terminal.The context manager creates the progress bar. When the contextmanager is entered the progress bar is already created. With everyiteration over the progress bar, the iterable passed to the bar isadvanced and the bar is updated. When the context manager exits,a newline is printed and the progress bar is finalized on screen.
Note: The progress bar is currently designed for use cases where thetotal progress can be expected to take at least several seconds.Because of this, the ProgressBar class object won’t displayprogress that is considered too fast, and progress where the timebetween steps is less than a second.
No printing must happen or the progress bar will be unintentionallydestroyed.
Example usage:
withprogressbar(items)asbar:foriteminbar:do_something_with(item)
Alternatively, if no iterable is specified, one can manually update theprogress bar through the
update()method instead of directlyiterating over the progress bar. The update method accepts the numberof steps to increment the bar with:withprogressbar(length=chunks.total_bytes)asbar:forchunkinchunks:process_chunk(chunk)bar.update(chunks.bytes)
The
update()method also takes an optional value specifying thecurrent_itemat the new position. This is useful when usedtogether withitem_show_functo customize the output for eachmanual step:withclick.progressbar(length=total_size,label='Unzipping archive',item_show_func=lambdaa:a.filename)asbar:forarchiveinzip_file:archive.extract()bar.update(archive.size,archive)
- Parameters:
iterable – an iterable to iterate over. If not provided the lengthis required.
length – the number of items to iterate over. By default theprogressbar will attempt to ask the iterator about itslength, which might or might not work. If an iterable isalso provided this parameter can be used to override thelength. If an iterable is not provided the progress barwill iterate over a range of that length.
label – the label to show next to the progress bar.
hidden – hide the progressbar. Defaults to
False. When no tty isdetected, it will only print the progressbar label. Setting this toFalsealso disables that.show_eta – enables or disables the estimated time display. This isautomatically disabled if the length cannot bedetermined.
show_percent – enables or disables the percentage display. Thedefault is
Trueif the iterable has a length orFalseif not.show_pos – enables or disables the absolute position display. Thedefault is
False.item_show_func – A function called with the current item whichcan return a string to show next to the progress bar. If thefunction returns
Nonenothing is shown. The current item canbeNone, such as when entering and exiting the bar.fill_char – the character to use to show the filled part of theprogress bar.
empty_char – the character to use to show the non-filled part ofthe progress bar.
bar_template – the format string to use as template for the bar.The parameters in it are
labelfor the label,barfor the progress bar andinfofor theinfo section.info_sep – the separator between multiple info items (eta etc.)
width – the width of the progress bar in characters, 0 means fullterminal width
file – The file to write to. If this is not a terminal thenonly the label is printed.
color – controls if the terminal supports ANSI colors or not. Thedefault is autodetection. This is only needed if ANSIcodes are included anywhere in the progress bar outputwhich is not the case by default.
update_min_steps – Render only when this many updates havecompleted. This allows tuning for very fast iterators.
Changelog
Added in version 8.2:The
hiddenargument.Changed in version 8.0:Output is shown even if execution time is less than 0.5 seconds.
Changed in version 8.0:
item_show_funcshows the current item, not the previous one.Changed in version 8.0:Labels are echoed if the output is not a TTY. Reverts a changein 7.0 that removed all output.
Added in version 8.0:The
update_min_stepsparameter.Added in version 4.0:The
colorparameter andupdatemethod.Added in version 2.0.
- click.clear()¶
Clears the terminal screen. This will have the effect of clearingthe whole visible space of the terminal and moving the cursor to thetop left. This does not do anything if not connected to a terminal.
Changelog
Added in version 2.0.
- Return type:
None
- click.style(text,fg=None,bg=None,bold=None,dim=None,underline=None,overline=None,italic=None,blink=None,reverse=None,strikethrough=None,reset=True)¶
Styles a text with ANSI styles and returns the new string. Bydefault the styling is self contained which means that at the endof the string a reset code is issued. This can be prevented bypassing
reset=False.Examples:
click.echo(click.style('Hello World!',fg='green'))click.echo(click.style('ATTENTION!',blink=True))click.echo(click.style('Some things',reverse=True,fg='cyan'))click.echo(click.style('More colors',fg=(255,12,128),bg=117))
Supported color names:
black(might be a gray)redgreenyellow(might be an orange)bluemagentacyanwhite(might be light gray)bright_blackbright_redbright_greenbright_yellowbright_bluebright_magentabright_cyanbright_whitereset(reset the color code only)
If the terminal supports it, color may also be specified as:
An integer in the interval [0, 255]. The terminal must support8-bit/256-color mode.
An RGB tuple of three integers in [0, 255]. The terminal mustsupport 24-bit/true-color mode.
Seehttps://en.wikipedia.org/wiki/ANSI_color andhttps://gist.github.com/XVilka/8346728 for more information.
- Parameters:
text (Any) – the string to style with ansi codes.
fg (int |tuple[int,int,int]|str |None) – if provided this will become the foreground color.
bg (int |tuple[int,int,int]|str |None) – if provided this will become the background color.
bold (bool |None) – if provided this will enable or disable bold mode.
dim (bool |None) – if provided this will enable or disable dim mode. This isbadly supported.
underline (bool |None) – if provided this will enable or disable underline.
overline (bool |None) – if provided this will enable or disable overline.
italic (bool |None) – if provided this will enable or disable italic.
blink (bool |None) – if provided this will enable or disable blinking.
reverse (bool |None) – if provided this will enable or disable inverserendering (foreground becomes background and theother way round).
strikethrough (bool |None) – if provided this will enable or disablestriking through text.
reset (bool) – by default a reset-all code is added at the end of thestring which means that styles do not carry over. Thiscan be disabled to compose styles.
- Return type:
Changelog
Changed in version 8.0:A non-string
messageis converted to a string.Changed in version 8.0:Added support for 256 and RGB color codes.
Changed in version 8.0:Added the
strikethrough,italic, andoverlineparameters.Changed in version 7.0:Added support for bright colors.
Added in version 2.0.
- click.unstyle(text)¶
Removes ANSI styling information from a string. Usually it’s notnecessary to use this function as Click’s echo function willautomatically remove styling if necessary.
Changelog
Added in version 2.0.
- click.secho(message=None,file=None,nl=True,err=False,color=None,**styles)¶
This function combines
echo()andstyle()into onecall. As such the following two calls are the same:click.secho('Hello World!',fg='green')click.echo(click.style('Hello World!',fg='green'))
All keyword arguments are forwarded to the underlying functionsdepending on which one they go with.
Non-string types will be converted to
str. However,bytesare passed directly toecho()without applyingstyle. If you want to style bytes that represent text, callbytes.decode()first.Changelog
Changed in version 8.0:A non-string
messageis converted to a string. Bytes arepassed through without style applied.Added in version 2.0.
- click.edit(text:bytes|bytearray,editor:str|None=None,env:Mapping[str,str]|None=None,require_save:bool=False,extension:str='.txt')→bytes|None¶
- click.edit(text:str,editor:str|None=None,env:Mapping[str,str]|None=None,require_save:bool=True,extension:str='.txt')→str|None
- click.edit(text:None=None,editor:str|None=None,env:Mapping[str,str]|None=None,require_save:bool=True,extension:str='.txt',filename:str|Iterable[str]|None=None)→None
Edits the given text in the defined editor. If an editor is given(should be the full path to the executable but the regular operatingsystem search path is used for finding the executable) it overridesthe detected editor. Optionally, some environment variables can beused. If the editor is closed without changes,
Noneis returned. Incase a file is edited directly the return value is alwaysNoneandrequire_saveandextensionare ignored.If the editor cannot be opened a
UsageErroris raised.Note for Windows: to simplify cross-platform usage, the newlines areautomatically converted from POSIX to Windows and vice versa. As such,the message here will have
\nas newline markers.- Parameters:
text – the text to edit.
editor – optionally the editor to use. Defaults to automaticdetection.
env – environment variables to forward to the editor.
require_save – if this is true, then not saving in the editorwill make the return value become
None.extension – the extension to tell the editor about. This defaultsto
.txtbut changing this might change syntaxhighlighting.filename – if provided it will edit this file instead of theprovided text contents. It will not use a temporaryfile as an indirection in that case. If the editor supportsediting multiple files at once, a sequence of files may bepassed as well. Invoke
click.fileonce per file insteadif multiple files cannot be managed at once or editing thefiles serially is desired.
Changelog
Changed in version 8.2.0:
filenamenow accepts anyIterable[str]in addition to astrif theeditorsupports editing multiple files at once.
- click.launch(url,wait=False,locate=False)¶
This function launches the given URL (or filename) in the defaultviewer application for this file type. If this is an executable, itmight launch the executable in a new session. The return value isthe exit code of the launched application. Usually,
0indicatessuccess.Examples:
click.launch('https://click.palletsprojects.com/')click.launch('/my/downloaded/file',locate=True)
Changelog
Added in version 2.0.
- Parameters:
url (str) – URL or filename of the thing to launch.
wait (bool) – Wait for the program to exit before returning. Thisonly works if the launched program blocks. In particular,
xdg-openon Linux does not block.locate (bool) – if this is set to
Truethen instead of launching theapplication associated with the URL it will attempt tolaunch a file manager with the file located. Thismight have weird effects if the URL does not point tothe filesystem.
- Return type:
- click.getchar(echo=False)¶
Fetches a single character from the terminal and returns it. Thiswill always return a unicode character and under certain rarecircumstances this might return more than one character. Thesituations which more than one character is returned is when forwhatever reason multiple characters end up in the terminal buffer orstandard input was not actually a terminal.
Note that this will always read from the terminal, even if somethingis piped into the standard input.
Note for Windows: in rare cases when typing non-ASCII characters, thisfunction might wait for a second character and then return both at once.This is because certain Unicode characters look like special-key markers.
Changelog
Added in version 2.0.
- click.pause(info=None,err=False)¶
This command stops execution and waits for the user to press anykey to continue. This is similar to the Windows batch “pause”command. If the program is not run through a terminal, this commandwill instead do nothing.
Changelog
Added in version 4.0:Added the
errparameter.Added in version 2.0.
- click.get_binary_stream(name)¶
Returns a system stream for byte processing.
- click.get_text_stream(name,encoding=None,errors='strict')¶
Returns a system stream for text processing. This usually returnsa wrapped stream around a binary stream returned from
get_binary_stream()but it also can take shortcuts for alreadycorrectly configured streams.
- click.open_file(filename,mode='r',encoding=None,errors='strict',lazy=False,atomic=False)¶
Open a file, with extra behavior to handle
'-'to indicatea standard stream, lazy open on write, and atomic write. Similar tothe behavior of theFileparam type.If
'-'is given to openstdoutorstdin, the stream iswrapped so that using it in a context manager will not close it.This makes it possible to use the function without accidentallyclosing a standard stream:withopen_file(filename)asf:...
- Parameters:
filename (str |PathLike[str]) – The name or Path of the file to open, or
'-'forstdin/stdout.mode (str) – The mode in which to open the file.
encoding (str |None) – The encoding to decode or encode a file opened intext mode.
errors (str |None) – The error handling mode.
lazy (bool) – Wait to open the file until it is accessed. For readmode, the file is temporarily opened to raise access errorsearly, then closed until it is read again.
atomic (bool) – Write to a temporary file and replace the given fileon close.
- Return type:
Changelog
Added in version 3.0.
- click.get_app_dir(app_name,roaming=True,force_posix=False)¶
Returns the config folder for the application. The default behavioris to return whatever is most appropriate for the operating system.
To give you an idea, for an app called
"FooBar", something likethe following folders could be returned:- Mac OS X:
~/Library/ApplicationSupport/FooBar- Mac OS X (POSIX):
~/.foo-bar- Unix:
~/.config/foo-bar- Unix (POSIX):
~/.foo-bar- Windows (roaming):
C:\Users\<user>\AppData\Roaming\FooBar- Windows (not roaming):
C:\Users\<user>\AppData\Local\FooBar
Changelog
Added in version 2.0.
- Parameters:
app_name (str) – the application name. This should be properly capitalizedand can contain whitespace.
roaming (bool) – controls if the folder should be roaming or not on Windows.Has no effect otherwise.
force_posix (bool) – if this is set to
Truethen on any POSIX system thefolder will be stored in the home folder with a leadingdot instead of the XDG config home or darwin’sapplication support folder.
- Return type:
- click.format_filename(filename,shorten=False)¶
Format a filename as a string for display. Ensures the filename can bedisplayed by replacing any invalid bytes or surrogate escapes in the namewith the replacement character
�.Invalid bytes or surrogate escapes will raise an error when written to astream with
errors="strict". This will typically happen withstdoutwhen the locale is something likeen_GB.UTF-8.Many scenariosare safe to write surrogates though, due to PEP 538 andPEP 540, including:
Writing to
stderr, which useserrors="backslashreplace".The system has
LANG=C.UTF-8,C, orPOSIX. Python opensstdout and stderr witherrors="surrogateescape".None of
LANG/LC_*are set. Python assumesLANG=C.UTF-8.Python is started in UTF-8 mode with
PYTHONUTF8=1or-Xutf8.Python opens stdout and stderr witherrors="surrogateescape".
Commands¶
- click.BaseCommand¶
alias of
_BaseCommand
- classclick.Command(name,context_settings=None,callback=None,params=None,help=None,epilog=None,short_help=None,options_metavar='[OPTIONS]',add_help_option=True,no_args_is_help=False,hidden=False,deprecated=False)¶
Commands are the basic building block of command line interfaces inClick. A basic command handles command line parsing and might dispatchmore parsing to commands nested below it.
- Parameters:
name (str |None) – the name of the command to use unless a group overrides it.
context_settings (cabc.MutableMapping[str,t.Any]|None) – an optional dictionary with defaults that arepassed to the context object.
callback (t.Callable[...,t.Any]|None) – the callback to invoke. This is optional.
params (list[Parameter]|None) – the parameters to register with this command. This canbe either
OptionorArgumentobjects.help (str |None) – the help string to use for this command.
epilog (str |None) – like the help string but it’s printed at the end of thehelp page after everything else.
short_help (str |None) – the short help to use for this command. This isshown on the command listing of the parent command.
add_help_option (bool) – by default each command registers a
--helpoption. This can be disabled by this parameter.no_args_is_help (bool) – this controls what happens if no arguments areprovided. This option is disabled by default.If enabled this will add
--helpas argumentif no arguments are passedhidden (bool) – hide this command from help outputs.
deprecated (bool |str) – If
Trueor non-empty string, issues a messageindicating that the command is deprecated and highlightsits deprecation in –help. The message can be customizedby using a string as the value.options_metavar (str |None)
Changelog
Changed in version 8.2:This is the base class for all commands, not
BaseCommand.deprecatedcan be set to a string as well to customize thedeprecation message.Changed in version 8.1:
help,epilog, andshort_helpare stored unprocessed,all formatting is done when outputting help text, not at init,and is done even if not using the@commanddecorator.Changed in version 8.0:Added a
reprshowing the command name.Changed in version 7.1:Added the
no_args_is_helpparameter.Changed in version 2.0:Added the
context_settingsparameter.- allow_extra_args=False¶
the default for the
Context.allow_extra_argsflag.
- allow_interspersed_args=True¶
the default for the
Context.allow_interspersed_argsflag.
- ignore_unknown_options=False¶
the default for the
Context.ignore_unknown_optionsflag.
- name¶
the name the command thinks it has. Upon registering a commandon a
Groupthe group will default the command namewith this information. You should instead use theContext'sinfo_nameattribute.
- context_settings:MutableMapping[str,Any]¶
an optional dictionary with defaults passed to the context.
- callback¶
the callback to execute when the command fires. This might be
Nonein which case nothing happens.
- params:list[Parameter]¶
the list of parameters for this command in the order theyshould show up in the help page and execute. Eager parameterswill automatically be handled before non eager ones.
- get_usage(ctx)¶
Formats the usage line into a string and returns it.
Calls
format_usage()internally.
- format_usage(ctx,formatter)¶
Writes the usage line into the formatter.
This is a low-level method called by
get_usage().- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- collect_usage_pieces(ctx)¶
Returns all the pieces that go into the usage line and returnsit as a list of strings.
- get_help_option_names(ctx)¶
Returns the names for the help option.
- get_help_option(ctx)¶
Returns the help option object.
Skipped if
add_help_optionisFalse.Changelog
Changed in version 8.1.8:The help option is now cached to avoid creating it multiple times.
- make_parser(ctx)¶
Creates the underlying option parser for this command.
- Parameters:
ctx (Context)
- Return type:
_OptionParser
- get_help(ctx)¶
Formats the help into a string and returns it.
Calls
format_help()internally.
- get_short_help_str(limit=45)¶
Gets short help for the command or makes it by shortening thelong help string.
- format_help(ctx,formatter)¶
Writes the help into the formatter if it exists.
This is a low-level method called by
get_help().This calls the following methods:
- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- format_help_text(ctx,formatter)¶
Writes the help text to the formatter if it exists.
- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- format_options(ctx,formatter)¶
Writes all the options into the formatter if they exist.
- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- format_epilog(ctx,formatter)¶
Writes the epilog into the formatter if it exists.
- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- make_context(info_name,args,parent=None,**extra)¶
This function when given an info name and arguments will kickoff the parsing and create a new
Context. It does notinvoke the actual command callback though.To quickly customize the context class used without overridingthis method, set the
context_classattribute.- Parameters:
info_name (str |None) – the info name for this invocation. Generally thisis the most descriptive name for the script orcommand. For the toplevel script it’s usuallythe name of the script, for commands below it’sthe name of the command.
args (list[str]) – the arguments to parse as list of strings.
parent (Context |None) – the parent context if available.
extra (Any) – extra keyword arguments forwarded to the contextconstructor.
- Return type:
Changelog
Changed in version 8.0:Added the
context_classattribute.
- invoke(ctx)¶
Given a context, this invokes the attached callback (if it exists)in the right way.
- shell_complete(ctx,incomplete)¶
Return a list of completions for the incomplete value. Looksat the names of options and chained multi-commands.
Any command could be part of a chained multi-command, so siblingcommands are valid at any point during command completion.
- Parameters:
- Return type:
Changelog
Added in version 8.0.
- main(args:Sequence[str]|None=None,prog_name:str|None=None,complete_var:str|None=None,standalone_mode:Literal[True]=True,**extra:Any)→NoReturn¶
- main(args:Sequence[str]|None=None,prog_name:str|None=None,complete_var:str|None=None,standalone_mode:bool=True,**extra:Any)→Any
This is the way to invoke a script with all the bells andwhistles as a command line application. This will always terminatethe application after a call. If this is not wanted,
SystemExitneeds to be caught.This method is also available by directly calling the instance ofa
Command.- Parameters:
args – the arguments that should be used for parsing. If notprovided,
sys.argv[1:]is used.prog_name – the program name that should be used. By defaultthe program name is constructed by taking the filename from
sys.argv[0].complete_var – the environment variable that controls thebash completion support. The default is
"_<prog_name>_COMPLETE"with prog_name inuppercase.standalone_mode – the default behavior is to invoke the scriptin standalone mode. Click will thenhandle exceptions and convert them intoerror messages and the function will neverreturn but shut down the interpreter. Ifthis is set to
Falsethey will bepropagated to the caller and the returnvalue of this function is the return valueofinvoke().windows_expand_args – Expand glob patterns, user dir, andenv vars in command line args on Windows.
extra – extra keyword arguments are forwarded to the contextconstructor. See
Contextfor more information.
Changelog
Changed in version 8.0.1:Added the
windows_expand_argsparameter to allowdisabling command line arg expansion on Windows.Changed in version 8.0:When taking arguments from
sys.argvon Windows, globpatterns, user dir, and env vars are expanded.Changed in version 3.0:Added the
standalone_modeparameter.
- click.MultiCommand¶
alias of
_MultiCommand
- classclick.Group(name=None,commands=None,invoke_without_command=False,no_args_is_help=None,subcommand_metavar=None,chain=False,result_callback=None,**kwargs)¶
A group is a command that nests other commands (or more groups).
- Parameters:
name (str |None) – The name of the group command.
commands (cabc.MutableMapping[str,Command]|cabc.Sequence[Command]|None) – Map names to
Commandobjects. Can be a list, whichwill useCommand.nameas the keys.invoke_without_command (bool) – Invoke the group’s callback even if asubcommand is not given.
no_args_is_help (bool |None) – If no arguments are given, show the group’s help andexit. Defaults to the opposite of
invoke_without_command.subcommand_metavar (str |None) – How to represent the subcommand argument in help.The default will represent whether
chainis set or not.chain (bool) – Allow passing more than one subcommand argument. After parsinga command’s arguments, if any arguments remain another command will bematched, and so on.
result_callback (t.Callable[...,t.Any]|None) – A function to call after the group’s andsubcommand’s callbacks. The value returned by the subcommand is passed.If
chainis enabled, the value will be a list of values returned byall the commands. Ifinvoke_without_commandis enabled, the valuewill be the value returned by the group’s callback, or an empty list ifchainis enabled.kwargs (t.Any) – Other arguments passed to
Command.
Changelog
Changed in version 8.2:Merged with and replaces the
MultiCommandbase class.Changed in version 8.0:The
commandsargument can be a list of command objects.- allow_extra_args=True¶
the default for the
Context.allow_extra_argsflag.
- allow_interspersed_args=False¶
the default for the
Context.allow_interspersed_argsflag.
- command_class:type[Command]|None=None¶
If set, this is used by the group’s
command()decoratoras the defaultCommandclass. This is useful to make allsubcommands use a custom command class.Changelog
Added in version 8.0.
- group_class:type[Group]|type[type]|None=None¶
If set, this is used by the group’s
group()decoratoras the defaultGroupclass. This is useful to make allsubgroups use a custom group class.If set to the special value
type(literallygroup_class=type), this group’s class will be used as thedefault class. This makes a custom group class continue to makecustom groups.Changelog
Added in version 8.0.
- commands:MutableMapping[str,Command]¶
The registered subcommands by their exported names.
- add_command(cmd,name=None)¶
Registers another
Commandwith this group. If the nameis not provided, the name of the command is used.
- command(__func:Callable[[...],Any])→Command¶
- command(*args:Any,**kwargs:Any)→Callable[[Callable[[...],Any]],Command]
A shortcut decorator for declaring and attaching a command tothe group. This takes the same arguments as
command()andimmediately registers the created command with this group bycallingadd_command().To customize the command class used, set the
command_classattribute.Changelog
Changed in version 8.1:This decorator can be applied without parentheses.
Changed in version 8.0:Added the
command_classattribute.
- group(__func:Callable[[...],Any])→Group¶
- group(*args:Any,**kwargs:Any)→Callable[[Callable[[...],Any]],Group]
A shortcut decorator for declaring and attaching a group tothe group. This takes the same arguments as
group()andimmediately registers the created group with this group bycallingadd_command().To customize the group class used, set the
group_classattribute.Changelog
Changed in version 8.1:This decorator can be applied without parentheses.
Changed in version 8.0:Added the
group_classattribute.
- result_callback(replace=False)¶
Adds a result callback to the command. By default if aresult callback is already registered this will chain them butthis can be disabled with the
replaceparameter. The resultcallback is invoked with the return value of the subcommand(or the list of return values from all subcommands if chainingis enabled) as well as the parameters as they would be passedto the main callback.Example:
@click.group()@click.option('-i','--input',default=23)defcli(input):return42@cli.result_callback()defprocess_result(result,input):returnresult+input
- Parameters:
replace (bool) – if set to
Truean already existing resultcallback will be removed.- Return type:
Callable[[F],F]
Changelog
Changed in version 8.0:Renamed from
resultcallback.Added in version 3.0.
- get_command(ctx,cmd_name)¶
Given a context and a command name, this returns a
Commandobject if it exists or returnsNone.
- list_commands(ctx)¶
Returns a list of subcommand names in the order they should appear.
- collect_usage_pieces(ctx)¶
Returns all the pieces that go into the usage line and returnsit as a list of strings.
- format_options(ctx,formatter)¶
Writes all the options into the formatter if they exist.
- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- format_commands(ctx,formatter)¶
Extra format methods for multi methods that adds all the commandsafter the options.
- Parameters:
ctx (Context)
formatter (HelpFormatter)
- Return type:
None
- invoke(ctx)¶
Given a context, this invokes the attached callback (if it exists)in the right way.
- shell_complete(ctx,incomplete)¶
Return a list of completions for the incomplete value. Looksat the names of options, subcommands, and chainedmulti-commands.
- Parameters:
- Return type:
Changelog
Added in version 8.0.
- classclick.CommandCollection(name=None,sources=None,**kwargs)¶
A
Groupthat looks up subcommands on other groups. If a commandis not found on this group, each registered source is checked in order.Parameters on a source are not added to this group, and a source’s callbackis not invoked when invoking its commands. In other words, this “flattens”commands in many groups into this one group.- Parameters:
Changelog
Changed in version 8.2:This is a subclass of
Group. Commands are looked up first on thisgroup, then each of its sources.
Parameters¶
- classclick.Parameter(param_decls=None,type=None,required=False,default=UNSET,callback=None,nargs=None,multiple=False,metavar=None,expose_value=True,is_eager=False,envvar=None,shell_complete=None,deprecated=False)¶
A parameter to a command comes in two versions: they are either
Options orArguments. Other subclasses are currentlynot supported by design as some of the internals for parsing areintentionally not finalized.Some settings are supported by both options and arguments.
- Parameters:
param_decls (cabc.Sequence[str]|None) – the parameter declarations for this option orargument. This is a list of flags or argumentnames.
type (types.ParamType |t.Any |None) – the type that should be used. Either a
ParamTypeor a Python type. The latter is converted into the formerautomatically if supported.required (bool) – controls if this is optional or not.
default (t.Any |t.Callable[[],t.Any]|None) – the default value if omitted. This can also be a callable,in which case it’s invoked when the default is neededwithout any arguments.
callback (t.Callable[[Context,Parameter,t.Any],t.Any]|None) – A function to further process or validate the valueafter type conversion. It is called as
f(ctx,param,value)and must return the value. It is called for all sources,including prompts.nargs (int |None) – the number of arguments to match. If not
1the returnvalue is a tuple instead of single value. The default fornargs is1(except if the type is a tuple, then it’sthe arity of the tuple). Ifnargs=-1, all remainingparameters are collected.metavar (str |None) – how the value is represented in the help page.
expose_value (bool) – if this is
Truethen the value is passed onwardsto the command callback and stored on the context,otherwise it’s skipped.is_eager (bool) – eager values are processed before non eager ones. Thisshould not be set for arguments or it will inverse theorder of processing.
envvar (str |cabc.Sequence[str]|None) – environment variable(s) that are used to provide a default value forthis parameter. This can be a string or a sequence of strings. If a sequence isgiven, only the first non-empty environment variable is used for the parameter.
shell_complete (t.Callable[[Context,Parameter,str],list[CompletionItem]|list[str]]|None) – A function that returns custom shellcompletions. Used instead of the param’s type completion ifgiven. Takes
ctx,param,incompleteand must return a listofCompletionItemor a list ofstrings.deprecated (bool |str) – If
Trueor non-empty string, issues a messageindicating that the argument is deprecated and highlightsits deprecation in –help. The message can be customizedby using a string as the value. A deprecated parametercannot be required, a ValueError will be raised otherwise.multiple (bool)
Changelog
Changed in version 8.2.0:Introduction of
deprecated.Changed in version 8.2:Adding duplicate parameter names to a
Commandwillresult in aUserWarningbeing shown.Changed in version 8.2:Adding duplicate parameter names to a
Commandwillresult in aUserWarningbeing shown.Changed in version 8.0:
process_valuevalidates required parameters and boundednargs, and invokes the parameter callback before returningthe value. This allows the callback to validate prompts.full_process_valueis removed.Changed in version 8.0:
autocompletionis renamed toshell_completeand has newsemantics described above. The old name is deprecated and willbe removed in 8.1, until then it will be wrapped to match thenew requirements.Changed in version 8.0:For
multiple=True,nargs>1, the default must be a list oftuples.Changed in version 8.0:Setting a default is no longer required for
nargs>1, it willdefault toNone.multiple=Trueornargs=-1willdefault to().Changed in version 7.1:Empty environment variables are ignored rather than taking theempty string value. This makes it possible for scripts to clearvariables if they can’t unset them.
Changed in version 2.0:Changed signature for parameter callback to also be passed theparameter. The old callback format will still work, but it willraise a warning to give you a chance to migrate the code easier.
- to_info_dict()¶
Gather information that could be useful for a tool generatinguser-facing documentation.
Use
click.Context.to_info_dict()to traverse the entireCLI structure.Changed in version 8.3.0:Returns
Nonefor thedefaultif it was not set.Changelog
Added in version 8.0.
- propertyhuman_readable_name:str¶
Returns the human readable name of this parameter. This is thesame as the name for options, but the metavar for arguments.
- get_default(ctx:Context,call:Literal[True]=True)→Any|None¶
- get_default(ctx:Context,call:bool=True)→Any|Callable[[],Any]|None
Get the default for the parameter. Tries
Context.lookup_default()first, then the local default.- Parameters:
ctx – Current context.
call – If the default is a callable, call it. Disable toreturn the callable instead.
Changelog
Changed in version 8.0.2:Type casting is no longer performed when getting a default.
Changed in version 8.0.1:Type casting can fail in resilient parsing mode. Invaliddefaults will not prevent showing help text.
Changed in version 8.0:Looks at
ctx.default_mapfirst.Changed in version 8.0:Added the
callparameter.
- type_cast_value(ctx,value)¶
Convert and validate a value against the parameter’s
type,multiple, andnargs.
- get_error_hint(ctx)¶
Get a stringified version of the param for use in error messages toindicate which param caused the error.
- shell_complete(ctx,incomplete)¶
Return a list of completions for the incomplete value. If a
shell_completefunction was given during init, it is used.Otherwise, thetypeshell_complete()function is used.- Parameters:
- Return type:
Changelog
Added in version 8.0.
- classclick.Option(param_decls=None,show_default=None,prompt=False,confirmation_prompt=False,prompt_required=True,hide_input=False,is_flag=None,flag_value=UNSET,multiple=False,count=False,allow_from_autoenv=True,type=None,help=None,hidden=False,show_choices=True,show_envvar=False,deprecated=False,**attrs)¶
Options are usually optional values on the command line andhave some extra features that arguments don’t have.
All other parameters are passed onwards to the parameter constructor.
- Parameters:
show_default (bool |str |None) – Show the default value for this option in itshelp text. Values are not shown by default, unless
Context.show_defaultisTrue. If this value is astring, it shows that string in parentheses instead of theactual value. This is particularly useful for dynamic options.For single option boolean flags, the default remains hidden ifits value isFalse.show_envvar (bool) – Controls if an environment variable should beshown on the help page and error messages.Normally, environment variables are not shown.
prompt (bool |str) – If set to
Trueor a non empty string then theuser will be prompted for input. If set toTruethe promptwill be the option name capitalized. A deprecated option cannot beprompted.confirmation_prompt (bool |str) – Prompt a second time to confirm thevalue if it was prompted for. Can be set to a string instead of
Trueto customize the message.prompt_required (bool) – If set to
False, the user will beprompted for input only when the option was specified as a flagwithout a value.hide_input (bool) – If this is
Truethen the input on the promptwill be hidden from the user. This is useful for password input.is_flag (bool |None) – forces this option to act as a flag. The default isauto detection.
flag_value (t.Any) – which value should be used for this flag if it’senabled. This is set to a boolean automatically ifthe option string contains a slash to mark two options.
multiple (bool) – if this is set to
Truethen the argument is acceptedmultiple times and recorded. This is similar tonargsin how it works but supports arbitrary number ofarguments.count (bool) – this flag makes an option increment an integer.
allow_from_autoenv (bool) – if this is enabled then the value of thisparameter will be pulled from an environmentvariable in case a prefix is defined on thecontext.
help (str |None) – the help string.
hidden (bool) – hide this option from help outputs.
attrs (t.Any) – Other command arguments described in
Parameter.param_decls (cabc.Sequence[str]|None)
type (types.ParamType |t.Any |None)
show_choices (bool)
Changelog
Changed in version 8.2:
envvarused withflag_valuewill always use theflag_value,previously it would use the value of the environment variable.Changed in version 8.1:Help text indentation is cleaned here instead of only in the
@optiondecorator.Changed in version 8.1:The
show_defaultparameter overridesContext.show_default.Changed in version 8.1:The default of a single option boolean flag is not shown if thedefault value is
False.Changed in version 8.0.1:
typeis detected fromflag_valueif given.
Context¶
- classclick.Context(command,parent=None,info_name=None,obj=None,auto_envvar_prefix=None,default_map=None,terminal_width=None,max_content_width=None,resilient_parsing=False,allow_extra_args=None,allow_interspersed_args=None,ignore_unknown_options=None,help_option_names=None,token_normalize_func=None,color=None,show_default=None)¶
The context is a special internal object that holds state relevantfor the script execution at every single level. It’s normally invisibleto commands unless they opt-in to getting access to it.
The context is useful as it can pass internal objects around and cancontrol special execution features such as reading data fromenvironment variables.
A context can be used as context manager in which case it will call
close()on teardown.- Parameters:
command (Command) – the command class for this context.
parent (Context |None) – the parent context.
info_name (str |None) – the info name for this invocation. Generally thisis the most descriptive name for the script orcommand. For the toplevel script it is usuallythe name of the script, for commands below it it’sthe name of the script.
obj (t.Any |None) – an arbitrary object of user data.
auto_envvar_prefix (str |None) – the prefix to use for automatic environmentvariables. If this is
Nonethen readingfrom environment variables is disabled. Thisdoes not affect manually set environmentvariables which are always read.default_map (cabc.MutableMapping[str,t.Any]|None) – a dictionary (like object) with default valuesfor parameters.
terminal_width (int |None) – the width of the terminal. The default isinherit from parent context. If no contextdefines the terminal width then autodetection will be applied.
max_content_width (int |None) – the maximum width for content rendered byClick (this currently only affects helppages). This defaults to 80 characters ifnot overridden. In other words: even if theterminal is larger than that, Click will notformat things wider than 80 characters bydefault. In addition to that, formatters mightadd some safety mapping on the right.
resilient_parsing (bool) – if this flag is enabled then Click willparse without any interactivity or callbackinvocation. Default values will also beignored. This is useful for implementingthings such as completion support.
allow_extra_args (bool |None) – if this is set to
Truethen extra argumentsat the end will not raise an error and will bekept on the context. The default is to inheritfrom the command.allow_interspersed_args (bool |None) – if this is set to
Falsethen optionsand arguments cannot be mixed. Thedefault is to inherit from the command.ignore_unknown_options (bool |None) – instructs click to ignore options it doesnot know and keeps them for laterprocessing.
help_option_names (list[str]|None) – optionally a list of strings that define howthe default help parameter is named. Thedefault is
['--help'].token_normalize_func (t.Callable[[str],str]|None) – an optional function that is used tonormalize tokens (options, choices,etc.). This for instance can be used toimplement case insensitive behavior.
color (bool |None) – controls if the terminal supports ANSI colors or not. Thedefault is autodetection. This is only needed if ANSIcodes are used in texts that Click prints which is bydefault not the case. This for instance would affecthelp output.
show_default (bool |None) – Show the default value for commands. If thisvalue is not set, it defaults to the value from the parentcontext.
Command.show_defaultoverrides this default for thespecific command.
Changelog
Changed in version 8.2:The
protected_argsattribute is deprecated and will be removed inClick 9.0.argswill contain remaining unparsed tokens.Changed in version 8.1:The
show_defaultparameter is overridden byCommand.show_default, instead of the other way around.Changed in version 8.0:The
show_defaultparameter defaults to the value from theparent context.Changed in version 7.1:Added the
show_defaultparameter.Changed in version 4.0:Added the
color,ignore_unknown_options, andmax_content_widthparameters.Changed in version 3.0:Added the
allow_extra_argsandallow_interspersed_argsparameters.Changed in version 2.0:Added the
resilient_parsing,help_option_names, andtoken_normalize_funcparameters.- formatter_class¶
alias of
HelpFormatter
- parent¶
the parent context or
Noneif none exists.
- info_name¶
the descriptive information name
- params:dict[str,Any]¶
Map of parameter names to their parsed values. Parameterswith
expose_value=Falseare not stored.
- invoked_subcommand:str|None¶
This flag indicates if a subcommand is going to be executed. Agroup callback can use this information to figure out if it’sbeing executed directly or because the execution flow passesonwards to a subcommand. By default it’s None, but it can bethe name of the subcommand to execute.
If chaining is enabled this will be set to
'*'in caseany commands are executed. It is however not possible tofigure out which ones. If you require this knowledge youshould use aresult_callback().
- max_content_width:int|None¶
The maximum width of formatted content (None implies a sensibledefault which is 80 for most things).
- allow_extra_args¶
Indicates if the context allows extra args or if it shouldfail on parsing.
Changelog
Added in version 3.0.
- allow_interspersed_args:bool¶
Indicates if the context allows mixing of arguments andoptions or not.
Changelog
Added in version 3.0.
- ignore_unknown_options:bool¶
Instructs click to ignore options that a command does notunderstand and will store it on the context for laterprocessing. This is primarily useful for situations where youwant to call into external programs. Generally this pattern isstrongly discouraged because it’s not possibly to losslesslyforward all arguments.
Changelog
Added in version 4.0.
- token_normalize_func:Callable[[str],str]|None¶
An optional normalization function for tokens. This isoptions, choices, commands etc.
- resilient_parsing:bool¶
Indicates if resilient parsing is enabled. In that case Clickwill do its best to not cause any failures and default valueswill be ignored. Useful for completion.
- to_info_dict()¶
Gather information that could be useful for a tool generatinguser-facing documentation. This traverses the entire CLIstructure.
withContext(cli)asctx:info=ctx.to_info_dict()
Changelog
Added in version 8.0.
- scope(cleanup=True)¶
This helper method can be used with the context object to promoteit to the current thread local (see
get_current_context()).The default behavior of this is to invoke the cleanup functions whichcan be disabled by settingcleanuptoFalse. The cleanupfunctions are typically used for things such as closing file handles.If the cleanup is intended the context object can also be directlyused as a context manager.
Example usage:
withctx.scope():assertget_current_context()isctx
This is equivalent:
withctx:assertget_current_context()isctx
Changelog
Added in version 5.0.
- propertymeta:dict[str,Any]¶
This is a dictionary which is shared with all the contextsthat are nested. It exists so that click utilities can store somestate here if they need to. It is however the responsibility ofthat code to manage this dictionary well.
The keys are supposed to be unique dotted strings. For instancemodule paths are a good choice for it. What is stored in there isirrelevant for the operation of click. However what is important isthat code that places data here adheres to the general semantics ofthe system.
Example usage:
LANG_KEY=f'{__name__}.lang'defset_language(value):ctx=get_current_context()ctx.meta[LANG_KEY]=valuedefget_language():returnget_current_context().meta.get(LANG_KEY,'en_US')
Changelog
Added in version 5.0.
- make_formatter()¶
Creates the
HelpFormatterfor the help andusage output.To quickly customize the formatter class used without overridingthis method, set the
formatter_classattribute.Changelog
Changed in version 8.0:Added the
formatter_classattribute.- Return type:
- with_resource(context_manager)¶
Register a resource as if it were used in a
withstatement. The resource will be cleaned up when the context ispopped.Uses
contextlib.ExitStack.enter_context(). It calls theresource’s__enter__()method and returns the result. Whenthe context is popped, it closes the stack, which calls theresource’s__exit__()method.To register a cleanup function for something that isn’t acontext manager, use
call_on_close(). Or use somethingfromcontextlibto turn it into a context manager first.@click.group()@click.option("--name")@click.pass_contextdefcli(ctx):ctx.obj=ctx.with_resource(connect_db(name))
- Parameters:
context_manager (AbstractContextManager[V]) – The context manager to enter.
- Returns:
Whatever
context_manager.__enter__()returns.- Return type:
V
Changelog
Added in version 8.0.
- call_on_close(f)¶
Register a function to be called when the context tears down.
This can be used to close resources opened during the scriptexecution. Resources that support Python’s context managerprotocol which would be used in a
withstatement should beregistered withwith_resource()instead.
- close()¶
Invoke all close callbacks registered with
call_on_close(), and exit all context managers enteredwithwith_resource().- Return type:
None
- propertycommand_path:str¶
The computed command path. This is used for the
usageinformation on the help page. It’s automatically created bycombining the info names of the chain of contexts to the root.
- find_object(object_type)¶
Finds the closest object of a given type.
- Parameters:
object_type (type[V])
- Return type:
V | None
- ensure_object(object_type)¶
Like
find_object()but sets the innermost object to anew instance ofobject_typeif it does not exist.- Parameters:
object_type (type[V])
- Return type:
V
- lookup_default(name:str,call:Literal[True]=True)→Any|None¶
- lookup_default(name:str,call:Literal[False]=True)→Any|Callable[[],Any]|None
Get the default for a parameter from
default_map.- Parameters:
name – Name of the parameter.
call – If the default is a callable, call it. Disable toreturn the callable instead.
Changelog
Changed in version 8.0:Added the
callparameter.
- fail(message)¶
Aborts the execution of the program with a specific errormessage.
- exit(code=0)¶
Exits the application with a given exit code.
Changelog
Changed in version 8.2:Callbacks and context managers registered with
call_on_close()andwith_resource()are closed before exiting.
- get_usage()¶
Helper method to get formatted usage string for the currentcontext and command.
- Return type:
- get_help()¶
Helper method to get formatted help page for the currentcontext and command.
- Return type:
- invoke(callback:Callable[[...],V],/,*args:Any,**kwargs:Any)→V¶
- invoke(callback:Command,/,*args:Any,**kwargs:Any)→Any
Invokes a command callback in exactly the way it expects. Thereare two ways to invoke this method:
the first argument can be a callback and all other arguments andkeyword arguments are forwarded directly to the function.
the first argument is a click command object. In that case allarguments are forwarded as well but proper click parameters(options and click arguments) must be keyword arguments and Clickwill fill in defaults.
- forward(cmd,/,*args,**kwargs)¶
Similar to
invoke()but fills in default keywordarguments from the current context if the other command expectsit. This cannot invoke callbacks directly, only other commands.Changelog
Changed in version 8.0:All
kwargsare tracked inparamsso they will bepassed ifforwardis called at multiple levels.
- set_parameter_source(name,source)¶
Set the source of a parameter. This indicates the locationfrom which the value of the parameter was obtained.
- Parameters:
name (str) – The name of the parameter.
source (ParameterSource) – A member of
ParameterSource.
- Return type:
None
- get_parameter_source(name)¶
Get the source of a parameter. This indicates the locationfrom which the value of the parameter was obtained.
This can be useful for determining when a user specified a valueon the command line that is the same as the default value. Itwill be
DEFAULTonly if thevalue was actually taken from the default.- Parameters:
name (str) – The name of the parameter.
- Return type:
Changelog
Changed in version 8.0:Returns
Noneif the parameter was not provided from anysource.
- click.get_current_context(silent:Literal[False]=False)→Context¶
- click.get_current_context(silent:bool=False)→Context|None
Returns the current click context. This can be used as a way toaccess the current context object from anywhere. This is a more implicitalternative to the
pass_context()decorator. This function isprimarily useful for helpers such asecho()which might beinterested in changing its behavior based on the current context.To push the current context,
Context.scope()can be used.Changelog
Added in version 5.0.
- Parameters:
silent – if set to
Truethe return value isNoneif no contextis available. The default behavior is to raise aRuntimeError.
- classclick.core.ParameterSource(*values)¶
This is an
Enumthat indicates the source of aparameter’s value.Use
click.Context.get_parameter_source()to get thesource for a parameter by name.Changelog
Changed in version 8.0:Use
Enumand drop thevalidatemethod.Changed in version 8.0:Added the
PROMPTvalue.- COMMANDLINE=1¶
The value was provided by the command line args.
- ENVIRONMENT=2¶
The value was provided with an environment variable.
- DEFAULT=3¶
Used the default specified by the parameter.
- DEFAULT_MAP=4¶
Used a default provided by
Context.default_map.
- PROMPT=5¶
Used a prompt to confirm a default or provide a value.
Types¶
- click.STRING=STRING¶
- click.FLOAT=FLOAT¶
- click.UNPROCESSED=UNPROCESSED¶
- classclick.File(mode='r',encoding=None,errors='strict',lazy=None,atomic=False)¶
Declares a parameter to be a file for reading or writing. The fileis automatically closed once the context tears down (after the commandfinished working).
Files can be opened for reading or writing. The special value
-indicates stdin or stdout depending on the mode.By default, the file is opened for reading text data, but it can also beopened in binary mode or for writing. The encoding parameter can be usedto force a specific encoding.
The
lazyflag controls if the file should be opened immediately or uponfirst IO. The default is to be non-lazy for standard input and outputstreams as well as files opened for reading,lazyotherwise. When opening afile lazily for reading, it is still opened temporarily for validation, butwill not be held open until first IO. lazy is mainly useful when openingfor writing to avoid creating the file until it is needed.Files can also be opened atomically in which case all writes go into aseparate file in the same folder and upon completion the file willbe moved over to the original location. This is useful if a fileregularly read by other users is modified.
SeeFile Arguments for more information.
Changelog
Changed in version 2.0:Added the
atomicparameter.
- classclick.Path(exists=False,file_okay=True,dir_okay=True,writable=False,readable=True,resolve_path=False,allow_dash=False,path_type=None,executable=False)¶
The
Pathtype is similar to theFiletype, butreturns the filename instead of an open file. Various checks can beenabled to validate the type of file and permissions.- Parameters:
exists (bool) – The file or directory needs to exist for the value tobe valid. If this is not set to
True, and the file does notexist, then all further checks are silently skipped.file_okay (bool) – Allow a file as a value.
dir_okay (bool) – Allow a directory as a value.
readable (bool) – if true, a readable check is performed.
writable (bool) – if true, a writable check is performed.
executable (bool) – if true, an executable check is performed.
resolve_path (bool) – Make the value absolute and resolve anysymlinks. A
~is not expanded, as this is supposed to bedone by the shell only.allow_dash (bool) – Allow a single dash as a value, which indicatesa standard stream (but does not open it). Use
open_file()to handle opening this value.path_type (type[t.Any]|None) – Convert the incoming path value to this type. If
None, keep Python’s default, which isstr. Useful toconvert topathlib.Path.
Changelog
Changed in version 8.1:Added the
executableparameter.Changed in version 8.0:Allow passing
path_type=pathlib.Path.Changed in version 6.0:Added the
allow_dashparameter.
- classclick.Choice(choices,case_sensitive=True)¶
The choice type allows a value to be checked against a fixed setof supported values.
You may pass any iterable value which will be converted to a tupleand thus will only be iterated once.
The resulting value will always be one of the originally passed choices.See
normalize_choice()for more info on the mapping of stringsto choices. SeeChoice for an example.- Parameters:
case_sensitive (bool) – Set to false to make choices caseinsensitive. Defaults to true.
choices (cabc.Iterable[ParamTypeValue])
Changelog
Changed in version 8.2.0:Non-
strchoicesare now supported. It can additionally be anyiterable. Before you were not recommended to pass anything but a list ortuple.Added in version 8.2.0:Choice normalization can be overridden via
normalize_choice().- to_info_dict()¶
Gather information that could be useful for a tool generatinguser-facing documentation.
Use
click.Context.to_info_dict()to traverse the entireCLI structure.Changelog
Added in version 8.0.
- normalize_choice(choice,ctx)¶
Normalize a choice value, used to map a passed string to a choice.Each choice must have a unique normalized value.
By default uses
Context.token_normalize_func()and if not casesensitive, convert it to a casefolded value.Changelog
Added in version 8.2.0.
- get_metavar(param,ctx)¶
Returns the metavar default for this param if it provides one.
- get_missing_message(param,ctx)¶
Message shown when no choice is passed.
Changelog
Changed in version 8.2.0:Added
ctxargument.
- convert(value,param,ctx)¶
For a given value from the parser, normalize it and find itsmatching normalized value in the list of choices. Then return thematched “original” choice.
- get_invalid_choice_message(value,ctx)¶
Get the error message when the given choice is invalid.
Changelog
Added in version 8.2.
- shell_complete(ctx,param,incomplete)¶
Complete choices that start with the incomplete value.
- Parameters:
- Return type:
Changelog
Added in version 8.0.
- classclick.IntRange(min=None,max=None,min_open=False,max_open=False,clamp=False)¶
Restrict an
click.INTvalue to a range of acceptedvalues. SeeInt and Float Ranges.If
minormaxare not passed, any value is accepted in thatdirection. Ifmin_openormax_openare enabled, thecorresponding boundary is not included in the range.If
clampis enabled, a value outside the range is clamped to theboundary instead of failing.Changelog
Changed in version 8.0:Added the
min_openandmax_openparameters.
- classclick.FloatRange(min=None,max=None,min_open=False,max_open=False,clamp=False)¶
Restrict a
click.FLOATvalue to a range of acceptedvalues. SeeInt and Float Ranges.If
minormaxare not passed, any value is accepted in thatdirection. Ifmin_openormax_openare enabled, thecorresponding boundary is not included in the range.If
clampis enabled, a value outside the range is clamped to theboundary instead of failing. This is not supported if eitherboundary is markedopen.Changelog
Changed in version 8.0:Added the
min_openandmax_openparameters.
- classclick.DateTime(formats=None)¶
The DateTime type converts date strings into
datetimeobjects.The format strings which are checked are configurable, but default to somecommon (non-timezone aware) ISO 8601 formats.
When specifyingDateTime formats, you should only pass a list or a tuple.Other iterables, like generators, may lead to surprising results.
The format strings are processed using
datetime.strptime, and thisconsequently defines the format strings which are allowed.Parsing is tried using each format, in order, and the first format whichparses successfully is used.
- Parameters:
formats (cabc.Sequence[str]|None) – A list or tuple of date format strings, in the order inwhich they should be tried. Defaults to
'%Y-%m-%d','%Y-%m-%dT%H:%M:%S','%Y-%m-%d%H:%M:%S'.
- classclick.Tuple(types)¶
The default behavior of Click is to apply a type on a value directly.This works well in most cases, except for when
nargsis set to a fixedcount and different types should be used for different items. In thiscase theTupletype can be used. This type can only be usedifnargsis set to a fixed number.For more information seeMulti Value Options as Tuples.
This can be selected by using a Python tuple literal as a type.
- classclick.ParamType¶
Represents the type of a parameter. Validates and converts valuesfrom the command line or Python into the correct type.
To implement a custom type, subclass and implement at least thefollowing:
The
nameclass attribute must be set.Calling an instance of the type with
Nonemust returnNone. This is already implemented by default.convert()must convert string values to the correct type.convert()must accept values that are already the correcttype.It must be able to convert a value if the
ctxandparamarguments areNone. This can occur when converting promptinput.
- envvar_list_splitter:ClassVar[str|None]=None¶
if a list of this type is expected and the value is pulled from astring environment variable, this is what splits it up.
Nonemeans any whitespace. For all parameters the general rule is thatwhitespace splits them up. The exception are paths and files whichare split byos.path.pathsepby default (“:” on Unix and “;” onWindows).
- to_info_dict()¶
Gather information that could be useful for a tool generatinguser-facing documentation.
Use
click.Context.to_info_dict()to traverse the entireCLI structure.Changelog
Added in version 8.0.
- get_metavar(param,ctx)¶
Returns the metavar default for this param if it provides one.
- get_missing_message(param,ctx)¶
Optionally might return extra information about a missingparameter.
Changelog
Added in version 2.0.
- convert(value,param,ctx)¶
Convert the value to the correct type. This is not called ifthe value is
None(the missing value).This must accept string values from the command line, as well asvalues that are already the correct type. It may also convertother compatible types.
The
paramandctxarguments may beNonein certainsituations, such as when converting prompt input.If the value cannot be converted, call
fail()with adescriptive message.
- split_envvar_value(rv)¶
Given a value from an environment variable this splits it upinto small chunks depending on the defined envvar list splitter.
If the splitter is set to
None, which means that whitespace splits,then leading and trailing whitespace is ignored. Otherwise, leadingand trailing splitters usually lead to empty items being included.
- fail(message,param=None,ctx=None)¶
Helper method to fail with an invalid value message.
- shell_complete(ctx,param,incomplete)¶
Return a list of
CompletionItemobjects for theincomplete value. Most types do not provide completions, butsome do, and this allows custom types to provide customcompletions as well.- Parameters:
- Return type:
Changelog
Added in version 8.0.
Exceptions¶
- exceptionclick.ClickException(message)¶
An exception that Click can handle and show to the user.
- Parameters:
message (str)
- Return type:
None
- exceptionclick.Abort¶
An internal signalling exception that signals Click to abort.
- exceptionclick.UsageError(message,ctx=None)¶
An internal exception that signals a usage error. This typicallyaborts any further handling.
- exceptionclick.BadParameter(message,ctx=None,param=None,param_hint=None)¶
An exception that formats out a standardized error message for abad parameter. This is useful when thrown from a callback or type asClick will attach contextual information to it (for instance, whichparameter it is).
Changelog
Added in version 2.0.
- Parameters:
param (Parameter |None) – the parameter object that caused this error. This canbe left out, and Click will attach this info itselfif possible.
param_hint (cabc.Sequence[str]|str |None) – a string that shows up as parameter name. Thiscan be used as alternative to
paramin caseswhere custom validation should happen. If it isa string it’s used as such, if it’s a list theneach item is quoted and separated.message (str)
ctx (Context |None)
- Return type:
None
- exceptionclick.FileError(filename,hint=None)¶
Raised if a file cannot be opened.
- exceptionclick.NoSuchOption(option_name,message=None,possibilities=None,ctx=None)¶
Raised if click attempted to handle an option that does notexist.
Changelog
Added in version 4.0.
- exceptionclick.BadOptionUsage(option_name,message,ctx=None)¶
Raised if an option is generally supplied but the use of the optionwas incorrect. This is for instance raised if the number of argumentsfor an option is not correct.
Changelog
Added in version 4.0.
- exceptionclick.BadArgumentUsage(message,ctx=None)¶
Raised if an argument is generally supplied but the use of the argumentwas incorrect. This is for instance raised if the number of valuesfor an argument is not correct.
Changelog
Added in version 6.0.
Formatting¶
- classclick.HelpFormatter(indent_increment=2,width=None,max_width=None)¶
This class helps with formatting text-based help pages. It’susually just needed for very special internal cases, but it’s alsoexposed so that developers can write their own fancy outputs.
At present, it always writes into memory.
- Parameters:
- write(string)¶
Writes a unicode string into the internal buffer.
- Parameters:
string (str)
- Return type:
None
- indent()¶
Increases the indentation.
- Return type:
None
- dedent()¶
Decreases the indentation.
- Return type:
None
- write_usage(prog,args='',prefix=None)¶
Writes a usage line into the buffer.
- write_paragraph()¶
Writes a paragraph into the buffer.
- Return type:
None
- write_text(text)¶
Writes re-indented text into the buffer. This rewraps andpreserves paragraphs.
- Parameters:
text (str)
- Return type:
None
- write_dl(rows,col_max=30,col_spacing=2)¶
Writes a definition list into the buffer. This is how optionsand commands are usually formatted.
- section(name)¶
Helpful context manager that writes a paragraph, a heading,and the indents.
- click.wrap_text(text,width=78,initial_indent='',subsequent_indent='',preserve_paragraphs=False)¶
A helper function that intelligently wraps text. By default, itassumes that it operates on a single paragraph of text but if the
preserve_paragraphsparameter is provided it will intelligentlyhandle paragraphs (defined by two empty lines).If paragraphs are handled, a paragraph can be prefixed with an emptyline containing the
\bcharacter (\x08) to indicate thatno rewrapping should happen in that block.- Parameters:
text (str) – the text that should be rewrapped.
width (int) – the maximum width for the text.
initial_indent (str) – the initial indent that should be placed on thefirst line as a string.
subsequent_indent (str) – the indent string that should be placed oneach consecutive line.
preserve_paragraphs (bool) – if this flag is set then the wrapping willintelligently handle paragraphs.
- Return type:
Parsing¶
- click.OptionParser¶
alias of
_OptionParser
Shell Completion¶
SeeShell Completion for information about enabling andcustomizing Click’s shell completion system.
- classclick.shell_completion.CompletionItem(value,type='plain',help=None,**kwargs)¶
Represents a completion value and metadata about the value. Thedefault metadata is
typeto indicate special shell handling,andhelpif a shell supports showing a help string next to thevalue.Arbitrary parameters can be passed when creating the object, andaccessed using
item.attr. If an attribute wasn’t passed,accessing it returnsNone.- Parameters:
value (t.Any) – The completion suggestion.
type (str) – Tells the shell script to provide special completionsupport for the type. Click uses
"dir"and"file".help (str |None) – String shown next to the value if supported.
kwargs (t.Any) – Arbitrary metadata. The built-in implementationsdon’t use this, but custom type completions paired with customshell support could use it.
- classclick.shell_completion.ShellComplete(cli,ctx_args,prog_name,complete_var)¶
Base class for providing shell completion support. A subclass fora given shell will override attributes and methods to implement thecompletion instructions (
sourceandcomplete).- Parameters:
Changelog
Added in version 8.0.
- name:ClassVar[str]¶
Name to register the shell as with
add_completion_class().This is used in completion instructions ({name}_sourceand{name}_complete).
- source_template:ClassVar[str]¶
Completion script template formatted by
source(). This mustbe provided by subclasses.
- source_vars()¶
Vars for formatting
source_template.By default this provides
complete_func,complete_var,andprog_name.
- source()¶
Produce the shell script that defines the completionfunction. By default this
%-style formatssource_templatewith the dict returned bysource_vars().- Return type:
- get_completion_args()¶
Use the env vars defined by the shell script to return atuple of
args,incomplete. This must be implemented bysubclasses.
- get_completions(args,incomplete)¶
Determine the context and last complete command or parameterfrom the complete args. Call that object’s
shell_completemethod to get the completions for the incomplete value.- Parameters:
- Return type:
- format_completion(item)¶
Format a completion item into the form recognized by theshell script. This must be implemented by subclasses.
- Parameters:
item (CompletionItem) – Completion item to format.
- Return type:
- complete()¶
Produce the completion data to send back to the shell.
By default this calls
get_completion_args(), gets thecompletions, then callsformat_completion()for eachcompletion.- Return type:
- click.shell_completion.add_completion_class(cls,name=None)¶
Register a
ShellCompletesubclass under the given name.The name will be provided by the completion instruction environmentvariable during completion.- Parameters:
cls (ShellCompleteType) – The completion class that will handle completion for theshell.
name (str |None) – Name to register the class under. Defaults to theclass’s
nameattribute.
- Return type:
ShellCompleteType
Testing¶
- classclick.testing.CliRunner(charset='utf-8',env=None,echo_stdin=False,catch_exceptions=True)¶
The CLI runner provides functionality to invoke a Click command linescript for unittesting purposes in a isolated environment. This onlyworks in single-threaded systems without any concurrency as it changes theglobal interpreter state.
- Parameters:
charset (str) – the character set for the input and output data.
env (cabc.Mapping[str,str |None]|None) – a dictionary with environment variables for overriding.
echo_stdin (bool) – if this is set to
True, then reading from<stdin>writesto<stdout>. This is useful for showing examples insome circumstances. Note that regular promptswill automatically echo the input.catch_exceptions (bool) – Whether to catch any exceptions other than
SystemExitwhen runninginvoke().
Changelog
Changed in version 8.2:Added the
catch_exceptionsparameter.Changed in version 8.2:
mix_stderrparameter has been removed.- get_default_prog_name(cli)¶
Given a command object it will return the default program namefor it. The default is the
nameattribute or"root"if notset.
- make_env(overrides=None)¶
Returns the environment overrides for invoking a script.
- isolation(input=None,env=None,color=False)¶
A context manager that sets up the isolation for invoking of acommand line tool. This sets up
<stdin>with the given input dataandos.environwith the overrides from the given dictionary.This also rebinds some internals in Click to be mocked (like theprompt functionality).This is automatically done in the
invoke()method.- Parameters:
- Return type:
Changelog
Added in version 8.2:An additional output stream is returned, which is a mix of
<stdout>and<stderr>streams.Changed in version 8.2:Always returns the
<stderr>stream.Changed in version 8.0:
<stderr>is opened witherrors="backslashreplace"instead of the default"strict".Changed in version 4.0:Added the
colorparameter.
- invoke(cli,args=None,input=None,env=None,catch_exceptions=None,color=False,**extra)¶
Invokes a command in an isolated environment. The arguments areforwarded directly to the command line script, the
extrakeywordarguments are passed to themain()function ofthe command.This returns a
Resultobject.- Parameters:
cli (Command) – the command to invoke
args (str |cabc.Sequence[str]|None) – the arguments to invoke. It may be given as an iterableor a string. When given as string it will be interpretedas a Unix shell command. More details at
shlex.split().input (str |bytes |t.IO[t.Any]|None) – the input data for
sys.stdin.env (cabc.Mapping[str,str |None]|None) – the environment overrides.
catch_exceptions (bool |None) – Whether to catch any other exceptions than
SystemExit. IfNone, the valuefromCliRunneris used.extra (t.Any) – the keyword arguments to pass to
main().color (bool) – whether the output should contain color codes. Theapplication can still override this explicitly.
- Return type:
Changelog
Added in version 8.2:The result object has the
output_bytesattribute withthe mix ofstdout_bytesandstderr_bytes, as the user wouldsee it in its terminal.Changed in version 8.2:The result object always returns the
stderr_bytesstream.Changed in version 8.0:The result object has the
return_valueattribute withthe value returned from the invoked command.Changed in version 4.0:Added the
colorparameter.Changed in version 3.0:Added the
catch_exceptionsparameter.Changed in version 3.0:The result object has the
exc_infoattribute with thetraceback if available.
- isolated_filesystem(temp_dir=None)¶
A context manager that creates a temporary directory andchanges the current working directory to it. This isolates teststhat affect the contents of the CWD to prevent them frominterfering with each other.
- Parameters:
temp_dir (str |PathLike[str]|None) – Create the temporary directory under thisdirectory. If given, the created directory is not removedwhen exiting.
- Return type:
Changelog
Changed in version 8.0:Added the
temp_dirparameter.
- classclick.testing.Result(runner,stdout_bytes,stderr_bytes,output_bytes,return_value,exit_code,exception,exc_info=None)¶
Holds the captured result of an invoked CLI script.
- Parameters:
runner (CliRunner) – The runner that created the result
stdout_bytes (bytes) – The standard output as bytes.
stderr_bytes (bytes) – The standard error as bytes.
output_bytes (bytes) – A mix of
stdout_bytesandstderr_bytes, as theuser would see it in its terminal.return_value (t.Any) – The value returned from the invoked command.
exit_code (int) – The exit code as integer.
exception (BaseException |None) – The exception that happened if one did.
exc_info (tuple[type[BaseException],BaseException,TracebackType]|None) – Exception information (exception type, exception instance,traceback type).
Changelog
Changed in version 8.2:
stderr_bytesno longer optional,output_bytesintroduced andmix_stderrhas been removed.Added in version 8.0:Added
return_value.