Таня Шлюссер - Автостопом по Python
- Название:Автостопом по Python
- Автор:
- Жанр:
- Издательство:Питер
- Год:2017
- Город:СПб.
- ISBN:978-5-496-03023-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Таня Шлюссер - Автостопом по Python краткое содержание
и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.
Автостопом по Python - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Вспомогательное сообщение выглядит так:
$ python hello.py — help
Usage: hello.py [OPTIONS] NAME
··Say hello, with capitalization and a name.
Options:
··-capitalize
··-repetitions INTEGER Times to repeat the greeting.
··-help Show this message and exit.
Реальная ценность Click заключается в ее модульности — вы можете добавить внешнюю функцию группировки, а затем любую другую функцию, декорированную с помощью click, в ваш проект, и они станут субкомандами для этой команды верхнего уровня:

Декоратор group() создает команды верхнего уровня, которые запускаются первыми (перед вызванной субкомандой).
С помощью декоратора pass_context (опционально) передаются объекты из сгруппированной команды в субкоманду, первый аргумент становится объектом click.core.Context.
Этот объект имеет специальный атрибут ctx.obj, который можно передавать субкомандам, использующим декоратор @click.pass_context.
Теперь вместо функции hello() вызывайте функцию, которая была декорирована @click.group(); в нашем случае это cli().
Clint
Библиотека Clint ( https://pypi.python.org/pypi/clint/) соответствует своему названию и является набором инструментов для работы с интерфейсами командной строки (Command-Line INterface Tools). Поддерживает такую функциональность, как раскрашивание CLI и добавление отступов, индикаторов выполнения, основанных на итераторах, допускает неявную обработку аргументов. Кроме того, это простое и мощное средство отображения столбцов. В этом примере показаны инструменты для раскрашивания и создания отступов:


Использование indent интуитивно для менеджера контекста в операторе with. Флаг quote добавляет в начало каждой строки полужирную фиолетовую конструкцию ~*~.
Модуль colored имеет восемь функций для цветов, а также параметр отключения раскрашивания.
Функция puts() аналогична print(), обрабатывает отступы и кавычки.
Args предоставляет простые инструменты фильтрации для списка аргументов. Возвращает еще один объект Args, что позволяет объединять фильтры в цепочки.
Использовать аргументы args, созданные функцией Args(), можно именно так.
cliff
cliff ( https://pypi.python.org/pypi/cliff) (Command-Line Interface Formulation Framework — фреймворк для формулирования интерфейсов командной строки) — это фреймворк для создания программ командной строки. Предполагается, что он должен использоваться для создания уникальных мультиуровневых команд, которые ведут себя как svn (Subversion) либо git, или интерактивных программ вроде оболочек Cassandra или SQL.
Функциональность cliff сгруппирована в абстрактных базовых классах. Вам нужно реализовать cliff.command.Command для каждой субкоманды, а затем cliff.commandmanager.CommandManager делегирует правильной команде. Рассмотрим минимальную версию программы hello.py:


cliff использует непосредственно argparse.ArgumentParser для интерфейса командной строки.
Получаем версию из setup.py (при последнем запуске pip install).
Для абстрактного базового класса требуется get_parser() — он должен возвращать argparse.ArgumentParser.
Для абстрактного базового класса требуется take_action() — он запускается при вызове команды Hello.
В основном приложении создается подкласс cliff.app.App, отвечающий за настройку журналирования, потоки ввода/вывода и все остальное, что можно применить ко всем субкомандам.
CommandManager управляет всеми классами Command, использует содержимое из entry_points файла setup.py для поиска имен команд.
Приложения с графическим интерфейсом
В этом разделе мы сначала перечислим библиотеки с виджетами — наборы инструментов и фреймворки, которые предоставляют кнопки, полосы прокрутки, индикаторы выполнения и другие заранее созданные компоненты. В конце раздела коснемся игровых библиотек.
Библиотеки виджетов
С точки зрения разработки графических интерфейсов, виджетами являются кнопки, слайдеры, полосы прокрутки и другие распространенные элементы интерфейса. С их помощью вам не нужно заниматься низкоуровневым программированием вроде определения того, какая кнопка (если таковая вообще существует) находилась под курсором мыши в момент клика, или работой с разными оконными API, используемыми разными операционными системами.
Если вы никогда не занимались разработкой интерфейсов, то вам нужно что-то, что легко использовать (чтобы вы поняли, как создавать интерфейсы). Мы рекомендуем Tkinter (находится в стандартной библиотеке Python). Вас заинтересуют структура и функции набора инструментов, который лежит в основе библиотеки, поэтому мы сгруппируем библиотеки по тулкитам, начав с самых популярных (табл. 7.2).
Библиотека, лежащая в основе (язык) | Библиотека Python | Лицензия | Причины использовать |
---|---|---|---|
Tk (Tcl) | tkinter | Лицензия Python Software Foundation | Все зависимости поставляются вместе с Python. Предоставляет стандартные виджеты для интерфейса вроде кнопок, полос прокрутки, текстовых окон и полотен |
SDL2 (C) | Kivy | MIT или LGPL3 (до версии 1.7.2) | Может использоваться для создания приложения для Android. |
Имеет функциональность для работы с технологией мультитач. Оптимизирована для С там, где это возможно, и использует GPU | |||
Qt (C++) | PyQt | GNU General Public License (GPL) или Commercial | На всех платформах выглядит одинаково. Многие приложения и библиотеки уже полагаются на Qt (например, Eric IDE, Spyder и/или Matplotlib), поэтому библиотека может оказаться установленной заранее. Qt5 (нельзя использовать вместе с Qt4) предоставляет инструменты для создания приложения для Android |
Qt (C++) | PySide | GNU Lesser General Public License (LGPL) | Полноценная замена для PyQt, имеющая более либеральную лицензию |
GTK (C) (тулкит GIMP) | PyGObject (PyGi) | GNU Lesser General Public License (LGPL) | Предоставляет связывание с Python для GTK+ 3. Должна быть знакома всем, кто уже разрабатывал для GNOME |
GTK (C) | PyGTK | GNU Lesser General Public License (LGPL) | Применяйте только в том случае, если ваш проект уже использует PyGTK; вы должны портировать старый код PyGTK к PyGObject |
wxWindows (C++) | wxPython | Лицензия wxWindows (модифицированная LGPL) | Предоставляет нативный внешний вид, предлагая различные оконные библиотеки для каждой платформы. Для разных платформ некоторые фрагменты кода будут отличаться |
Objective C | PyObjC | Лицензия MIT | Предоставляет интерфейс для работы с Objective C. Придаст вашему проекту для OS X нативный вид. Не может использоваться на других платформах |
В следующих разделах представлена более подробная информация о разных библиотеках для создания графического интерфейса для Python, они сгруппированы по лежащему в их основе тулкиту.
Читать дальшеИнтервал:
Закладка: