Просмотр записей в категории Таинство стандартной библиотеки


Таинство стандартной библиотеки: модуль copy - копирование объектов

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

Например, набор данных (пускай список чисел) и N различных обработок этих данных (сортировки, срезы). Стоит задача - в конце обработки вывести все изменения данных по шагам. Для решения задачи необходимо хранить копии данных на каждом из этапов.

memoryviews - меньше копирований объектов

В Python есть несколько типов для работы с бинарными данными - byte, bytearray, memoryview

Memoryview объекты (согласно документации) позволяют Python-коду(а не C_API) обращаться к внутренним данным объекта, который поддерживает protocol buffer. И работать с этими данными без копирования.

В словах без копирования основная польза для программиста.

ipaddress - работаем с IPv4/v6

Модуль ipaddress упрощает создание, редактирование, манипуляцию с IP-адресами и сетями начиная с Python 3.3. (тогда он появился)

pathlib - объектно-ориентированный подход к файловым путям

Python 3.4 добавил модуль pathlib. Этот модуль содержит классы, представляющие файловые пути с семантикой, подходящих для различных операционных систем.

Таинство стандартной библиотеки: пути до файлов

Python прикладывает множество усилий чтобы скрыть все различия операционных систем. Если смотреть на файлы, а точнее на пути файлов, то легко можно заметить различия между Linux и Windows:

Таинство стандартной библиотеки: модуль __future__

Хорошей практикой является применение deprecated нотаций (помечать, что какой-то метод/функционал будет удален в такой-то версии)

Таинство стандартной библиотеки: консольный GUI с помощью curses

Python отлично подходит для написания самых различных серверных утилит. Часто такие утилиты дополняют CLI (Command Line Interface), а иногда и целым GUI.

Таинство стандартной библиотеки: shelve - база данных для объектов

Модуль shelve из стандартной библиотекой можно описать одной фразой - "pickle + anydbm".

Таинство стандартной библиотеки: asyncio в Python. Как устроено и зачем нужно?

Видео со свежего Moscow Python митапа.

Таинство стандартной библиотеки: sys.platform - определяем операционную систему

При написании софта для кого-то, а не только для себя, необходимо учитывать специфику рабочего окружения.

Python-конференция

Теги

notify, os, isinstance, encode, database, all, многопоточность, mail, срез, сборник, pytest, новый год, конкурентность, аргумент, pycon, gevent, GIL, интерпретатор, python проект, игры, замыкание, copy, функциональное программирование, pynotify, pypi, типы данных, csv, график, testing, поиск ошибок, автоматизация, ardruio, swagger, память, файл, pip, тест, web, статический анализ, dsl, syntax, отчет, список, ide, графика, notification, rest, pycallgraph, githook, generic, hook. webhook, история, asyncio, logging, инструмент, swig, click, crawler, while, aiohttp, clonedigger, оптимизация, трансдьюсер, matplotlib, Бизли, bottle, концепция, типизация, fuzzy-testing, урок, language, путь, nose, image, тестирование, консоль, vk, c, list, operator, pylint, print, практика, сравнение, functools, измерение, польза, selenium, сопроцедуры, генерация данных, БД, мастер класс, plotly, tests, bokeh, генерация, производительность, winapi, flask, typing, strip, lxml, grab, scandir, Qt, pycharm, проект, книга, dictwriter, coverage, html, фп, pypy, signal, стандартная библиотека, now, weakref, google, практика программирования, corotine, sqlalchemy, nameko, синтаксис, import, паттер, virtualenv, api, зеленый поток, timeit, контекст, бд, funcy, encoding, кэш, json, статистика, байт-код, unittest, кодировка, opencv, datetime, ооп, itertools, package, fp, mixin, python, assert, pyqt, утка, garbage collector, курс, frozenset, numpy, django-debug-toolbar, терминал, xpath, closure, type, дубликат, requirements, статическая типизация, PIL, работа, debug, быстродействие, plot, рейтинг, водяной знак, ip, python3, yield from, видео, test, fuzzy, curses, gitter, unicode, decode, cache, twitter, pep, вконтакте, операционная система, ОС, тесты, any, awesome, задача, последовательность, geoip, ошибки, генератор, hardcore, toolbar, Wx, qt, магия, doctest, железо, marshal, множество, сигнал, greenlet, слайс, future, db, время, admin, pyside, regex, module, slots, примесь, sys, email, action, requirementstxt, регулярные выражения, дубликат кода, одноплатный компьютер, scrapinghub, micropython, фича, mock, raspberry pi, foreign key, ссылка, django, нг, pickle, модуль, celery, справочник, импорт, лямбда, rpc, with, наука, jinja2, log, обработка текста, super, set, svg, матрица, pygame, fixture, docstring, fabric, декларативный язык, пакет, опыт, магическая переменная, regexp, Гвидо, slice, gui, база данных, vkcom, юникод, yattag, ospath, cython, unit, maxmind, матан, документация, анализатор, Tags, менеджер контекста, yield, учебник, real-time, слабая ссылка, IPython, браузер, xml, GUI, gc, channel, машинное обучение, zip, библиотека, ошибка, данные, оповещение, парсинг, изображение, CLI, tox, фильтр, R, feedly, cffi, http, таблицы, python2, gunicorn, стандарт, if, requests, rss, tkinter, time, mechanize, gensim, интерфейс, enum, визуализация, postgresql, web parsing, язык, исключение, архитектура, lstrip, parsing, путь до файла, copy paste, multiprocessing, rstrip, статический анализатор, lambda