Table of contents : Благодарности Введение Условные обозначения Часть I. Приступаем Глава 1. Выбираем интерпретатор Python 2 против Python 3 Рекомендации То есть… Python 3? Реализации CPython Stackless PyPy Jython IronPython PythonNet Skulpt MicroPython Глава 2. Правильная установка Python Установка Python на Mac OS X Setuptools и pip virtualenv Установка Python на Linux Setuptools и pip Инструменты разработки virtualenv Установка Python на Windows Setuptools и pip virtualenv Коммерческие дистрибутивы Python Глава 3. Ваша среда разработки Текстовые редакторы Sublime Text Vim Emacs TextMate Atom Code IDE PyCharm/IntelliJ IDEA Aptana Studio 3/Eclipse + LiClipse + PyDev WingIDE Spyder NINJA-IDE Komodo IDE Eric (the Eric Python IDE) Visual Studio Улучшенные интерактивные инструменты IDLE IPython bpython Инструменты изоляции Виртуальные среды pyenv Autoenv virtualenvwrapper Buildout Conda Docker Часть II. Переходим к делу Глава 4. Пишем отличный код Стиль кода PEP 8 PEP 20 (также известный как «Дзен Питона») Общие советы Соглашения Идиомы Распространенные подводные камни Структурируем проект Модули Упаковка Объектно-ориентированное программирование Декораторы Динамическая типизация Изменяемые и неизменяемые типы Зависимости, получаемые от третьей стороны Тестирование вашего кода Основы тестирования Примеры Другие популярные инструменты Документация Документация к проекту Публикация проекта Строки документации против блоковых комментариев Журналирование Журналирование для библиотеки Журналирование для приложения Выбираем лицензию Лицензии Доступные варианты Лицензирование ресурсов Глава 5. Читаем отличный код Типичные функции HowDoI Читаем сценарий, состоящий из одного файла Примеры из структуры HowDoI Примеры из стиля HowDoI Diamond Читаем более крупное приложение Примеры из структуры Diamond Примеры из стиля Diamond Tablib Читаем небольшую библиотеку Примеры из структуры Tablib Примеры из стиля Tablib Requests Читаем более крупную библиотеку Примеры из структуры Requests Примеры из стиля Requests Werkzeug Читаем код инструментария Примеры из стиля Werkzeug Примеры структуры из Werkzeug Flask Читаем код фреймворка Примеры стиля из Flask Примеры структуры из Flask Глава 6. Отправляем отличный код Использование словаря и Concepts Упаковываем код Conda PyPI Замораживаем код PyInstaller cx_Freeze py2app py2exe bbFreeze Упаковка дистрибутивов в Linux Исполняемые ZIP-файлы Часть III. Руководство по сценариям Глава 7. Взаимодействие с пользователем Jupyter Notebook Приложения командной строки argparse docopt Plac Click Clint cliff Приложения с графическим интерфейсом Библиотеки виджетов Kivy GTK+ wxWidgets Objective-C Разработка игр Веб-приложения Веб-фреймворки/микрофреймворки Django Flask Tornado Pyramid Движки для веб-шаблонов Jinja2 Chameleon Mako Развертывание веб-приложений Хостинг Веб-серверы Серверы WSGI Глава 8. Управление кодом и его улучшение Непрерывная интеграция Системное администрирование Travis-CI Jenkins Buildbot Автоматизация сервера Salt Ansible Puppet Chef CFEngine Наблюдение за системами и задачами Psutil Fabric Luigi Скорость Многопоточность Модуль multiprocessing Subprocess PyPy Cython Numba Библиотеки для работы с GPU Взаимодействие с библиотеками, написанными на C/C++/FORTRAN C Foreign Function Interface ctypes F2PY SWIG Boost.Python Глава 9. Программные интерфейсы Веб-клиенты API для сети Анализ XML Скраппинг сайтов lxml Сериализация данных Pickle Межъязыковая сериализация Сжатие Протокол буфера Распределенные системы Работа с сетью Производительность сетевых инструментов из стандартной библиотеки Python gevent Twisted PyZMQ RabbitMQ Шифрование ssl, hashlib и secrets pyOpenSSL PyNaCl и libnacl Cryptography PyCrypto bcrypt Глава 10. Манипуляции с данными Научные приложения NumPy SciPy Matplotlib Pandas Scikit-Learn Rpy2 decimal, fractions и numbers SymPy Манипуляции с текстом и его анализ Инструменты для работы со строками стандартной библиотеки Python nltk SyntaxNet Работа с изображениями Pillow cv2 Scikit-Image Глава 11. Хранение данных Структурированные файлы Библиотеки для работы с базами данных sqlite3 SQLAlchemy Django ORM peewee PonyORM SQLObject Records Библиотеки для работы с базами данных NoSQL Приложение. Дополнительная информация Сообщество Python BDFL Python Software Foundation PEP Notable протоколы Отправка PEP Конференции Python Пользовательские группы Python Обучение Python Для начинающих Средний уровень Продвинутый уровень Для инженеров и ученых Различные темы Справочный материал Документация Новости Об авторах Обложка