Таня Шлюссер - Автостопом по Python

Тут можно читать онлайн Таня Шлюссер - Автостопом по Python - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Автостопом по Python
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2017
  • Город:
    СПб.
  • ISBN:
    978-5-496-03023-6
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Таня Шлюссер - Автостопом по Python краткое содержание

Автостопом по Python - описание и краткое содержание, автор Таня Шлюссер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Перед вами — увлекательная книга, которую по достоинству оценит любой неравнодушный программист и даже бывалый питонщик. Она составлена на основе одноименного онлайнового руководства
и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.

Автостопом по Python - читать онлайн бесплатно полную версию (весь текст целиком)

Автостопом по Python - читать книгу онлайн бесплатно, автор Таня Шлюссер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

····parser.add_argument('-a','-all', help='display the full text

························of the answer',

························action='store_true')

····parser.add_argument('-l','-link', help='display only the answer link',

························action='store_true')

····parser.add_argument('-c', '-color', help='enable colorized output',

························action='store_true')

····parser.add_argument('-n','-num-answers', help='number of answers

························to return',

························default=1, type=int)

····parser.add_argument('-C','-clear-cache', help='clear the cache',

························action='store_true')

····parser.add_argument('-v','-version',

························help='displays the current version of howdoi',

························action='store_true')

····return parser

Анализатор проверит командную строку и создаст словарь, в котором соотносятся все аргументы и значения. Конструкция action='store_true' показывает, что параметр является флагом. При наличии в командной строке он будет сохранен как True в словаре анализатора.

docopt

Основной принцип docopt ( http://docopt.org/) заключается в том, что документация должна быть красивой и понятной. Библиотека предоставляет одну основную команду docopt.docopt(), а также несколько функций и классов для удобства продвинутых пользователей. Функция docopt.docopt() принимает инструкции в стиле POSIX, написанные разработчиком, использует их для интерпретации аргументов командной строки и возвращает словарь со всеми аргументами и параметрами, полученными из командной строки. Также она корректно обрабатывает параметры — help и — version.

В следующем примере значение переменной arguments — это словарь, который имеет ключ name, — capitalize и — num_repetitions:

#!/usr/bin env python3

"""Здоровается с вами.

··Использование:

····hello … [options]

····hello — h | — help | — version

····-c, — capitalize писать ли имя с большой буквы

····-n REPS, — num_repetitions=REPS количество повторений [по умолчанию: 1]

"""

__version__ = "1.0.0" # Необходимо для параметра — version

def hello(name, repetitions=1):

····for rep in range(repetitions):

········print('Hello {}'.format(name))

if __name__ == "__main__":

····from docopt import docopt

····arguments = docopt(__doc__, version=__version__)

····name = ' '.join(arguments[''])

····repetitions = arguments['-num_repetitions']

····if arguments['-capitalize']:

········name = name.upper()

····hello(name, repetitions=repetitions)

Начиная с версии 0.6.0 docopt может использоваться для создания сложных программ с субкомандами, которые ведут себя как команды git ( https://git-scm.com/) или svn ( https://subversion.apache.org/) (даже если субкоманды написаны на разных языках). Существует полный пример приложения ( https://github.com/docopt/docopt/tree/master/examples/git), имитирующий реализацию команды git, который показывает, как это возможно.

Plac

Философия Plac ( https://pypi.python.org/pypi/plac) заключается в том, что вся информация, необходимая для анализа вызова команды, находится в сигнатуре целевой функции. Библиотека легковесна (примерно 200 строк), оборачивает argparse ( http://docs.python.org/2/library/argparse.html) из стандартной библиотеки и предоставляет одну основную команду plac.plac(), которая получает анализатор аргумента из сигнатуры функции, анализирует командную строку, а затем вызывает функцию.

Библиотека должна была называться анализатором аргументов командной строки (Command-Line Argument Parser, clap), имя оказалось занято, поэтому она называется Plac — clap, почти наоборот. Руководство по использованию не особо информативно, но посмотрите, как мало строк в этом примере:

# hello.py

def hello(name, capitalize=False, repetitions=1):

··"""Здоровается с вами."""

····if capitalize:

········name = name.upper()

····for rep in range(repetitions):

········print('Hello {}'.format(name))

if __name__ == "__main__":

····import plac

····plac.call(hello)

Руководство по использованию выглядит так:

$ python hello.py — help

usage: hello.py [-h] name [capitalize] [repetitions]

Says hello to you.

positional arguments:

··name

··capitalize [False]

···repetitions [1]

optional arguments:

··-h, — help show this help message and exit

Если хотите выполнить преобразование типов для какого-нибудь аргумента до того, как передадите его в функцию, используйте декоратор annotations:

import plac

@plac.annotations(

····name = plac.Annotation("the name to greet", type=str),

····capitalize = plac.Annotation("use allcaps", kind="flag", type=bool),

····repetitions = plac.Annotation("total repetitions", kind="option",

··················type=int)

def hello(name, capitalize=False, repetitions=1):

··"""Здоровается с вами."""

····if capitalize:

········name = name.upper()

····for rep in range(repetitions):

········print('Hello {}'.format(name))

Помимо этого, декоратор plac.Interpreter предоставляет легковесный способ создать очень быстрое интерактивное приложение для командной строки. Примеры содержатся в документации к интерактивному режиму plac по адресу https://github.com/kennethreitz-archive/plac/blob/master/doc/plac_adv.txt.

Click

Основное предназначение Click ( http://click.pocoo.org/) (расшифровывается как Command Line-Interface Creation Kit — набор для создания интерфейсов командной строки) — помочь разработчикам создать компонуемые интерфейсы командной строки, написав минимально возможное количество кода. Документация к Click подтверждает ее связь с docopt.

Функция Click — создавать компонуемые системы, функция docopt — вручную создавать самые красивые интерфейсы командной строки. Эти две цели конфликтуют друг с другом. Click мешает пользователям реализовывать некоторые шаблоны для того, чтобы сделать интерфейсы командной строки уникальными. Например, вы практически не можете переформатировать вспомогательные страницы.

Стандарты этой библиотеки способны удовлетворить почти все запросы разработчиков, но продвинутые пользователи могут изменить их. Как и в случае с Plac, она задействует декораторы, чтобы привязать определения анализатора к функциям, которые будут их использовать, переместив из самих функций управление аргументами командной строки.

Приложение hello.py при использовании Click выглядит так:

import click

@click.command()

@click.argument('name', type=str)

@click.option('-capitalize', is_flag=True)

@click.option('-repetitions', default=1,

··············help="Times to repeat the greeting.")

def hello(name, capitalize, repetitions):

····"""Здоровается, with capitalization и именем."""

····if capitalize:

········name = name.upper()

····for rep in range(repetitions):

········print('Hello {}'.format(name))

if __name__ == '__main__':

····hello()

Click анализирует описание из строк документации команды и создает вспомогательное сообщение с помощью пользовательского анализатора, унаследованного от устаревшего члена стандартной библиотеки optparse, который более совместим со стандартами POSIX, чем argparse [82] docopt не использует ни optparse, ни argparse и для анализа строк документации применяет регулярные выражения. .

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Таня Шлюссер читать все книги автора по порядку

Таня Шлюссер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Автостопом по Python отзывы


Отзывы читателей о книге Автостопом по Python, автор: Таня Шлюссер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x