xonsh.prompt.base#

Base prompt, provides PROMPT_FIELDS and prompt related functions

class xonsh.prompt.base.BasePromptField(**kwargs)[source]#
Parameters:
kwargs

attributes of the class will be set from this

update(ctx: PromptFields) None[source]#

will be called from PromptFields getter for each new prompt

classmethod wrap(**kwargs) tp.Callable[..., FieldType][source]#

decorator to set the updator

property name: str#

will be set during load.

Notes

fields with names such as gitstatus.branch mean they are defined in a module named gitstatus and are most likely a subfield used by gitstatus

updator: tp.Callable[[FieldType, PromptFields], None] | None = None#

this is a callable that needs to update the value or any of the attribute of the field

value = ''#

This field should hold the bare value of the field without any color/format strings

class xonsh.prompt.base.MultiPromptField(*fragments: str, **kwargs)[source]#

Facilitate combining other PromptFields

Parameters:
kwargs

attributes of the class will be set from this

get_frags(env)[source]#
update(ctx: PromptFields)[source]#

will be called from PromptFields getter for each new prompt

classmethod wrap(**kwargs) tp.Callable[..., FieldType]#

decorator to set the updator

fragments: tuple[str, ...] = ()#

name of the fields or the literals to combine. If the framgment name startswith . then they are resolved to include the name of this field.

property name: str#

will be set during load.

Notes

fields with names such as gitstatus.branch mean they are defined in a module named gitstatus and are most likely a subfield used by gitstatus

separator = ''#

in case this combines values from other prompt fields

updator: tp.Callable[[FieldType, PromptFields], None] | None = None#

this is a callable that needs to update the value or any of the attribute of the field

value = ''#

This field should hold the bare value of the field without any color/format strings

class xonsh.prompt.base.ParsedTokens(tokens, template)[source]#

Create new instance of ParsedTokens(tokens, template)

count(value, /)#

Return number of occurrences of value.

index(value, start=0, stop=sys.maxsize, /)#

Return first index of value.

Raises ValueError if the value is not present.

process() str[source]#

Wrapper that gets formatter-function from environment and returns final prompt.

update(idx: int, val: str | None, spec: str | None, conv: str | None) None[source]#

Update tokens list in-place

template: str | Callable#

Alias for field number 1

tokens: list[_ParsedToken]#

Alias for field number 0

class xonsh.prompt.base.PromptField(**kwargs)[source]#

Any new non-private attributes set by the sub-classes are considered a way to configure the format

Parameters:
kwargs

attributes of the class will be set from this

update(ctx: PromptFields) None#

will be called from PromptFields getter for each new prompt

classmethod wrap(**kwargs) tp.Callable[..., FieldType]#

decorator to set the updator

property name: str#

will be set during load.

Notes

fields with names such as gitstatus.branch mean they are defined in a module named gitstatus and are most likely a subfield used by gitstatus

prefix = ''#
suffix = ''#
updator: tp.Callable[[FieldType, PromptFields], None] | None = None#

this is a callable that needs to update the value or any of the attribute of the field

value = ''#

This field should hold the bare value of the field without any color/format strings

class xonsh.prompt.base.PromptFields(xsh: XonshSession, init=True)[source]#

Mapping of functions available for prompt-display.

clear() None.  Remove all items from D.#
get(k[, d]) D[k] if k in D, else d.  d defaults to None.#
get_fields(module)[source]#

Find and load all instances of PromptField from the given module.

Each module is expected to have a single prompt-field with the same name as the module

items() a set-like object providing a view on D's items#
keys() a set-like object providing a view on D's keys#
load_initial()[source]#
needs_calling(name) bool[source]#

check if we can offload the work

pick(key: str | FieldType) str | FieldType | None[source]#

Get the value of the prompt-field

Notes

If it is callable, then the result of the callable is returned. If it is a PromptField then it is updated

pick_val(key)[source]#

wrap .pick() method to get .value attribute in case of PromptField

pop(k[, d]) v, remove specified key and return the corresponding value.#

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair#

as a 2-tuple; but raise KeyError if D is empty.

reset()[source]#

the results are cached and need to be reset between prompts

reset_key(key)[source]#

remove a single key from the cache (if it exists)

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
update([E, ]**F) None.  Update D from mapping/iterable E and F.#

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values#
class xonsh.prompt.base.PromptFormatter[source]#

Class that holds all the related prompt formatting methods, uses the PROMPT_FIELDS envvar (no color formatting).

xonsh.prompt.base.default_prompt()[source]#

Creates a new instance of the default prompt.

xonsh.prompt.base.is_template_string(template, PROMPT_FIELDS=None)[source]#

Returns whether or not the string is a valid template.

xonsh.prompt.base.multiline_prompt(curr='')[source]#

Returns the filler text for the prompt in multiline scenarios.

xonsh.prompt.base.prompt_tokens_formatter_default(container: ParsedTokens) str[source]#

Join the tokens

Parameters:
container: ParsedTokens

parsed tokens holder

Returns:
str

process the tokens and finally return the prompt string