# In Python 3 you can use a bare "*" asterisk
# in function parameter lists to force the
# caller to use keyword arguments for certain
# parameters:
>>> def f(a, b, *, c='x', d='y', e='z'):
... return 'Hello'
# To pass the value for c, d, and e you
# will need to explicitly pass it as
# "key=value" named arguments:
>>> f(1, 2, 'p', 'q', 'v')
TypeError:
"f() takes 2 positional arguments but 5 were given"
>>> f(1, 2, c='p', d='q',e='v')
'Hello'
Принудительно передавать только именованные параметры в Python 3.x
Время brute-force-нуть пароль =)
itertools.permutations() создает перестановки для итерируемых объектов.
Время brute-force-нуть пароль =).
>>> import itertools
>>> for p in itertools.permutations('ABCD'):
... print(p)
('A', 'B', 'C', 'D')
('A', 'B', 'D', 'C')
('A', 'C', 'B', 'D')
('A', 'C', 'D', 'B')
('A', 'D', 'B', 'C')
('A', 'D', 'C', 'B')
('B', 'A', 'C', 'D')
('B', 'A', 'D', 'C')
('B', 'C', 'A', 'D')
('B', 'C', 'D', 'A')
('B', 'D', 'A', 'C')
('B', 'D', 'C', 'A')
('C', 'A', 'B', 'D')
('C', 'A', 'D', 'B')
('C', 'B', 'A', 'D')
('C', 'B', 'D', 'A')
('C', 'D', 'A', 'B')
('C', 'D', 'B', 'A')
('D', 'A', 'B', 'C')
('D', 'A', 'C', 'B')
('D', 'B', 'A', 'C')
('D', 'B', 'C', 'A')
('D', 'C', 'A', 'B')
('D', 'C', 'B', 'A')
Поиск наболее часто встречаемых элементов
# collections.Counter lets you find the most common
# elements in an iterable:
>>> import collections
>>> c = collections.Counter('helloworld')
>>> c
Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})
>>> c.most_common(3)
[('l', 3), ('o', 2), ('e', 1)]
Google представил Grumpy, транслятор кода Python на язык Go
Компания Google открыла исходные тексты проекта Grumpy, в рамках которого развивается экспериментальный Python runtime для языка Go. Grumpy обеспечивает трансляцию кода на языке Python в представление на языке Go и позволяет бесшовно запускать оттранслированные Python-программы в runtime-окружении языка Go. Отмечается, что одной из основных целей проекта является обеспечение высокого уровня совместимости с CPython и достижение возможности применения Grumpy в качестве полноценной замены Python runtime для проектов на языке Python. Код транслятора написан на языке Python и поставляется под лицензией Apache 2.0.
Python-digest #31. Новости, интересные проекты, статьи и интервью [8 июня 2014 — 6 июля 2014]
Новости
- Основатель PyDev просит финансовой помощи для развития проекта
- Red Hat открыл код Calamari
Red Hat открыл код Calamari — инструментария для управления хранилищами на базе открытой распределённой файловой системы Ceph. Серверная часть написана на языке Python и использует в качестве СУБД PostgreSQL.
Python 2.7.8
Представлен корректирующий выпуск Python 2.7.8, в котором проведена работа по исправлению накопившихся ошибок и проблем с безопасностью. Это предпоследний плановый выпуск, примерно через год ожидается версия Python 2.7.9, после чего новые версии будут формироваться по мере необходимости. Поддержка ветки Python 2.7 будет осуществляться до 2020 года.
Из изменений в Python 2.7.8 можно отметить:
- В модуле CGIHTTPServer устранена опасная уязвимость, которая может привести к выполнению кода злоумышленника.
- Обновлён выпуск OpenSSL, поставляемый в установочном комплекте для платформы Windows.
- Устранено потенциальное переполнение в реализации типа buffer.
- Исправлено регрессивное изменение в модуле mimetypes, проявляющееся на платформе Windows.
- В os.path.join исправлена ошибка, проявляющаяся при обработке файловых путей в формате UNC (Universal Naming Convention, \\Host[@SSL][@Port]\SharedFolder\Resource).
Дайджест новостей из мира Python
Новости
Теперь субреддит выглядит в стиле python.org
Статьи и интервью
Интересная аналитика с впечатляющими графиками роста популярности
Работа с модулями компании (company), контрагентами (party), товаров (product) и склада (stock).
Доклад был сделан на PyCon 2014
Очень подробная и стоящая прочтения статья, но стоит обратить также внимание на комментарии. Доступна также вторая часть, которая может показаться менее интересной, так как больше о python чем о jython
Скорее нет чем да отвечает автор на свой же предыдущий пост, который тоже анонсировался в нашем дайджесте.
В этом посте — небольшие советы по работе с Django, которые могут пригодиться начинающим разработчикам.
Авторское «скромное» понимание того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п
Решение прикладной геодезической задачи с применением python и gt
Автор делится своим опытом развертывания этого стека технологий и описывает некоторые трудности, с которыми столкнулся по пути.
Список библиотек и их актуальность
Включает такие системы как MATLAB/Octave, NumPy, R, Julia
Ну на самом деле еще несколько строк импортов и конфигурации, но все равно хорошо. Речь о расширении stormpath
Рассказывается о трех достаточно интересных докладах. Первый - введение в web2py, второй об игровом дизайне (pyGame) и третий о новостях разработки python как ЯП
Практика обхода ограничений GIL для задач использующих многопоточность
Интересные проекты, инструменты, библиотеки
ii - это система для онлайн и оффлайн обмена сообщениями, вобравшей в себя лучшие идеи из web-форумов, твиттера, FIDO и Git
Рассказ о том как запустить и поработать с django на интересном сервисе runnable.com
Статья о применении генерируемого арта (изображения создаваемые с помощью программного кода). Статья для кого-то может быть замечательным открытием модулей NodeBox
Не знаю уж для чего это нужно, но довольно забавно.
Релизы
Релиз безопасности.
Уменьшение количество кода при реализации кода требующего параллельного выполнения
Конференции, события, встречи разработчиков
Отчет участника конференции PyCon 2014 (Екатеринбург)
- ← Сюда
- Туда →