Модуль Python Typer

Учебное пособие по Python PEP 8 Программирование и разработка

Typer — это библиотека для создания мощных приложений с интерфейсом командной строки самым простым способом. Его легче читать и это самый простой способ создать приложение командной строки, чем использовать стандартную библиотеку Python argparse, которую сложно использовать. Он основан на подсказках типов Python 3.6+ и построен на основе Click (Typer наследует большинство функций и преимуществ Click), который представляет собой пакет Python для создания интерфейса командной строки. Модуль также обеспечивает автоматическую справку и автоматическое завершение для всех оболочек. Кроме того, он короток для написания и прост в использовании.

Installation

Чтобы установить модуль Typer, вам нужно открыть терминал или командную строку и ввести следующую команду:

pip install  typer

После установки модуля typer мы готовы создать простой интерфейс командной строки.

Функция вызова типа

Вот пример вызова typer для функции. Мы создадим функцию и вызовем ее в CLI. Это программа, которая будет отображать сообщение «Hello World!» в интерфейсе командной строки.

Python3

# Python program to print "Hello World!"
import typer
 
# Function
def main():
    print(f"Hello World")
 
typer.run(main)

Вход:

Здесь gfg.py — это имя файла скрипта, который необходимо выполнить.

Выход:

Hello World!

Передать аргументы в модуль Python type из CLI

Давайте изменим нашу программу, чтобы передать аргумент основной функции. В следующем примере используется одно имя аргумента. При вызове функции мы передаем «World!» по имени параметра.

Python3

# Python program to print "Hello World!"
# By taking passing argument
# value as "World!" in parameter name
import typer
 
 
# Function having parameter name
def main(name):
    print(f"Hello {name}")
 
typer.run(main)

Вход:

Вот как мы можем пройти «Мир!» по имени параметра.

$ python gfg.py World!

Выход:

Hello World!

Получение справочной информации в модуле typer

Справка по Typer используется для отображения документации скрипта Python для Typer. Он отображает аргументы, параметры, описания и т. д.

Читайте также:  Java Trim Strings

Python3

import typer
 
app = typer.Typer()
 
@app.command()
def gfg(string: str = typer.Argument(..., help = """Prints input string""")):
    """Prints geeksforgeeks and input string"""
    print("@geeksforgeeks")
    print(string)
 
app()

Вход:

Справку по Typer можно использовать, набрав —help после python [filename.py].

$ python gfg.py –help

Выход:

Здесь генерируются документация и аргументы скрипта typer Python.

Usage: gfg.py [OPTIONS] NUMBER

Prints geeksforgeeks and input string

Arguments:
STRING  Prints input string  [required]

Добавить аргумент

Typer поддерживает различные типы данных для параметров CLI и аргументов CLI.

Python3

# Python program to take multiple
# inputs of different datatypes and print it
import typer
 
# Function with multiple parameters
def details(display: bool, name: str, age: int,
            marks: float, country: str = "India"):
   
    print(f"Country: {country}")
    if display == True:
        print("@geeksforgeeks")
    print(f"Name: {name}")
    print(f"Age: {age}")
    print(f"Marks: {marks}")
 
 
typer.run(details)

Вход:

Здесь отображение (bool) = True, имя (str) = gfg, возраст (int) = 20, отметки (float) = 94,57 и сохранение параметра страны по умолчанию, то есть «Индия».

$ python gfg.py True gfg 20 94.57

Выход:

Country: India
Name: gfg
Age: 20
Marks: 94.57

Если вы хотите изменить значение параметра страны, вы можете ввести команду как

Вход:

$ python gfg.py True gfg 20 94.57 —country Bhutan

Выход:

Country: Bhutan
Name: gfg
Age: 20
Marks: 94.57

Программа Python для использования параметров ввода и запроса пользователя с помощью [да/нет]

Параметр Typer аналогичен аргументам, но имеет некоторые дополнительные возможности.

Python3

import typer
 
app = typer.Typer()
 
@app.command()
# You can input a default value like
# 'True' or 'False' instead of '...'
# in typer.Option() below.
def square(name,language: bool = typer.Option(
  ..., prompt = "Do You Want to print the language"), 
           display: bool = False):
    print("@geeksforgeeks")
     
    if display == True:
        print(name)
    if language == True:
        print("Python 3.6+")
 
app()

Вход:

$ python gfg.py gfg –display

Выход:

Читайте также:  Программа Python для извлечения одного значения из ответа JSON

Здесь display (bool) имеет значение True, когда используется —display и язык печатается, когда ввод для подсказки равен ’y’.

Do You Want to print the language [y/n]: y
@geeksforgeeks
gfg
Python 3.6+

Вход:

$ python gfg.py gfg –no-display

Выход:

Здесь display (bool) имеет значение False, когда используется —no-display и язык не печатается, когда ввод для подсказки равен ’n ’.

Do You Want to print the language [y/n]: n

Вы можете попробовать различные комбинации команд и узнать больше об этих комбинациях с помощью команды —help.

Выполнение нескольких команд с использованием модуля Python typer

До сих пор мы использовали только одну функцию во всех вышеперечисленных программах. Теперь мы увидим, как использовать несколько функций в командной строке.

Python3

# Python program to print 
# square or cube of a number
import typer
 
app = typer.Typer()
 
@app.command()
def square(number: int):
    print(number*number)
 
@app.command()
def cube(number: int):
    print(number*number*number)
 
app()

Вход:

Здесь вызывается квадратная функция и печатает квадрат 3.

$ python gfg.py square 3

Выход:

9

Вход:

Здесь вызывается функция cube(), которая печатает куб из 3.

python gfg.py cube 3

Выход:

27

Автодополнение с использованием модуля Python typer

Это создаст команду typer, которую мы сможем вызывать в нашем терминале, например python, git и т. д.

$ pip install typer-cli

И, наконец, мы можем установить дополнение для текущей оболочки, и в будущем не потребуется устанавливать его снова.

$ typer –install-completion

Теперь мы готовы использовать функцию автодополнения. Нам просто нужно использовать команду typer вместо команды python, а также добавить команду запуска после имени файла в CLI.

Вот как мы можем запустить скрипт в интерфейсе командной строки typer.

typer [filename.py] run [function]

Функция автоматически завершается, когда мы нажимаем клавишу Tab.

Примечание. Чтобы автодополнение работало, не должно быть никакого вызова app(). Если вы не удалите эту строку, она выдаст RecursionError.

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector