Typer Alternatives

Similar projects and alternatives to typer

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better typer alternative or higher similarity.

Suggest an alternative to typer

Reviews and mentions

Posts with mentions or reviews of typer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-24.
  • Ask HN: What the best and worst command-line interfaces you have used?
    5 projects | news.ycombinator.com | 24 Nov 2021
    Best: probably that of Docker. https://github.com/docker/cli

    Why: it didn't force you to read man pages or look up documentation, but instead allowed every command to explain what it does to you, either when you'd run it with --help, or just no parameters (in case it expects any). Furthermore, invocations of these commands weren't just a long string of arguments, but rather commands that are logically grouped and can essentially be navigated as a tree. All of that made it extremely useful and pleasant, at least in my eyes.

    It just feels like it's made to actually be used by developers and to help them as much as possible. Whether you agree with me on that or not, i suggest that you have a look at this excellent talk by Dylan Beattie, "Life, Liberty and the Pursuit of APIness: The Secret to Happy Code", which talked more about the discoverability of systems and the developer experience: https://www.youtube.com/watch?v=lFRKrHE8oPo

    Nowadays, you can actually use something like Typer for Python to create similarly useful interfaces, which i strongly advise you to have a brief look at: https://typer.tiangolo.com/

    Example:

      $ docker
  • Protocols and Composition in Python
    3 projects | dev.to | 4 Nov 2021
    As means of demonstrating this last property, let's create a simple CLI tool for adding numbers - we'll add logging debug messages and timing reports as optional features that can be enabled using flags. I'm going to use typer to turn our service into a CLI application:
  • How to create a "GUI" app for terminal, like top, htop or bpytop?
    5 projects | reddit.com/r/sysadmin | 21 Oct 2021
  • I made a CLI Spotify-like app for Linux that fetches songs from Youtube. It's open source and lightweight. All of the audio is played with mpv in command line, so it will work on Termux (Android). Any feedback apreciated!
    2 projects | reddit.com/r/commandline | 4 Oct 2021
    For cli apps with Python, you might want to check out Typer, from the creator of FastAPI. I never used it but it looks very promising!
  • Structural pattern matching in Python 3.10
    2 projects | news.ycombinator.com | 20 Sep 2021
    To me, it just generally seems like someone is trying to tack on functionality in ways that are hard to utilize, as opposed to just writing code in the first place, the very same thing that you see happen with generics, deeply nested inheritance and other "tricks" which are supposed to make one's life easier but do the opposite in practice in many cases.

    Personally, i enjoy libraries like Typer (https://typer.tiangolo.com/) for Python and think that it has plenty of use cases, but i've been hurt far too many times by similar functionality in non-trivial cases in every single language that i've used that supports something like that, so at best i'm guarded about utilizing them.

    Java rant: But perhaps that's just because Java is a major source of pain for me in that regard. To give you a concrete example: i'm migrating Spring to Spring boot and someone used Jersey instead of RESTEasy as their JAX-RS implementation and now i need to transpose hundreds of API endpoint definitions (for example @GET to @GetMapping with bunches of parameters). If it were just Java code, i could probably use some clever refactoring in it with the help of my IDE, but now i'd have to figure out where the annotations come from, create a stub to replace them, call the proper stuff from within them and hope it works, unless the reflection that's used by them breaks. Not only that, but debugging is kind of hard when the source code and the actual logic behind said annotation is hidden below dozens of layers of Eldritch indirection and you have no chances of feasibly finding all of that stuff out.

  • FINAL CUT alternatives - brick, notcurses, FTXUI, blessed, and ansi-styles-python
    14 projects | 5 Sep 2021
    Typer, build great CLIs. Easy to code. Based on Python type hints.
  • Writing Programs with Ncurses
    17 projects | news.ycombinator.com | 30 Aug 2021
    It feels like we live in a pretty good time for writing TUIs, CLIs and also small self-contained tools (thanks to languages like Go, which have a lot of libraries, are easy to use, but also compile to statically linked executables).

    What stuck with me was using the Typer library for a Python tool that i wrote: https://typer.tiangolo.com/

    It made regular shell scripts into a fully fledged CLI with nested commands thanks to just a few decorators that were sprinkled in the source files, as well as the occasional slight signature alteration.

    Developing a GUI feels awfully complicated in comparison and i'm amazed that there don't seem to be all that many (if any) frameworks for creating GUIs in a similar way - by annotating method calls as actions that correspond to the actual GUI elements and letting some smart parsing logic handle the rest for you.

    I feel like perhaps the world would be a slightly better place if desktop software could also be distributed as libraries of callable code, where you could automate button presses programmatically and there would be a 1:1 link between what you can do in code and manually.

  • I made a command-line tool to check files for bitrot or modification: checkr
    3 projects | reddit.com/r/Python | 16 Aug 2021
    Anywho, checkr is a command-line tool that will scan some files and record checksum digests for each file. Then, you can later check those to see if there have been any changes. By default, an SQLite database is used via SQLAlchemy to store the results, but there is an option to use a flat CSV file instead. I used Typer to structure the command interface and Rich for the progress bar and some other output.
  • How do you self-assess your skills, and a question on essential skills.
    1 project | reddit.com/r/bioinformatics | 10 Aug 2021
  • Build CLI with Hype
    2 projects | dev.to | 4 Aug 2021
    As you can see, Hype is based on modern Python type hints. It was inspired Typer a different Python library. However Typer was built on the top of click, which is an awesome library as well!
  • Going Mouseless
    6 projects | news.ycombinator.com | 4 Aug 2021
    As pointed out in another comment ( https://news.ycombinator.com/item?id=28068986 ), the people who know sed and vim are likely to be power users, which are a really small part of the populace.

    Sure, there are text replace tools within most programs, but that doesn't mean that even half of the people using computers will know how to use them, or will ever bother to learn, when there are alternatives available. To that end, it makes sense to optimize for either of the easiest approaches, be it either using basic keyboard commands or the mouse.

    That's also why GUIs are more popular for personal computing, as opposed to CLIs, or TUIs. Of course, CLIs could also be improved ( think tar vs docker UX, which can be achieved with something like https://typer.tiangolo.com/ ) and TUIs are also somewhat underused (nmtui, ncdu and many others are great pieces of software).

    As for the actual amount of money spent - that is indeed a "yikes", how does someone even spend so much?

  • What is your favorite library
    3 projects | reddit.com/r/Python | 4 Aug 2021
    Found it https://typer.tiangolo.com/
  • What are the compelling reasons to use Click?
    1 project | reddit.com/r/learnpython | 3 Aug 2021
    This doesn't answer your question, but you might want to check out Typer. It was created by the same person who made FastAPI
  • How to use Django for CLI apps?
    1 project | reddit.com/r/django | 14 Jul 2021
    It might work, but you could look at something like https://typer.tiangolo.com
  • Why Do Long Options Start with Two Dashes?
    9 projects | news.ycombinator.com | 8 Apr 2021
    Were your expectations different?

    Are there any good articles on the benefits of following such rules (any fungible improvements to legibility or usability, as opposed to just "consistency amongst different tools")?

    Are there any tools which can validate whether any piece of software conforms to this standard (either by scanning the man pages, or the code, or a formalized format of parameters the app supports)? Personally, the closest i've found is Typer ( https://typer.tiangolo.com/ ) but without anything that can automatically reject non-conformant code as a part of a CI process, i think enforcing such formats would be a non-starter for me.

Stats

Basic typer repo stats
20
6,631
6.5
11 days ago

tiangolo/typer is an open source project licensed under MIT License which is an OSI approved license.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
Find remote Python jobs at our new job board 99remotejobs.com. There are 11 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.