faust.cli.base¶
Command-line programs using click.
-
class
faust.cli.base.argument(*args: Any, **kwargs: Any)[source]¶ Create command-line argument.
- SeeAlso:
-
class
faust.cli.base.option(*args: Any, show_default: bool = True, **kwargs: Any)[source]¶ Create command-line option.
- SeeAlso:
-
faust.cli.base.find_app(app: str, *, symbol_by_name: Callable = <function symbol_by_name>, imp: Callable = <function import_from_cwd>, attr_name: str = 'app') → faust.types.app.AppT[source]¶ Find app by string like
examples.simple.Notes
This function uses
import_from_cwdto temporarily add the current working directory toPYTHONPATH, such that when importing the app it will search the current working directory last.You can think of it as temporarily running with the
PYTHONPATHset like this:You can disable this with the
impkeyword argument, for example passingimp=importlib.import_module.Examples
>>> # If providing the name of a module, it will attempt >>> # to find an attribute name (.app) in that module. >>> # Example below is the same as importing:: >>> # from examples.simple import app >>> find_app('examples.simple')
>>> # If you want an attribute other than .app you can >>> # use : to separate module and attribute. >>> # Examples below is the same as importing:: >>> # from examples.simple import my_app >>> find_app('examples.simple:my_app')
>>> # You can also use period for the module/attribute separator >>> find_app('examples.simple.my_app')
- Return type
AppT[]
-
class
faust.cli.base.Command(ctx: click.core.Context, *args: Any, **kwargs: Any) → None[source]¶ Base class for subcommands.
-
exception
UsageError(message, ctx=None)¶ An internal exception that signals a usage error. This typically aborts any further handling.
- Parameters
message – the error message to display.
ctx – optionally the context that caused this error. Click will fill in the context automatically in some situations.
-
exit_code= 2¶
-
show(file=None)¶
-
abstract= True¶
-
daemon= False¶
-
redirect_stdouts= None¶
-
redirect_stdouts_level= None¶
-
builtin_options= [<function version_option.<locals>.decorator>, option('--app', '-A', help='Path of Faust application to use, or the name of a module.'), option('--quiet/--no-quiet', '-q', default=False, help='Silence output to <stdout>/<stderr>.'), option('--debug/--no-debug', default=False, help='Enable debugging output, and the blocking detector.'), option('--no-color/--color', '--no_color/--color', default=False, help='Enable colors in output.'), option('--workdir', '-W', default=None, type=<click.types.Path object>, help='Working directory to change to after start.'), option('--datadir', '-D', default='{conf.name}-data', type=<click.types.Path object>, help='Directory to keep application state.'), option('--json', default=False, is_flag=True, help='Return output in machine-readable JSON format'), option('--loop', '-L', default='aio', type=Choice(['aio', 'eventlet', 'uvloop']), help='Event loop implementation to use.'), option('--logfile', '-f', callback=<function compat_option.<locals>._callback>, expose_value=False, default=None, type=<click.types.Path object>, help='Path to logfile (default is <stderr>).'), option('--loglevel', '-l', callback=<function compat_option.<locals>._callback>, expose_value=False, default='WARN', type=Choice(['crit', 'error', 'warn', 'info', 'debug']), help='Logging level to use.'), option('--blocking-timeout', callback=<function compat_option.<locals>._callback>, expose_value=False, default=10.0, type=<class 'float'>, help='when --debug: Blocking detector timeout.'), option('--console-port', callback=<function compat_option.<locals>._callback>, expose_value=False, default=50101, type=IntRange(1, 65535), help='when --debug: Port to run debugger console on.')]¶
-
options= None¶
-
classmethod
parse(argv: Sequence[str]) → Mapping[source]¶ Parse command-line arguments in
argvand return mapping.- Return type
Mapping[~KT, +VT_co]
-
prog_name= ''¶
-
async
run(*args: Any, **kwargs: Any) → Any[source]¶ Override this method to define what your command does.
-
run_using_worker(*args: Any, **kwargs: Any) → NoReturn[source]¶ Execute command using
faust.Worker.- Return type
_NoReturn
-
on_worker_created(worker: mode.worker.Worker) → None[source]¶ Call when creating
faust.Workerto execute this command.- Return type
None
-
as_service(loop: asyncio.events.AbstractEventLoop, *args: Any, **kwargs: Any) → mode.services.Service[source]¶ Wrap command in a
mode.Serviceobject.- Return type
Service[]
-
worker_for_service(service: mode.types.services.ServiceT, loop: asyncio.events.AbstractEventLoop = None) → mode.worker.Worker[source]¶ Create
faust.Workerinstance for this command.- Return type
Worker[]
-
tabulate(data: Sequence[Sequence[str]], headers: Sequence[str] = None, wrap_last_row: bool = True, title: str = '', title_color: str = 'blue', **kwargs: Any) → str[source]¶ Create an ANSI representation of a table of two-row tuples.
See also
Keyword arguments are forwarded to
terminaltables.SingleTableNote
If the
--jsonoption is enabled this returns json instead.- Return type
-
table(data: Sequence[Sequence[str]], title: str = '', **kwargs: Any) → terminaltables.base_table.BaseTable[source]¶ Format table data as ANSI/ASCII table.
- Return type
BaseTable
-
color(name: str, text: str) → str[source]¶ Return text having a certain color by name.
- Examples::
>>> self.color('blue', 'text_to_color') >>> self.color('hiblue', text_to_color')
See also
colorclass: for a list of available colors.
- Return type
-
bold_tail(text: str, *, sep: str = '.') → str[source]¶ Put bold emphasis on the last part of a
foo.bar.bazstring.- Return type
-
say(message: str, file: IO = None, err: IO = None, **kwargs: Any) → None[source]¶ Print something to stdout (or use
file=stderrkwarg).Note
Does not do anything if the
--quietoption is enabled.- Return type
None
-
carp(s: Any, **kwargs: Any) → None[source]¶ Print something to stdout (or use
file=stderrkwargs).Note
Does not do anything if the
--debugoption is enabled.- Return type
None
-
property
console_port¶ Return the aiomonitor console port. :rtype:
int
-
exception
-
class
faust.cli.base.AppCommand(ctx: click.core.Context, *args: Any, key_serializer: Union[faust.types.codecs.CodecT, str, None] = None, value_serializer: Union[faust.types.codecs.CodecT, str, None] = None, **kwargs: Any) → None[source]¶ Command that takes
-A appas argument.-
abstract= False¶
-
require_app= True¶
-
value_serialier= None¶ The codec used to serialize values. Taken from instance parameters or
value_serializer.
-
classmethod
from_handler(*options: Any, **kwargs: Any) → Callable[Callable, Type[faust.cli.base.AppCommand]][source]¶ Decorate
async defcommand to create command class.- Return type
Callable[[Callable],Type[AppCommand]]
-
key_serializer= None¶ The codec used to serialize keys. Taken from instance parameters or
key_serializer.
-
to_key(typ: Optional[str], key: str) → Any[source]¶ Convert command-line argument string to model (key).
- Parameters
Notes
Uses
key_serializerto set the codec for the key (e.g."json"), as set by the--key-serializeroption.- Return type
-
to_value(typ: Optional[str], value: str) → Any[source]¶ Convert command-line argument string to model (value).
- Parameters
Notes
Uses
value_serializerto set the codec for the value (e.g."json"), as set by the--value-serializeroption.- Return type
-
to_model(typ: Optional[str], value: str, serializer: Union[faust.types.codecs.CodecT, str, None]) → Any[source]¶ Convert command-line argument to model.
Generic version of
to_key()/to_value().- Parameters
Notes
Uses
value_serializerto set the codec for the value (e.g."json"), as set by the--value-serializeroption.- Return type
-
import_relative_to_app(attr: str) → Any[source]¶ Import string like “module.Model”, or “Model” to model class.
- Return type
-
to_topic(entity: str) → Any[source]¶ Convert topic name given on command-line to
app.topic().- Return type
-
abbreviate_fqdn(name: str, *, prefix: str = '') → str[source]¶ Abbreviate fully-qualified Python name, by removing origin.
app.conf.originis the package where the app is defined, so if this isexamples.simpleit returns the truncated:>>> app.conf.origin 'examples.simple' >>> abbr_fqdn(app.conf.origin, ... 'examples.simple.Withdrawal', ... prefix='[...]') '[...]Withdrawal'
but if the package is not part of origin it provides the full path:
>>> abbr_fqdn(app.conf.origin, ... 'examples.other.Foo', prefix='[...]') 'examples.other.foo'
- Return type
-