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

Поделиться
HTML-код
  • Опубликовано: 8 ноя 2024

Комментарии • 41

  • @DevOpsJourney
    @DevOpsJourney  3 года назад +16

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

    • @bendover4728
      @bendover4728 3 года назад +2

      Click!

    • @jwright123456789
      @jwright123456789 3 года назад +1

      I have been using docopt, because I like having good docstrings, but it is limited and doesn't always behave like I think it should. Click and typer look good!

  • @dramastar30
    @dramastar30 3 года назад +5

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

  • @FrancoisSchnell
    @FrancoisSchnell 3 года назад +4

    Neat! Didn't know about typer, thanks!

  • @VOGTLANDOUTDOORS
    @VOGTLANDOUTDOORS 2 года назад +1

    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" 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)

  • @abhityagi6562
    @abhityagi6562 3 года назад +2

    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..

  • @winnumber101
    @winnumber101 3 года назад +6

    "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

  • @islandcave8738
    @islandcave8738 3 года назад +1

    This is better than optparse and argparse.

  • @markgreen2170
    @markgreen2170 2 месяца назад

    microsoft is always restart, restart, restart ...maybe, they will add the source command to their shell, lol! good video!

  • @yoyopiyoyopi
    @yoyopiyoyopi 3 года назад +3

    Nice Mate!

  • @cralx2k
    @cralx2k 2 года назад +1

    Amazing channel... Thank you

  • @dragon3602010
    @dragon3602010 3 года назад +3

    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

  • @SHONNER
    @SHONNER 2 года назад +1

    Reminds me of click 8.0.4 for Python.

  • @zaurmahmudov1438
    @zaurmahmudov1438 3 года назад +1

    thanks, helped me a lot today

  • @unstoppablegaming2079
    @unstoppablegaming2079 3 года назад +1

    thanks

  • @JH-vz3yj
    @JH-vz3yj 4 месяца назад

    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

  • @suwenhao9864
    @suwenhao9864 8 месяцев назад

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

  • @charleswilson7596
    @charleswilson7596 3 года назад +2

    I'm having a little trouble getting the auto completion to work in ubuntu. I'm probably missing something basic.
    (venv) charles@pc-1:~/Projects/py_trader$ type
    type typeset
    (venv) charles@pc-1:~/Projects/py_trader$ typer --install-completion
    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

    • @python360
      @python360 2 года назад

      Thank you, this tip helped me get it working!

  • @rickysmith1263
    @rickysmith1263 2 года назад

    Cool, thanks 😃

  • @thiagoalves5404
    @thiagoalves5404 2 года назад

    Is it possible to make the CLI commands interactive?

  • @philtoa334
    @philtoa334 3 года назад +1

    Nice.

  • @jpeg.600x2
    @jpeg.600x2 3 года назад +1

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

  • @muhammadnoorani7369
    @muhammadnoorani7369 Год назад

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

  • @Lunolux
    @Lunolux 3 года назад +1

    nice

  • @jabuci
    @jabuci Год назад

    How does it differ from the click module?

    • @kylethescientist
      @kylethescientist 8 месяцев назад

      Typer is built on top of click, so they are similar in many ways

  • @Wallee580
    @Wallee580 2 года назад +1

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

  • @ItzShinePlayz
    @ItzShinePlayz 3 года назад

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

  • @writethatdown100
    @writethatdown100 2 года назад

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

    • @DevOpsJourney
      @DevOpsJourney  2 года назад

      Permission issue. Try marking your script as executable. I think this might help you if not google. chmod +x ./main.py

  • @mac-cygwin6264
    @mac-cygwin6264 3 года назад +1

    i cant install typer autocompletion

    • @DevOpsJourney
      @DevOpsJourney  3 года назад

      What error do you get?

    • @mac-cygwin6264
      @mac-cygwin6264 3 года назад +1

      @@DevOpsJourney typer is not a cmdlet, program or batch file, i used powershell