Автостопом по Python.
- Введение. ⇢
- Условные обозначения. ⇢
- Часть 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. Ваша среда разработки. ⇢
- Текстовые редакторы. ⇢
- Таблица 3.1. Первый взгляд на текстовые редакторы.
- Sublime Text. ⇢
- Vim. ⇢
- Emacs. ⇢
- TextMate. ⇢
- Atom. ⇢
- Code. ⇢
- IDE. ⇢
- Таблица 3.2. Первый взгляд на 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 (также известный как «Дзен Питона»). ⇢
- Дзен Питона. Автор Тим Питерс.
- Общие советы. ⇢
- Явное лучше, чем неявное.
- Разреженное лучше, чем плотное.
- Ошибки никогда не должны замалчиваться/Если не замалчиваются явно.
- Аргументы функций должны быть интуитивно понятными.
- Никогда лучше, чем сейчас.
- Если реализацию сложно объяснить — идея плоха.
- Мы все — ответственные пользователи.
- Возвращайте значения из одной точки.
- Соглашения. ⇢
- Альтернативы при проверке на равенство.
- Получаем доступ к элементам массива.
- Манипуляции со списками.
- Продолжение длинной строки кода.
- Идиомы. ⇢
- Распаковка.
- Игнорирование значения.
- Создание списка длиной N, состоящего из одинаковых значений.
- Контексты с гарантией безопасности по исключениям.
- Распространенные подводные камни. ⇢
- Изменяемые аргументы по умолчанию.
- Замыкания с поздним связыванием.
- Структурируем проект. ⇢
- Модули. ⇢
- Инструменты для пространств имен.
- Таблица 4.1. Разные способы импортировать определения из модулей.
- Структура — это главное.
- Упаковка. ⇢
- Объектно-ориентированное программирование. ⇢
- Декораторы. ⇢
- Динамическая типизация. ⇢
- Таблица 4.2. Правила хорошего и плохого тона при задании имен.
- Изменяемые и неизменяемые типы. ⇢
- Таблица 4.3. Способы конкатенации строки.
- Зависимости, получаемые от третьей стороны. ⇢
- Тестирование вашего кода. ⇢
- Советы по тестированию.
- Основы тестирования. ⇢
- unittest.
- Mock (в модуле unittest).
- doctest.
- Примеры. ⇢
- Пример: тестирование в Tablib.
- Пример: тестирование с помощью Requests.
- Другие популярные инструменты. ⇢
- pytest.
- Nose.
- tox.
- Варианты для старых версий Python.
- Lettuce и Behave.
- Документация. ⇢
- Документация к проекту. ⇢
- Публикация проекта. ⇢
- Sphinx.
- reStructured Text.
- Строки документации против блоковых комментариев. ⇢
- Журналирование. ⇢
- Журналирование против функции print.
- Журналирование для библиотеки. ⇢
- Журналирование для приложения. ⇢
- Таблица 4.4. Способы конфигурирования средств ведения журнала.
- Пример конфигурации с помощью файла в формате INI.
- Пример конфигурирования с помощью словаря.
- Пример конфигурирования непосредственно в коде.
- Выбираем лицензию. ⇢
- Лицензии. ⇢
- Доступные варианты. ⇢
- Таблица 4.5. Темы, рассматриваемые в популярных лицензиях.
- Лицензирование ресурсов. ⇢
- Глава 5. Читаем отличный код. ⇢
- Типичные функции. ⇢
- Таблица 5.1. Типичные функции рассматриваемых проектов.
- HowDoI. ⇢
- Читаем сценарий, состоящий из одного файла. ⇢
- Читаем документацию к HowDoI.
- Использование HowDoI.
- Читаем код HowDoI.
- Упаковка HowDoI.
- Примеры из структуры HowDoI. ⇢
- Пусть каждая функция делает что-то одно.
- Пользуйтесь данными, доступными системе.
- Примеры из стиля HowDoI. ⇢
- Имена функций, которые начинаются с нижнего подчеркивания (мы все — ответственные пользователи).
- Обрабатывайте вопросы совместимости только в одном месте (читаемость имеет значение).
- Diamond. ⇢
- Читаем более крупное приложение. ⇢
- Читаем документацию к Diamond.
- Используем Diamond.
- Читаем код Diamond.
- Журналирование в Diamond.
- Примеры из структуры Diamond. ⇢
- Разбиваем функциональность между пространствами имен (поскольку пространства имен — это отличная штука!).
- Расширяемые пользователем классы (сложное лучше, чем запутанное).
- Примеры из стиля Diamond. ⇢
- Tablib. ⇢
- Читаем небольшую библиотеку. ⇢
- Читаем документацию Tablib.
- Используем Tablib.
- Читаем код библиотеки Tablib.
- Документация к библиотеке Tablib в формате Sphinx.
- Примеры из структуры Tablib. ⇢
- Отсутствие ненужного объектно-ориентированного кода в форматах (использование пространств имен для группирующих функций).
- Дескрипторы и декораторы свойств (используйте неизменяемость, когда это идет на пользу API).
- Форматы файлов, зарегистрированные программно (не повторяйте дома).
- Но мы все — ответственные пользователи.
- Зависимости, полученные от третьей стороны, в пакетах (пример их использования).
- Экономим память с помощью свойства __slots__ (оптимизируйте c осторожностью).
- Примеры из стиля Tablib. ⇢
- Requests. ⇢
- Читаем более крупную библиотеку. ⇢
- Читаем документацию библиотеки Requests.
- Используем Requests.
- Читаем код Requests.
- Строки документации Requests, совместимые со Sphinx.
- Примеры из структуры Requests. ⇢
- Высокоуровневый API (очевидный способ решить задачу, желательно единственный).
- Объекты класса Request и PreparedRequest (мы все — ответственные пользователи).
- Примеры из стиля Requests. ⇢
- Множества и их арифметика (отличная питонская идиома).
- Коды состояний (читаемость имеет значение).
- Werkzeug. ⇢
- Читаем код инструментария. ⇢
- Читаем документацию Werkzeug.
- Используем Werkzeug.
- Читаем код Werkzeug.
- Tox в Werkzeug.
- Примеры стиля из Werkzeug. ⇢
- Элегантный способ угадать тип (если реализацию легко объяснить — идея, возможно, хороша).
- Регулярные выражения (читаемость имеет значение).
- Примеры структуры из Werkzeug. ⇢
- Декораторы, основанные на классах (питонский способ использовать динамическую типизацию).
- Response.__call__
- Примеси (еще одна отличная штука).
- Новые классы и object.
- Flask. ⇢
- Читаем код фреймворка. ⇢
- Читаем документацию Flask.
- Использование Flask.
- Читаем код Flask.
- Журналирование во Flask.
- Примеры стиля из Flask. ⇢
- Примеры структуры из Flask. ⇢
- Разумные значения по умолчанию могут быть важны.
- Глава 6. Отправляем отличный код. ⇢
- Использование словаря и Concepts. ⇢
- Упаковываем код. ⇢
- «Пакет» против «пакета дистрибутива» и против «пакета установки».
- Conda. ⇢
- PyPI. ⇢
- Используйте testPyPI для тестирования и PyPI для реальной разработки.
- Пример проекта.
- Используйте pip, но не easy_install.
- Личный PyPI.
- Pypiserver.
- PyPI, размещенный на S3.
- Поддержка VCS для pip.
- Замораживаем код. ⇢
- Проверяем лицензии при использовании библиотек, написанных на C.
- Таблица 6.1. Инструменты для заморозки.
- PyInstaller. ⇢
- cx_Freeze. ⇢
- py2app. ⇢
- py2exe. ⇢
- bbFreeze. ⇢
- Упаковка дистрибутивов в Linux. ⇢
- Подводные камни при создании пакетов дистрибутивов в Linux.
- Исполняемые ZIP-файлы. ⇢
- Часть III. Руководство по сценариям. ⇢
- Глава 7. Взаимодействие с пользователем. ⇢
- Jupyter Notebook. ⇢
- Приложения командной строки. ⇢
- Таблица 7.1. Инструменты для командной строки.
- argparse. ⇢
- docopt. ⇢
- Plac. ⇢
- Click. ⇢
- Clint. ⇢
- cliff. ⇢
- Приложения с графическим интерфейсом. ⇢
- Библиотеки виджетов. ⇢
- Таблица 7.2. Библиотеки виджетов для графических интерфейсов.
- Kivy. ⇢
- GTK+ ⇢
- wxWidgets. ⇢
- Objective-C. ⇢
- Разработка игр. ⇢
- Веб-приложения. ⇢
- Веб-фреймворки/микрофреймворки. ⇢
- Таблица 7.3. Веб-фреймворки.
- Django. ⇢
- Flask. ⇢
- Tornado. ⇢
- Pyramid. ⇢
- Движки для веб-шаблонов. ⇢
- Таблица 7.4. Движки шаблонов.
- Jinja2. ⇢
- Chameleon. ⇢
- Mako. ⇢
- Развертывание веб-приложений. ⇢
- Хостинг. ⇢
- Веб-серверы. ⇢
- Серверы WSGI. ⇢
- Глава 8. Управление кодом и его улучшение. ⇢
- Непрерывная интеграция. ⇢
- Системное администрирование. ⇢
- Travis-CI. ⇢
- Jenkins. ⇢
- Buildbot. ⇢
- Автоматизация сервера. ⇢
- Salt. ⇢
- Ansible. ⇢
- Puppet. ⇢
- Chef. ⇢
- CFEngine. ⇢
- Наблюдение за системами и задачами. ⇢
- Psutil. ⇢
- Fabric. ⇢
- Luigi. ⇢
- Скорость. ⇢
- Таблица 8.1. Способы ускорения работы.
- Многопоточность. ⇢
- Модуль multiprocessing. ⇢
- Subprocess. ⇢
- PyPy. ⇢
- Cython. ⇢
- Numba. ⇢
- Библиотеки для работы с GPU. ⇢
- Взаимодействие с библиотеками, написанными на C/C++/FORTRAN. ⇢
- Таблица 8.2. Интерфейсы С и С++
- C Foreign Function Interface. ⇢
- ctypes. ⇢
- F2PY. ⇢
- SWIG. ⇢
- Boost.Python. ⇢
- Глава 9. Программные интерфейсы. ⇢
- Веб-клиенты. ⇢
- API для сети. ⇢
- simplejson для ранних версий Python.
- Анализ XML. ⇢
- Скраппинг сайтов. ⇢
- lxml. ⇢
- Сериализация данных. ⇢
- Pickle. ⇢
- Межъязыковая сериализация. ⇢
- Сжатие. ⇢
- Протокол буфера. ⇢
- Распределенные системы. ⇢
- Работа с сетью. ⇢
- Таблица 9.1. Работа с сетью.
- Производительность сетевых инструментов из стандартной библиотеки Python. ⇢
- gevent. ⇢
- Twisted. ⇢
- PyZMQ. ⇢
- RabbitMQ. ⇢
- Шифрование. ⇢
- Таблица 9.2. Реализация шифрования.
- ssl, hashlib и secrets. ⇢
- pyOpenSSL. ⇢
- PyNaCl и libnacl. ⇢
- Cryptography. ⇢
- PyCrypto. ⇢
- bcrypt. ⇢
- Глава 10. Манипуляции с данными. ⇢
- Таблица 10.1. Инструменты для работы с данными.
- Научные приложения. ⇢
- IPython.
- NumPy. ⇢
- SciPy. ⇢
- Matplotlib. ⇢
- Pandas. ⇢
- Scikit-Learn. ⇢
- Rpy2. ⇢
- decimal, fractions и numbers. ⇢
- SymPy. ⇢
- Манипуляции с текстом и его анализ. ⇢
- Инструменты для работы со строками стандартной библиотеки Python. ⇢
- nltk. ⇢
- SyntaxNet. ⇢
- Работа с изображениями. ⇢
- Pillow. ⇢
- cv2. ⇢
- Scikit-Image. ⇢
- Глава 11. Хранение данных. ⇢
- Структурированные файлы. ⇢
- Библиотеки для работы с базами данных. ⇢
- Таблица 11.1. Библиотеки для работы с базами данных.
- sqlite3. ⇢
- SQLAlchemy. ⇢
- Django ORM. ⇢
- peewee. ⇢
- PonyORM. ⇢
- SQLObject. ⇢
- Records. ⇢
- Библиотеки для работы с базами данных NoSQL. ⇢
- Приложение. Дополнительная информация. ⇢
- Сообщество Python. ⇢
- BDFL.
- Python Software Foundation.
- PEP.
- Конференции Python.
- Notable-протоколы.
- Отправка PEP.
- Пользовательские группы Python.
- Обучение Python. ⇢
- Для начинающих. ⇢
- Средний уровень. ⇢
- Продвинутый уровень. ⇢
- Для инженеров и ученых. ⇢
- Дополнительные темы. ⇢
- Справочный материал. ⇢
- Документация. ⇢
- Новости. ⇢
- Об авторах. ⇢
- Благодарности. ⇢
- Примечания. ⇢
Кеннет Рейтц, Таня Шлюссер.