pycsamt.api.cli.config#

pycsamt.api.cli.config#

Package-wide CLI configuration. Same configure / reset / context pattern used by the rest of pycsamt.api.

Quick start#

Read the current defaults:

from pycsamt.api.cli import PYCSAMT_CLI
print(PYCSAMT_CLI)

Change one setting for the whole session:

from pycsamt.api.cli import configure_cli
configure_cli(log__level=1, output__format="json")

Temporarily override, then restore:

from pycsamt.api.cli import PYCSAMT_CLI
with PYCSAMT_CLI.context(log__level=2):
    ...   # debug verbosity active here only

Reset to package defaults:

from pycsamt.api.cli import reset_cli
reset_cli()

Functions

configure_cli(**kw)

Configure PYCSAMT_CLI with dotted-path arguments.

reset_cli()

Reset PYCSAMT_CLI to package defaults.

Classes

BuildConfig([n_jobs, cache, cache_dir])

Build / processing execution settings.

LogConfig([level, color, file])

Logging / verbosity settings.

OutputConfig([format, dir, overwrite])

Output format and destination settings.

PyCSAMTCLI()

Package-wide CLI configuration container.

class pycsamt.api.cli.config.BuildConfig(n_jobs=1, cache=True, cache_dir=None)[source]#

Bases: object

Build / processing execution settings.

Parameters:
n_jobs: int = 1#
cache: bool = True#
cache_dir: Path | None = None#
class pycsamt.api.cli.config.LogConfig(level=0, color=True, file=None)[source]#

Bases: object

Logging / verbosity settings.

Parameters:
level: int = 0#
color: bool = True#
file: Path | None = None#
class pycsamt.api.cli.config.OutputConfig(format='text', dir=<factory>, overwrite=False)[source]#

Bases: object

Output format and destination settings.

Parameters:
format: str = 'text'#
dir: Path#
overwrite: bool = False#
class pycsamt.api.cli.config.PyCSAMTCLI[source]#

Bases: object

Package-wide CLI configuration container.

Access the singleton via PYCSAMT_CLI. Do not instantiate directly unless you need an independent copy.

configure(**kw)[source]#

Set attributes using section__attribute dotted paths.

Examples

>>> PYCSAMT_CLI.configure(log__level=1, output__format="json")
>>> PYCSAMT_CLI.configure(build__n_jobs=4)
Parameters:

kw (Any)

Return type:

None

context(**kw)[source]#

Temporarily override settings, then restore on exit.

Examples

>>> with PYCSAMT_CLI.context(log__level=2):
...     run_command()
Parameters:

kw (Any)

Return type:

Generator[PyCSAMTCLI, None, None]

reset()[source]#

Reset all settings to package defaults.

Return type:

None

load_env()[source]#

Override settings from environment variables.

Recognised variables#

PYCSAMT_VERBOSE integer 0-2 PYCSAMT_NO_COLOR any non-empty value disables colour PYCSAMT_OUTPUT text | json | csv PYCSAMT_OUTPUT_DIR path PYCSAMT_JOBS integer >= 1

Return type:

None

summary()[source]#

Return a human-readable summary of current settings.

Return type:

str

pycsamt.api.cli.config.configure_cli(**kw)[source]#

Configure PYCSAMT_CLI with dotted-path arguments.

Examples

>>> from pycsamt.api.cli import configure_cli
>>> configure_cli(log__level=1, output__format="json")
Parameters:

kw (Any)

Return type:

None

pycsamt.api.cli.config.reset_cli()[source]#

Reset PYCSAMT_CLI to package defaults.

Return type:

None