Reference

    ___ _                           _____
   /   (_) __ _ _ __   __ _  ___   /__   \_   _ _ __   ___ _ __
  / /\ / |/ _` | '_ \ / _` |/ _ \    / /\/ | | | '_ \ / _ \ '__|
 / /_//| | (_| | | | | (_| | (_) |  / /  | |_| | |_) |  __/ |
/___,'_/ |\__,_|_| |_|\__, |\___/   \/    \__, | .__/ \___|_|
     |__/             |___/               |___/|_|

django-typer provides an extension class, TyperCommand, to the BaseCommand class that melds the Typer and click infrastructure with the Django infrastructure. The result is all the ease of specifying commands, groups and options and arguments using Typer and click in a way that feels like and is interface compatible with Django’s BaseCommand This should enable a smooth transition for existing Django commands and an intuitive feel for implementing new commands.

django-typer also supports shell completion for bash, zsh, fish and powershell and extends that support to native Django management commands as well.

The goal of django-typer is to provide full Typer style functionality while maintaining compatibility with the Django management command system. This means that the BaseCommand interface is preserved and the Typer interface is added on top of it. This means that this code base is more robust to changes in the Django management command system - because most of the base class functionality is preserved but many Typer and click internals are used directly to achieve this. We rely on robust CI to catch breaking changes upstream and keep a tight version lock on Typer.