Skip to main content

Utilities for working with configuration files in typer CLIs.

Project description

typer-config

GitHub Workflow Status (with branch) Codecov PyPI PyPI - Downloads Libraries.io dependency status for latest release

This is a collection of utilities to use configuration files to set parameters for a typer CLI. It is useful for typer commands with many options/arguments so you don't have to constantly rewrite long commands. This package was inspired by phha/click_config_file and prototyped in this issue. It allows you to set values for CLI parameters using a configuration file.

Installation

$ pip install typer-config[all]

Note: that will include libraries for reading from YAML, TOML, and Dotenv files as well. Feel free to leave off the optional dependencies if you don't need those capabilities.

Usage

# Long commands like this:
$ my-typer-app --opt1 foo --opt2 bar arg1 arg2

# Can become this:
$ my-typer-app --config config.yml

Quickstart

You can use a decorator to quickly add a configuration parameter to your typer application:

import typer
from typer_config import use_yaml_config

app = typer.Typer()


@app.command()
@use_yaml_config()  # MUST BE AFTER @app.command()
def main(foo: FooType): ...


if __name__ == "__main__":
    app()

Your typer command will now include a --config CONFIG_FILE option at the command line.

Note: this package also provides @use_json_config, @use_toml_config, and @use_dotenv_config for those file formats. You can also use your own loader function and the @use_config(loader_func) decorator.

See the documentation for more examples using typer-config.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typer_config-1.5.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typer_config-1.5.1-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file typer_config-1.5.1.tar.gz.

File metadata

  • Download URL: typer_config-1.5.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for typer_config-1.5.1.tar.gz
Algorithm Hash digest
SHA256 78be341f6894f44d6f2dc6b01f6eef83b9381d16c11341b12d6b8a245a3fb451
MD5 f41d95e5bbfa37c74007db003b2f4a2c
BLAKE2b-256 2183816a6556bb8f4acaa10e908f609557be00f3df2cae98c4216e4b75235c45

See more details on using hashes here.

File details

Details for the file typer_config-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: typer_config-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for typer_config-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a13bb7d0043231c58e0ec28195a4f54a08116a48b0d61ca49af13f83ef3a846e
MD5 600f78995facc43e187e9f3d68da403e
BLAKE2b-256 3be1e51631c3454838faecf73c95dcfbc337654bdef8ac68671973e2ca823265

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page