Commit graph

10 commits

Author SHA1 Message Date
Ryan Miller Galamb
458a492ed9
Add support for PEP-593 Annotated for specifying options and arguments (#584)
*  Add support for PEP-593 `Annotated` for specifying options and arguments

Implements #184

* Revert things I did to get a 3.6 virtualenv 😅

A lot of the dev dependency packages weren't installable on 3.6, so I
had to remove them from the pyproject.toml.

This commit adds them back

* Fix mypy/lint errors

* Skip coverage on test lines that shouldn't execute

* Missed a spot

* ♻️ Tweak examples and tests with Annotated, add extra examples and tests

* 🔥 Remove Pydantic-specific logic from _typing.py

* 📝 Update docs to use new Annotated examples

* 📝 Add docs introducing Annotated and previous versions

* 🔧 Add commented out MkDocs config for highlighting docs examples

*  Fix tests for Click 7

---------

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-05-01 21:19:19 -07:00
jmills
46154f2fc9
✏ Fix spelling (shinny -> shiny) (#586)
shinny -> shiny
2023-05-01 04:05:30 -07:00
John Purviance
3e37e01979
Add support for custom types and parsers (updates/builds upon PR #443) (#583)
* Support custom parameter types

While most CLI parameters are strings, ints, etc, we sometimes need custom
types.

Currently typer has no support for it (See #77), and while there are a few hacks, the
likely solution is to add a 'str' argument and parse it inside the main function.

This PR adds support for custom types in 3 different ways:
- Manually specifying a `click_type`
- Manually specifying a `parse` function
- Using a Callable type annotation (It is very common for types to have a string constructor, like `int("1")`)

* Document how to parse custom objects with Typer.

Typer supports parsing of cutom types with:
- A user provided parser class
- A click custom type parser

* 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks

* 📝 Tweak and simplify docs

*  Tweak tests to run scripts and remove pragma: nocover in examples

* 📝 Tweak examples for docs, add types and remove # pragma: nocover

* ♻️ Tweak implementation checking for parser and Click type

---------

Co-authored-by: Paulo Costa <me@paulo.costa.nom.br>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2023-05-01 03:03:26 -07:00
Sebastián Ramírez
36e40806b7
Make typer.run() not add completion scripts by default, it only makes sense in installed apps (#488) 2022-11-05 16:13:37 +00:00
Sebastián Ramírez
c750f8206e
Refactor and document handling pretty exceptions (#422)
* ♻️ Rename pretty_errors_ to pretty_exceptions_ to avoid confusion with validation errors

*  Add source examples for pretty_exceptions

* 📝 Add docs for pretty exceptions

* 🔧 Add Exceptions docs to MkDocs

*  Add tests for tutorial about exceptions

*  Update trackeback tests, remove tests covered by tutorial

*  Fix test for module
2022-07-12 21:06:51 +02:00
Sebastián Ramírez
33dcb53129
📝 Add docs for using Rich with Typer (#421) 2022-07-12 18:38:50 +00:00
Sebastián Ramírez
6208b5b208
Richify, add integrations with Rich everywhere (#419) 2022-07-12 16:45:43 +00:00
Sebastián Ramírez
9910f38374
🐛 Fix import of get_terminal_size for click 8.1.0 support and upgrade Black for CI (#380)
Co-authored-by: Michael Adkins <michael@prefect.io>
2022-03-30 14:11:34 -05:00
Rupsi Kaushik
32436f0b1a
📝 Add Optional to docs for CLI Arguments and Options with a None default (#131)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-08-16 14:01:19 +02:00
Sebastián Ramírez
89ddc35372
⬆ Upgrade Isort to version 5.x.x (#137)
* 🚚 Move docs src files to root docs_src

* 🚚 Update example includes from root docs_src

* 🚚 Import docs src examples for tests from docs_src

* ⬆️ Upgrade isort and configs

* 🎨 Update format in testing

* 🔧 Update configs with root docs_src

* 🔥 Remove obsolete/unecessary section in contributing guide

* 🎨 Re-format multi-file example

*  Revert format for multi-file examples

* 🔧 Add isort skips for multi-file examples
2020-07-09 22:09:53 +02:00