The Best way to build a Python command line tool - Python Typer Tutorial

preview_player
Показать описание
In this video, I go over what I think is one of the best modules for creating Python Command Line (CLI) Tools.

I go over What Python Typer is, how to install and import it and how to use variables and command-line switches.

Make Professional look Python CLI Applications today.

If you want to know how to package a python application:

📘 Chapters:
0:00 What is Python Typer
0:26 Typer Code Example, building commands using functions
3:36 Adding variables to our Typer CLI application
5:42 Adding in CLI Switches
7:22 Adding in autocompletion to our Python CLI App
Рекомендации по теме
Комментарии
Автор

What's your favorite Python module for creating CLI applications?

DevOpsJourney
Автор

Cool 😎. Typer is simply smart. Thanks for the demo🙏🏻

dramastar
Автор

Neat! Didn't know about typer, thanks!

FrancoisSchnell
Автор

"and it's just gonna show me my IQ of 500... so this is a pretty good feel-good app right now, feeling pretty smart" lmao

winnumber
Автор

I am trying to use nubian, it is full fledged CLI creator with a feel of Cisco IOS or other network vendor devices, it was developed for LDShell by Facebook developers, but I can gurantee it is a hard nut to crack trying to include my commands and no luck so far after 5 hours..

abhityagi
Автор

ENJOYED the video - nicely done !
INTERESTING little package, but some comments/challenges already encountered:
1. the documentation uses the term "main" FAR TOO MUCH and in TOO MANY PLACES to see when you NEED to use "main" and when it's OPTIONAL (sloppy documentation);
THAT IS:
- you DON'T need to name your file "main.py" <--- this is always & ever a BAD IDEA in example documentation, because it (wrongly) assumes a connection with "__main__" !!!
- you CAN use a file named "mtcbrain.py", with a function "hello()" and then call it as follows: > python mtcbrain.py hello
2. the FIRST thing I noticed was that the command names MUST be in ALL LOWERCASE; NO CamelCase, NO underscored_Names :-( !!!
THAT IS, the following function names either WORK or DON'T
- hello() WORKS (we KNEW this) :-)
- Hello() DOESN'T WORK (that came as a surprise, but it's also BAD NAMING CONVENTION for python FUNCTIONS, so nobody noticed anyways) :-O
- helloThere() DOESN'T WORK (this came as a REAL SURPRISE, because this is likely the MOST COMMON NAMING CONVENTION in all of python) :-O
- hello_there() also DOESN'T WORK (this came as ANOTHER SURPRISE) because this is the 2ND-MOST-COMMON NAMING CONVENTION in all of python) :-O
- hellothere() WORKS and will have to do for anyone trying to use multi-word (sorry "multiword") function names ;-)
3. even your ARGUMENT NAMES must also be ALL LOWER CASE !!!
THAT IS:
- hellothere(userName: str) DOESN'T WORK
- hellothere(username: str) DOES WORK

I'll CONTINUE test-driving this package as it's the FIRST one I tried, so I've NOTHING to compare to which to compare it, and will report back.

HOPE THIS HELPS OTHERS TRYING TO BUILD CLI-TYPE APPS IN PYTHON - it's a GOOD THING TO DO, and containerizing PYSIMPLEGUI type apps ISN'T CROSS-PLATFORM (yet) !

Cheers,
-Mark Vogt, Principal Data Scientist, AVANADE (www.avanade.com)

VOGTLANDOUTDOORS
Автор

hello, what if we are working with pipenv, how to make it working with the command typer to get the autocomplete ? and also can we combine fzf instead of the autocomplete? thanks

dragon
Автор

All nice and good but this, like all of the other tutorials it is for the command line arguments when you LAUNCH the python script

(i.e., python nameOffScript --arg1 val etc...).

My use case is that I have a command line within the launched program and I want it to parse my dozens of commands every time I receive command input. How do I bend it to that? I naively tried putting the app() call after the input command but it is just confused

JH-vzyj
Автор

This is better than optparse and argparse.

islandcave
Автор

I'm having a little trouble getting the auto completion to work in ubuntu. I'm probably missing something basic.
type typeset
Command 'typer' not found, but can be installed with:
sudo snap install erlang
If you can take a look at it I would appreciate it.
Also this is the simplest cli I have tried very intuitive.
edit: didn't realize I had to pip install typer-cli

charleswilson
Автор

hi, sir . How could I install "typer" in powershell?

suwenhao
Автор

how do u start the program from the command line? ive tried "python .\Program.py" (without quotations) but it hasnt worked

jpeg.x
Автор

Is it possible to make the CLI commands interactive?

thiagoalves
Автор

I made a cli similar project, I want to deploy it and make it accessible to users. How can I do it??

muhammadnoorani
Автор

4:10 You can just add the name variable as another argument to print, no need for an F string :D

Wallee
Автор

How do I code a invalid cli when user type the wrong command that is not in the list using type?

ItzShinePlayz
Автор

How does it differ from the click module?

jabuci
Автор

What do I do if it says: "zsh: permission denied: ./main.py"?

writethatdown
Автор

So I am not trying to be a smart ass here, this is simply an observation that has puzzled me for years. You need 7 lines of code to output 1 line to the console using python, in BASIC for example you need 1 [ 10 Print "Hello" ] using BASH you need 1 echo "Hello" so I have to ask why does python seem so inefficient and long winded. Oh and this doesn't seem to be just Python other languages have similar issues. It seems like a very poor way to program computers to me. Perhaps this explains why software is so over bloated these days.

yogimanuk