- 🗑️ Deprecate
shell_complete
and continue to useautocompletion
for CLI parameters. PR #974 by @svlandeg.
- ✏️ Fix a few typos in the source and documentation. PR #1028 by @kkirsche.
- 📝 Fix minor inconsistencies and typos in tutorial. PR #1067 by @tvoirand.
- ✏️ Fix a few small typos in the documentation. PR #1077 by @svlandeg.
- 🔧 Update build-docs filter patterns. PR #1080 by @tiangolo.
- 🔨 Update deploy docs preview script. PR #1079 by @tiangolo.
- 🔧 Update members. PR #1078 by @tiangolo.
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #1071 by @pre-commit-ci[bot].
- ⬆ Update httpx requirement from <0.28.0,>=0.27.0 to >=0.27.0,<0.29.0. PR #1065 by @dependabot[bot].
- ✨ Add support for extending typer apps without passing a name, add commands to the top level. PR #1037 by @patrick91.
- New docs: One File Per Command.
- ⬆ Bump mkdocs-material from 9.5.46 to 9.5.47. PR #1070 by @dependabot[bot].
- ⬆ Bump ruff from 0.8.0 to 0.8.1. PR #1066 by @dependabot[bot].
- 🔥 Remove auto naming of groups added via
add_typer
based on the group's callback function name. PR #1052 by @patrick91.
Before, it was supported to infer the name of a command group from the callback function name in the sub-app, so, in this code:
import typer
app = typer.Typer()
users_app = typer.Typer()
app.add_typer(users_app)
@users_app.callback()
def users(): # <-- This was the inferred command group name
"""
Manage users in the app.
"""
@users_app.command()
def create(name: str):
print(f"Creating user: {name}")
...the command group would be named users
, based on the name of the function def users()
.
Now you need to set it explicitly:
import typer
app = typer.Typer()
users_app = typer.Typer()
app.add_typer(users_app, name="users") # <-- Explicitly set the command group name
@users_app.callback()
def users():
"""
Manage users in the app.
"""
@users_app.command()
def create(name: str):
print(f"Creating user: {name}")
Updated docs SubCommand Name and Help.
Note: this change will enable important features in the next release. 🤩
- ⬆ Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.12.2. PR #1043 by @dependabot[bot].
- ⬆ Bump mkdocs-material from 9.5.44 to 9.5.46. PR #1062 by @dependabot[bot].
- ⬆ Bump ruff from 0.7.4 to 0.8.0. PR #1059 by @dependabot[bot].
- ⬆ Bump astral-sh/setup-uv from 3 to 4. PR #1061 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #1053 by @pre-commit-ci[bot].
- ✨ Remove Rich tags when showing completion text. PR #877 by @svlandeg.
- ✨ Render Rich markup as HTML in Markdown docs. PR #847 by @svlandeg.
- ✨ Support cp850 encoding for auto-completion in PowerShell. PR #808 by @svlandeg.
- ✨ Allow gettext translation of help message. PR #886 by @svlandeg.
- ⬆ Bump ruff from 0.7.3 to 0.7.4. PR #1051 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #1047 by @pre-commit-ci[bot].
- ⬆ Bump ruff from 0.7.2 to 0.7.3. PR #1046 by @dependabot[bot].
- ⬆ Bump tiangolo/latest-changes from 0.3.1 to 0.3.2. PR #1044 by @dependabot[bot].
- ⬆ Update pytest-cov requirement from <6.0.0,>=2.10.0 to >=2.10.0,<7.0.0. PR #1033 by @dependabot[bot].
- ✨ Handle
KeyboardInterrupt
separately from other exceptions. PR #1039 by @patrick91. - ✨ Update
launch
to not print anything when opening urls. PR #1035 by @patrick91. - ✨ Show help items in order of definition. PR #944 by @svlandeg.
- 🐛 Fix equality check for custom classes. PR #979 by @AryazE.
- 🐛 Allow colon in zsh autocomplete values and descriptions. PR #988 by @snapbug.
- 🗑️ Deprecate support for
is_flag
andflag_value
parameters. PR #987 by @svlandeg. - 🔥 Remove unused functionality from
_typing.py
file. PR #805 by @ivantodorovich. - ✏️ Fix typo in function name
_make_rich_text
. PR #959 by @svlandeg.
- ✅ Only run completion installation tests when the env var
_TYPER_RUN_INSTALL_COMPLETION_TESTS
is set. PR #995 by @svlandeg. - 📝 Update the docstring of the
_make_rich_text
method. PR #972 by @svlandeg. - ⬆ [pre-commit.ci] pre-commit autoupdate. PR #1040 by @pre-commit-ci[bot].
- ⬆ Bump mkdocs-material from 9.5.42 to 9.5.44. PR #1042 by @dependabot[bot].
- ⬆ Bump ruff from 0.7.1 to 0.7.2. PR #1038 by @dependabot[bot].
- ⬆ Bump mkdocs-macros-plugin from 1.3.6 to 1.3.7. PR #1031 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #1032 by @pre-commit-ci[bot].
- ⬆ Bump ruff from 0.7.0 to 0.7.1. PR #1029 by @dependabot[bot].
- ⬆ Bump pillow from 10.4.0 to 11.0.0. PR #1023 by @dependabot[bot].
- ⬆ Bump mkdocs-material from 9.5.35 to 9.5.42. PR #1027 by @dependabot[bot].
- ⬆ Bump ruff from 0.6.5 to 0.7.0. PR #1026 by @dependabot[bot].
- ⬆ Bump mkdocs-macros-plugin from 1.2.0 to 1.3.6. PR #1025 by @dependabot[bot].
- ⬆ Update pre-commit requirement from <4.0.0,>=2.17.0 to >=2.17.0,<5.0.0. PR #1012 by @dependabot[bot].
- ⬆ Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.3. PR #1009 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #1001 by @pre-commit-ci[bot].
- 👷 Update Deploy docs CI to use uv. PR #1021 by @tiangolo.
- 👷 Fix smokeshow, checkout files on CI. PR #1020 by @tiangolo.
- 👷 Use uv in CI. PR #1019 by @tiangolo.
- 👷 Update
labeler.yml
. PR #1014 by @tiangolo. - 👷 Update worfkow deploy-docs-notify URL. PR #1011 by @tiangolo.
- 👷 Upgrade Cloudflare GitHub Action. PR #1010 by @tiangolo.
- ⬆ Bump mkdocs-macros-plugin from 1.0.5 to 1.2.0. PR #992 by @dependabot[bot].
- ⬆ Bump ruff from 0.6.4 to 0.6.5. PR #991 by @dependabot[bot].
- ⬆ Bump mkdocs-material from 9.5.34 to 9.5.35. PR #996 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #993 by @pre-commit-ci[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #982 by @pre-commit-ci[bot].
- ⬆ Bump tiangolo/issue-manager from 0.5.0 to 0.5.1. PR #980 by @dependabot[bot].
- 👷 Update
issue-manager.yml
. PR #978 by @tiangolo. - ⬆ Bump ruff from 0.6.3 to 0.6.4. PR #975 by @dependabot[bot].
- ⬆ Bump mkdocs-material from 9.5.33 to 9.5.34. PR #963 by @dependabot[bot].
- ⬆ Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.1. PR #973 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #966 by @pre-commit-ci[bot].
- 💚 Set
include-hidden-files
toTrue
when using theupload-artifact
GH action. PR #967 by @svlandeg. - ⬆ Bump ruff from 0.6.1 to 0.6.3. PR #961 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #689 by @pre-commit-ci[bot].
- ⬆ Bump ruff from 0.2.0 to 0.6.1. PR #938 by @dependabot[bot].
- 👷 Update
latest-changes
GitHub Action. PR #955 by @tiangolo.
- 💄 Unify the width of the Rich console for help and errors. PR #788 by @racinmat.
- 🚸 Improve assertion error message if a group is not a valid subclass. PR #425 by @chrisburr.
- 🐛 Ensure
rich_markup_mode=None
disables Rich formatting. PR #859 by @svlandeg. - 🐛 Fix sourcing of completion path for Git Bash. PR #801 by @svlandeg.
- 🐛 Fix PowerShell completion with incomplete word. PR #360 by @patricksurry.
- 🔥 Remove Python 3.6 specific code paths. PR #850 by @svlandeg.
- 🔥 Clean up redundant code. PR #858 by @svlandeg.
- ♻️ Use F-strings in Click examples in docs. PR #891 by @svlandeg.
- 📝Add missing
main.py
in tutorial on CLI option names. PR #868 by @fsramalho. - 📝 Fix broken link. PR #835 by @OhioDschungel6.
- 📝 Update package docs with the latest versions of Typer and Poetry. PR #781 by @kinuax.
- 📝 Update the Progress Bar tutorial with correct output. PR #199 by @n1ckdm.
- 📝 Add docs and scripts to test completion in different shells. PR #953 by @tiangolo.
- ✏️ Fix a typo in
docs/virtual-environments.md
. PR #952 by @tiangolo. - ✏️ Fix typo in
docs/contributing.md
. PR #947 by @tiangolo. - 📝 Add docs for virtual environments, environment variables, and update contributing. PR #946 by @tiangolo.
- 🔨 Pre-install dependencies in Docker so that testing in Docker is faster. PR #954 by @tiangolo.
- ✅ Add
needs_bash
test fixture. PR #888 by @svlandeg. - ⬆ Bump mkdocs-material from 9.5.18 to 9.5.33. PR #945 by @dependabot[bot].
- ⬆ Bump pillow from 10.3.0 to 10.4.0. PR #939 by @dependabot[bot].
- 👷 Fix issue-manager. PR #948 by @tiangolo.
- 🙈 Remove extra line in .gitignore. PR #936 by @tiangolo.
- ⬆ Update pytest-cov requirement from <5.0.0,>=2.10.0 to >=2.10.0,<6.0.0. PR #844 by @dependabot[bot].
- ⬆ Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.9.0. PR #865 by @dependabot[bot].
- ⬆ Update pytest requirement from <8.0.0,>=4.4.0 to >=4.4.0,<9.0.0. PR #915 by @dependabot[bot].
- ⬆ Update pytest-sugar requirement from <0.10.0,>=0.9.4 to >=0.9.4,<1.1.0. PR #841 by @dependabot[bot].
- ✨ Add support for Python 3.12, tests in CI and official marker. PR #807 by @ivantodorovich.
- 🐛 Fix support for
UnionType
(e.g.str | None
) with Python 3.11. PR #548 by @jonaslb. - 🐛 Fix
zsh
autocompletion installation. PR #237 by @alexjurkiewicz. - 🐛 Fix usage of
Annotated
with future annotations in Python 3.7+. PR #814 by @ivantodorovich. - 🐛 Fix
shell_complete
not working for Arguments. PR #737 by @bckohan.
- 📝 Update docs links, from tiangolo to new fastapi org. PR #919 by @tiangolo.
- 📝 Add docs for team and repo management. PR #917 by @tiangolo.
- 🔧 Add URLs to
pyproject.toml
, show up in PyPI. PR #931 by @tiangolo. - 👷 Do not sync labels as it overrides manually added labels. PR #930 by @tiangolo.
- 👷 Update labeler GitHub Action to add only one label. PR #927 by @tiangolo.
- 👷 Update labeler GitHub Actions permissions and dependencies. PR #926 by @tiangolo.
- 👷 Add GitHub Action label-checker. PR #925 by @tiangolo.
- 👷 Add GitHub Action labeler. PR #924 by @tiangolo.
- 👷 Add GitHub Action add-to-project. PR #922 by @tiangolo.
- 🔨 Update docs.py script to enable dirty reload conditionally. PR #918 by @tiangolo.
- 🔧 Update MkDocs previews. PR #916 by @tiangolo.
- 👷 Upgrade build docs configs. PR #914 by @tiangolo.
- 🔧 Update MkDocs to have titles in Markdown files instead of config. PR #913 by @tiangolo.
- 👷 Add alls-green for test-redistribute. PR #911 by @tiangolo.
- 👷 Update docs-previews to handle no docs changes. PR #912 by @tiangolo.
- 👷🏻 Show docs deployment status and preview URLs in comment. PR #910 by @tiangolo.
- 🔧 Enable auto dark mode from system. PR #908 by @tiangolo.
- 💄 Add dark mode logo. PR #907 by @tiangolo.
- 🔧 Update tabs and admonitions with new syntax and new MkDocs features. PR #906 by @tiangolo.
- 🔧 Enable MkDocs Material features. PR #905 by @tiangolo.
- 🔧 Enable dark mode for docs. PR #904 by @tiangolo.
- ➖ Do not install jieba for MkDocs Material as there are no chinese translations. PR #903 by @tiangolo.
- 🙈 Add MkDocs Material cache to gitignore. PR #902 by @tiangolo.
- 🔨 Update lint script. PR #901 by @tiangolo.
- 🔧 Update MkDocs configs and docs build setup. PR #900 by @tiangolo.
- ⬆ Bump actions/cache from 3 to 4. PR #839 by @dependabot[bot].
- 🍱 Update Typer icon and logo. PR #899 by @tiangolo.
- 👷 Update issue-manager.yml GitHub Action permissions. PR #897 by @tiangolo.
- 👷 Refactor GitHub Action to comment docs deployment URLs and update token, preparing for GitHub org. PR #896 by @tiangolo.
- 🔨 Update docs Termynal scripts to not include line nums for local dev. PR #882 by @tiangolo.
- ⬆ Bump black from 23.3.0 to 24.3.0. PR #837 by @dependabot[bot].
- ⬆ Bump pillow from 10.1.0 to 10.3.0. PR #836 by @dependabot[bot].
- ✅ Add CI configs to run tests on Windows and MacOS. PR #824 by @svlandeg.
- 👷 Update GitHub Actions to upload and download artifacts. PR #829 by @tiangolo.
- 👷 Tweak CI for test-redistribute, add needed env vars for slim. PR #827 by @tiangolo.
- ✅ Generalize test suite to run on Windows. PR #810 by @svlandeg.
- ✅ Add
__init__.py
files to fix test suite. PR #809 by @svlandeg. - 🔧 Update MkDocs Material, enable plugins. PR #813 by @tiangolo.
- 🔧 Tweak development scripts and configs after migration to PDM, Ruff, etc.. PR #797 by @tiangolo.
- ✨ Improve column help display, ensure commands column width is the same on all panels. PR #567 by @ssbarnea.
- 🐛 Add support for an argument of type
Optional[Tuple]
and default valueNone
. PR #757 by @Asthestarsfalll.
- 🔧 Fix typo in Github template. PR #793 by @svlandeg.
- 📝 Fix typos in documentation. PR #761 by @svlandeg.
- 📝 Update console output with Click 8 messages. PR #789 by @svlandeg.
- 📝 Remove references to a .rst README generated by poetry new. PR #632 by @jonasmmiguel.
Now you don't need to install typer[all]
. When you install typer
it comes with the default optional dependencies and the typer
command.
If you don't want the extra optional dependencies (rich
and shellingham
), you can install typer-slim
instead.
You can also install typer-slim[standard]
, which includes the default optional dependencies, but not the typer
command.
Now the package typer-cli
doesn't add anything on top of what typer
has, it only depends on typer
, and is there only for backwards compatibility, so that projects that depend on typer-cli
can get the latest features of the typer
command while they upgrade their dependencies to require typer
directly.
- 🐛 Fix broken installation when upgrading from
typer <0.12.0
totyper >=0.12.0
, maketyper
independent oftyper-slim
, includetyper
command intyper
package. PR #791 by @tiangolo.
This fixes a problem that would break the typer
installation directory when upgrading from typer <0.12.0
to typer >=0.12.0
, see issue #790.
By installing the latest version (0.12.1
) it fixes it, for any previous version, even if the installation directory was already broken by the previous upgrade.
- 👷 Add cron to run test once a week on monday. PR #783 by @estebanx64.
In version 0.12.0
, the typer
package depends on typer-slim[standard]
which includes the default dependencies (instead of typer[all]
) and typer-cli
(that provides the typer
command).
If you don't want the extra optional dependencies (rich
and shellingham
), you can install typer-slim
instead.
You can also install typer-slim[standard]
, which includes the default optional dependencies, but not the typer
command.
In version 0.12.0
the typer-cli
package only provides the typer
command, but the code is still in the main code, so even without installing typer-cli
, it can be called with python -m typer
.
This approach of having typer
depend on typer-slim[standard]
instead of including the whole code and dependencies itself caused an issue when upgrading from typer <0.12.0
to typer >=0.12.0
, see issue #790. This is fixed in version 0.12.1
.
- ✨ Add
typer-slim
package without extras, maketyper
includetyper-slim[default]
and integrate Typer CLI (typer
command) into Typer. PR #780 by @tiangolo.
- 🔧 Temporarily disable social plugin while a MkDocs issue is handled. PR #779 by @tiangolo.
- 👷 Fix install MkDocs Insiders only when available. PR #778 by @tiangolo.
- 🔧 Explicitly include testing files in sdist for redistributors (e.g. OpenSUSE) and add CI to test redistribution. PR #773 by @tiangolo.
- 🔧 Refactor package manager, move from Flit to PDM, remove private pip extras for
test
,doc
,dev
. PR #764 by @tiangolo. - 🔥 Remove support for Click 7, require Click 8+. PR #760 by @tiangolo.
- 🔥 Remove support for Python 3.6. PR #758 by @tiangolo.
- ⬆️ Upgrade coverage and configs. PR #769 by @tiangolo.
- 🔧 Upgrade mypy and config. PR #768 by @tiangolo.
- 👷 Upgrade Smokeshow GitHub action. PR #767 by @tiangolo.
- 👷 Upgrade latest-changes GitHub Action. PR #766 by @tiangolo.
- 👷 Upgrade issue-manager GitHub Action. PR #765 by @tiangolo.
- 👷 Add alls-green to CI. PR #759 by @tiangolo.
- 🐛 Fix default value of
None
for CLI Parameters when the type islist | None
and the default value isNone
. PR #664 by @theowisear.
- 🐛 Fix evaluating stringified annotations in Python 3.10 (also
from __future__ import annotations
). PR #721 by @heckad.
- 🐛 Fix display of default value for Enum parameters inside of a list, include docs and tests. PR #473 by @asieira.
- 🐛 Update type annotations for
show_default
parameter and update docs for setting a "Custom default string". PR #501 by @plannigan.
- 🐛 Add missing
default_factory
inArgument
overloads. PR #750 by @m9810223. - 🐛 Fix preserving case in enum values. PR #571 by @avaldebe.
-
📝 Remove obsolete references to
--install-completion
fortyper.run()
scripts. PR #595 by @tiangolo. -
📝 Update docs example for a Typer/Click group to make new subcommands explicit. PR #755 by @svlandeg.
-
📝 Update docs for building a package, file structure example. PR #683 by @davidbgk.
-
📝 Update link in docs to the newest stable version of click. PR #675 by @javier171188.
-
🔧 Add
CITATION.cff
file for academic citations. PR #681 by @tiangolo. -
✏ Fix typo in
docs/tutorial/exceptions.md
. PR #702 by @menzenski. -
✏ Fix typo in
docs/tutorial/options/name.md
. PR #725 by @bwagner. -
✏ Fix typo in
docs/tutorial/arguments/optional.md
. PR #602 by @tadasgedgaudas.
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #606 by @pre-commit-ci[bot].
- 👷 Install MkDocs Material Insiders only when secrets are available, for Dependabot. PR #685 by @tiangolo.
- ⚒️ Update build-docs.yml, do not zip docs. PR #645 by @tiangolo.
- 👷 Deploy docs to Cloudflare. PR #644 by @tiangolo.
- 👷 Upgrade CI for docs. PR #642 by @tiangolo.
- 👷 Update token for latest changes. PR #635 by @tiangolo.
- 👷 Update CI workflow dispatch for latest changes. PR #643 by @tiangolo.
- 👷 Update token for Material for MkDocs Insiders. PR #636 by @tiangolo.
- 🐛 Fix internal type annotations and bump mypy version. PR #638 by @paulo-raca.
- 💡 Add comments to document overload definitions in code. PR #752 by @svlandeg.
- 🔥 Remove Jina QA Bot as it has been discontinued. PR #749 by @tiangolo.
- 👷 Update build docs CI cache paths. PR #707 by @tiangolo.
- 👷 Upgrade latest-changes GitHub Action. PR #691 by @tiangolo.
- ✨ Add support for PEP-593
Annotated
for specifying options and arguments. Initial PR #584 by @ryangalamb.- New docs: Optional CLI arguments.
- It is no longer required to pass a default value of
...
to mark a CLI Argument or CLI Option as required. - It is now recommended to use
Annotated
fortyper.Option()
andtyper.Argument()
. - All the docs have been updated to recommend
Annotated
.
- 📝 Update docs examples for custom param types using
Annotated
, fix overloads fortyper.Argument
. PR #594 by @tiangolo.
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #592 by @pre-commit-ci[bot].
- ✨ Add support for custom types and parsers. Initial PR #583 by @jpurviance. Based on original PR #443 by @paulo-raca.
- New docs: CLI Parameter Types: Custom Types.
- ⬆ Upgrade Rich, support 13.x. PR #524 by @musicinmybrain.
- 📝 Tweak docs, Custom Types path, main page and READAME colors, broken links. PR #588 by @tiangolo.
- ✏ Fix spelling (shinny -> shiny). PR #586 by @runofthemill.
- 📝 Update docs about helping Typer. PR #547 by @tiangolo.
- ✏️ Fix typo in datetime docs. PR #495 by @huxuan.
- ✏️ Add quotes to package name that includes brackets in docs. PR #475 by @gjolga.
- ⬆ Bump dawidd6/action-download-artifact from 2.24.2 to 2.26.0. PR #558 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #549 by @pre-commit-ci[bot].
- 🔧 Add
exclude_lines
to coverage configuration. PR #585 by @dmontagu. - ⬆️ Upgrade analytics. PR #557 by @tiangolo.
- 🔧 Update new issue chooser to suggest GitHub Discussions. PR #544 by @tiangolo.
- 🔧 Add GitHub Discussion templates for questions. PR #541 by @tiangolo.
- 🔧 Update pre-commit, Python version, isort version. PR #542 by @tiangolo.
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #512 by @pre-commit-ci[bot].
- ⬆ Bump nwtgck/actions-netlify from 1.2.4 to 2.0.0. PR #513 by @dependabot[bot].
- 👷 Refactor CI artifact upload/download for docs previews. PR #516 by @tiangolo.
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #500 by @pre-commit-ci[bot].
- ⬆ Bump actions/cache from 2 to 3. PR #496 by @dependabot[bot].
- ⬆ Bump dawidd6/action-download-artifact from 2.24.1 to 2.24.2. PR #494 by @dependabot[bot].
- ⬆ Bump dawidd6/action-download-artifact from 2.9.0 to 2.24.1. PR #491 by @dependabot[bot].
- ⬆ Bump actions/setup-python from 2 to 4. PR #492 by @dependabot[bot].
- 👷♂️ Consistently use
sys.executable
to run subprocesses, needed by OpenSUSE. PR #408 by @theMarix. - 👷♂️ Ensure the
PYTHONPATH
is set properly when testing the tutorial scripts. PR #407 by @theMarix.
- ✨ Make
typer.run()
not add completion scripts by default, it only makes sense in installed apps. Also update docs for handling autocompletion in CLI options. PR #488 by @tiangolo. - ✨ Add support for Python 3.11, tests in CI and official marker. PR #487 by @tiangolo.
- 👷 Add CI for Python 3.10. PR #384 by @tiangolo.
- 🎨 Fix type annotation of
typer.run()
. PR #284 by @yassu. - 🎨 Fix type annotations for
get_group
. PR #430 by @tiangolo.
- 📝 Add note about how subcommands with function names using underscores are converted to dashes. PR #403 by @targhs.
- 📝 Fix typo in docs at
docs/tutorial/commands/help.md
. PR #466 by @fepegar. - ✏ Fix link in docs to
datetime.strptime()
. PR #464 by @Kobu. - ✏ Update
first-steps.md
, clarify distinction between parameter and argument. PR #176 by @mccarthysean. - ✏ Fix broken plac link. PR #275 by @mgielda.
- ✅ Add extra tests just for coverage because monkeypatching with strange imports confuses coverage. PR #490 by @tiangolo.
- 🔧 Tweak pytest coverage. PR #485 by @tiangolo.
- ➕ Bring back pytest-cov because coverage can't detect pytest-xdist. PR #484 by @tiangolo.
- ⬆ Bump actions/upload-artifact from 2 to 3. PR #477 by @dependabot[bot].
- ⬆ Bump actions/checkout from 2 to 3. PR #478 by @dependabot[bot].
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #411 by @pre-commit-ci[bot].
- ⬆ Bump nwtgck/actions-netlify from 1.1.5 to 1.2.4. PR #479 by @dependabot[bot].
- ⬆ Bump tiangolo/issue-manager from 0.2.0 to 0.4.0. PR #481 by @dependabot[bot].
- 👷 Move from pytest-cov to coverage and Codecov to Smokeshow. PR #483 by @tiangolo.
- ➕ Add extra Material for MkDocs deps for docs. PR #482 by @tiangolo.
- 🔧 Update Dependabot config. PR #476 by @tiangolo.
- 🐛 Fix setting
FORCE_TERMINAL
with colors 2. PR #424 by @tiangolo. - 🐛 Fix setting
FORCE_TERMINAL
with colors. PR #423 by @tiangolo.
This release adds deep integrations with Rich. ✨
rich
is an optional dependency, you can install it directly or it will be included when you install with:
$ pip install "typer[all]"
If Rich is available, it will be used to show the content from --help
options, validation errors, and even errors in your app (exception tracebacks).
There are new options to group commands, CLI arguments, and CLI options, support for Rich Console Markup, and more! 🎉
- ✨ Richify, add integrations with Rich everywhere. PR #419 by @tiangolo.
- Recommend Rich as the main information displaying tool, new docs: Printing and Colors.
- For most use cases not using Rich, use plain
print()
instead oftyper.echo()
in the docs, to simplify the concepts and avoid confusions. New docs: Printing and Colors - typer Echo. - Define help panels for CLI arguments, new docs: CLI Arguments with Help - CLI Argument help panels.
- Define help panels for CLI options, new docs: CLI Options with Help - CLI Options help panels.
- New docs for deprecating commands: Commands - Command Help - Deprecate a Command.
- Support for Rich Markdown in docstrings, CLI parameters
help
, andepilog
with the new parametertyper.Typer(rich_markup_mode="markdown")
, new docs: Commands - Command Help - Rich Markdown and Markup. - Support for Rich Markup (different from Markdown) in docstrings, CLI parameters
help
, andepilog
with the new parametertyper.Typer(rich_markup_mode="rich")
, new docs: Commands - Command Help - Rich Markdown and Markup. - Define help panels for commands, new docs: Commands - Command Help - Help Panels.
- New docs for setting an
epilog
, with support for Rich Markdown and Console Markup, new docs: Commands - Command Help - Epilog.
- ✨ Refactor and document handling pretty exceptions. PR #422 by @tiangolo.
- Add support for customizing pretty short errors, new docs: Exceptions and Errors.
- ✨ Allow configuring pretty errors when creating the Typer instance. PR #416 by @tiangolo.
- 📝 Add docs for using Rich with Typer. PR #421 by @tiangolo.
- Add new docs: Ask with Prompt - Prompt with Rich.
- Add new docs to handle progress bars and spinners with Rich: Progress Par.
- ✏ Fix typo, "ASCII codes" to "ANSI escape sequences". PR #308 by @septatrix.
- 🐛 Fix type conversion for
List
andTuple
and their internal types. PR #143 by @hellowhistler. - 🐛 Fix
context_settings
for a Typer app with a single command. PR #210 by @daddycocoaman.
- 📝 Clarify testing documentation about checking
stderr
. PR #335 by @cgabard. - ✏ Fix typo in docs for CLI Option autocompletion. PR #288 by @graue70.
- 🎨 Fix header format for "Standard Input" in
docs/tutorial/printing.md
. PR #386 by @briancohan. - ✏ Fix typo in
docs/tutorial/terminating.md
. PR #382 by @kianmeng. - ✏ Fix syntax typo in
docs/tutorial/package.md
. PR #333 by @ryanstreur. - ✏ Fix typo, duplicated word in
docs/tutorial/options/required.md
.. PR #316 by @michaelriri. - ✏ Fix minor typo in
index.md
. PR #274 by @RmStorm. - ✏ Fix double "and" typo in first-steps tutorial. PR #225 by @softwarebloat.
- 🎨 Fix format in docs explaining
datetime
parameter type. PR #220 by @DiegoPiloni.
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #404 by @pre-commit-ci[bot].
- 👷 Fix Material for MkDocs install in CI. PR #395 by @tiangolo.
- 👷 Add pre-commit CI config. PR #394 by @tiangolo.
- 👷 Clear MkDocs Insiders cache. PR #393 by @tiangolo.
- 🔧 Add pre-commit config and formatting. PR #392 by @tiangolo.
- 👷 Disable installing MkDocs Insiders in forks. PR #391 by @tiangolo.
- ⬆️ Upgrade Codecov GitHub Action. PR #383 by @tiangolo.
- 🐛 Fix import of
get_terminal_size
for Click 8.1.0 support and upgrade Black to fix CI. PR #380 by @tiangolo based on original PR #375 by @madkinsz.
- 📝 Add Jina's QA Bot to the docs to help people that want to ask quick questions. PR #368 by @tiangolo.
- 💚 Only test on push when on master, avoid duplicate CI runs from PRs. PR #358 by @tiangolo.
- ✨ Add support for previewing docs in PRs from forks and enable MkDocs Insiders. PR #357 by @tiangolo.
- ⬆️ Upgrade MkDocs Material, MDX-Include, and MkDocs structure. PR #356 by @tiangolo.
- 👷 Update publish GitHub action. PR #325 by @tiangolo.
- 📝 Add Security policy. PR #324 by @tiangolo.
- 🔧 Add updated issue templates. PR #323 by @tiangolo.
- 👷 Enable tests for Python 3.9. PR #322 by @tiangolo.
- 👷 Add GitHub Action Latest Changes. PR #321 by @tiangolo.
- 👷 Update docs CI name. PR #320 by @tiangolo.
- 🔧 Add sponsors docs and badge. PR #319 by @tiangolo.
- Add support for
mypy --strict
. Original PR #147 by @victorphoenix3.
- Update docs with new
--help
showing default values. PR #135 by @victorphoenix3. - Add
Optional
to docs for CLI Arguments and Options with a default ofNone
. PR #131 by @rkbeatss. - Add valid date formats to docs. PR #122 by @IamCathal.
- Report coverage in XML to support GitHub Actions. PR #146.
- Update badges and remove Travis, now that GitHub Actions is the main CI. PR #145.
- Add GitHub Actions, move from Travis. PR #144.
- Pin dependencies. PR #138.
- Add Dependabot. PR #136.
- Upgrade Isort to version 5.x.x. PR #137.
- Add support for
help
parameter in CLI arguments:- As
help
in CLI arguments is not supported by Click, there are two new internal classes (Click sub-classes) to support it:typer.core.TyperArgument
typer.core.TyperCommand
- This includes a new auto-generated help text section
Arguments
for CLI arguments, showing defaults, required arguments, etc. - It's also possible to disable it and keep the previous behavior, not showing automatic help for CLI arguments (Click's default) using the
hidden
parameter. - Now
show_default
isTrue
by default. - And now
show_envvar
isTrue
by default. - So, default values and env vars are shown in the help text by default, without having to manually enable them, for both CLI arguments and CLI options.
- New docs:
- Lot's of tests for all the new examples in the new docs, keeping coverage at 100%.
- PR #123.
- As
- Add docs for calling packages with
python -m some_package
using__main__.py
: Building a Package: Supportpython -m
. PR #121. - Add support for
*args
and**kwargs
when calling the Typer app, just like in Click. PR #120 by @teymour-aldridge. - Fix typos in README and main docs #103 by @mrcartoonster.
- Fix typo in docs. PR #98 by @mrcartoonster.
- Fix typos and rewording in docs. PR #97 by @mrcartoonster.
- Update GitHub Action issue-manager. PR #114.
- Add support for forward references (types declared inside of strings). PR #93.
- Add support for completion for commands/programs not available on startup.
- This allows installing a Typer program/script in a virtual environment and still have completion globally installed.
- PR #92.
- Add note about
typer.echo()
andprint()
for colors in Windows. PR #89. - Upgrade Mkdocs-Material version, update contributing guide style. PR #90.
- Fix completion evaluation for Bash and Zsh when the program is not installed/found. PR #83.
- Fix completion script for Fish. PR #82.
- Fix shell installation for Bash to
~/.bashrc
and update Windows development docs. PR #81. - Update coverage badge. PR #78.
- Fix coverage instructions. PR #72.
- Add docs for Building a Package. PR #71.
- Add docs for Using Click (with Typer). PR #70.
- Add support for type-based callbacks and autocompletion functions, extra tests and docs:
- Extra tests, raising coverage to 100%.
- New docs: Printing and Colors: "Standard Output" and "Standard Error".
- New docs: Password CLI Option and Confirmation Prompt.
- Support for callbacks based on type annotations. New docs: CLI Option Callback and Context.
- New docs: Version CLI Option, is_eager.
- Support for autocompletion functions based on type annotations. New docs: CLI Option autocompletion.
- New docs: Commands: Using the Context.
- New docs: Testing.
- PR #68.
- Fix Zsh completion install script. PR #69.
- Fix typo in progressbar example. PR #63 by @ValentinCalomme.
- Re-implement completion system:
- Remove optional dependency
click-completion
(with its sub-dependencies, like Jinja). - Add optional dependency
shellingham
to auto detect shell to install (it was used byclick-completion
). - Completion now doesn't require a third party library.
- If
shellingham
is not installed/added as a dependency,--install-completion
and--show-completion
take a value with the name of the shell.
- If
- Fix support for user provided completion in CLI Parameters.
- Fix completion for files in Bash, Zsh, and Fish.
- Add support for modern versions of PowerShell, 5, 6, and 7 (e.g. in Windows 10).
- Add support for
pwsh
(PowerShell Core).- PowerShell support includes help strings for commands and CLI Parameters.
- Several bug fixes.
- Tests for the completion logic/code.
- Tested in all the shells in Linux and Windows.
- PR #66.
- Remove optional dependency
- Fix format in docs with highlighted lines. PR #65.
- Add docs about Typer CLI - completion for small scripts. PR #64.
- Add docs about Alternatives, Inspiration and Comparisons. PR #62.
- Add Development - Contributing Guide. PR #61.
- Add support for Click version 7.1.1. PR #60.
- Add support for PEP 561, to allow
mypy
to type check applications built with Typer. PR #58. - Upgrade deploy docs to Netlify GitHub action. PR #57.
- Add support for Mermaid JS for visualizations. PR #56.
- Update CI to run docs deployment in GitHub actions. PR #50.
- Update format for internal links. PR #38.
- Tweak external links' format. PR #36.
- Update docs and add latest changes to MkDocs/website. PR #33.
- Add extra tests for edge cases that don't belong in docs' examples. PR #32.
- Add docs for CLI Parameters with Multiple Values. Includes tests for all the examples and bug fixes. PR #31.
- Add docs for extra CLI parameter types: CLI Parameter Types: Number and CLI Parameter Types: Boolean CLI Options. PR #30.
- Extend docs for Commands, add Commands: Typer Callback and Commands: One or Multiple. This includes tests for all the examples and bug fixes. PR #29.
- Add docs for SubCommands - Command Groups. This includes tests for all the examples and bug fixes. PR #28.
- Remove unneeded code for argument handling. PR #26.
- Add docs for Launching Applications. PR #25.
- Add docs for getting the CLI Application Directory. PR #24.
- Add docs for Progress Bars. PR #23.
- Add docs for Asking with Interactive Prompts. PR #22.
- Update docs for path CLI option. PR #21.
- Add colors module and docs for Printing and Colors and for Terminating, including tests. PR #20.
- Refactor docs to make each individual page/section "bite-sized" / small. Add docs for CLI option names. Update
typer.Argument()
to remove invalid positionalparam_decls
. PR #19.
- Add docs for CLI parameter types. Includes tests and file classes refactor. PR #17.
- Add tests for completion. PR #15 and #16.
- Add docs for Commands. Includes a bug fix for handling default values set in
typer.Typer()
parameters. PR #14. - Add docs for CLI Arguments. PR #13.
- Add docs for CLI Options. PR #12.
- Clean exports from Typer. Remove unneeded components from Click and add needed
Exit
exception. PR #11. - Fix and document extracting help from a function's docstring First Steps: Document your CLI app. PR #10.
- Update references to
--install-completion
and--show-completion
in docs. PR #9. - Fix testing utilities, add tests for First Steps examples. PR #8.
- Add auto completion options by default when click-completion is installed:
--install-completion
and--show-completion
. PR #7. - Update Termynal to have fixed sizes, add "fast" button, and use it in First Steps. PR #6.
- Add custom automatic Termynal for docs. PR #5.
- Update short descriptions and assets.
- Docs rewording and fix typos. PR #1 by @mariacamilagl.
- Fix group creation without name.
- Add initial version of code, docs, etc.
- First commit. Publish to PyPI to reserve package name.