Release Notes
Latest Changes¶
- ⬆ [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.
- 📝 Remove obsolete references to
--install-completion
fortyper.run()
scripts. PR #595 by @tiangolo.
Internal¶
0.9.0¶
Features¶
- ✨ 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
.
Docs¶
- 📝 Update docs examples for custom param types using
Annotated
, fix overloads fortyper.Argument
. PR #594 by @tiangolo.
Internal¶
- ⬆ [pre-commit.ci] pre-commit autoupdate. PR #592 by @pre-commit-ci[bot].
0.8.0¶
Features¶
- ✨ 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.
Upgrades¶
- ⬆ Upgrade Rich, support 13.x. PR #524 by @musicinmybrain.
Docs¶
- 📝 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.
Internal¶
- ⬆ 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.
0.7.0¶
Features¶
- ✨ 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.
Fixes¶
- 🎨 Fix type annotation of
typer.run()
. PR #284 by @yassu. - 🎨 Fix type annotations for
get_group
. PR #430 by @tiangolo.
Docs¶
- 📝 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.
Internal¶
- ✅ 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.
0.6.1¶
Fixes¶
- 🐛 Fix setting
FORCE_TERMINAL
with colors 2. PR #424 by @tiangolo. - 🐛 Fix setting
FORCE_TERMINAL
with colors. PR #423 by @tiangolo.
0.6.0¶
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! 🎉
Features¶
- ✨ 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.
Docs¶
- 📝 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.
Internal¶
0.5.0¶
Features¶
Docs¶
- ✏ Fix typo, "ASCII codes" to "ANSI escape sequences". PR #308 by @septatrix.
0.4.2¶
Fixes¶
- 🐛 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.
Docs¶
- 📝 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.
Internal¶
- ⬆ [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.
0.4.1¶
Fixes¶
- 🐛 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.
Internal¶
- 📝 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.
0.4.0¶
Features¶
Internal¶
- 📝 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.
0.3.2¶
Features¶
- Add support for
mypy --strict
. Original PR #147 by @victorphoenix3.
Docs¶
- 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.
Internal¶
- 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.
0.3.1¶
- 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.
0.3.0¶
- 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.
0.2.1¶
- Add support for forward references (types declared inside of strings). PR #93.
0.2.0¶
- 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.
0.1.1¶
- 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.
0.1.0¶
- 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.
0.0.11¶
- 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.
0.0.10¶
- Add support for Click version 7.1.1. PR #60.
0.0.9¶
- 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.
0.0.8¶
- 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.
0.0.7¶
- Add docs for CLI parameter types. Includes tests and file classes refactor. PR #17.
- Add tests for completion. PR #15 and #16.
0.0.6¶
- 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.
0.0.5¶
- 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.
0.0.4¶
- Update short descriptions and assets.
- Docs rewording and fix typos. PR #1 by @mariacamilagl.
0.0.3¶
- Fix group creation without name.
0.0.2¶
- Add initial version of code, docs, etc.
0.0.1¶
- First commit. Publish to PyPI to reserve package name.