# 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'

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 runtime для языка Go. Grumpy обеспечивает трансляцию кода на языке Python в представление на языке Go и позволяет бесшовно запускать оттранслированные Python-программы в runtime-окружении языка Go. Отмечается, что одной из основных целей проекта является обеспечение высокого уровня совместимости с CPython и достижение возможности применения Grumpy в качестве полноценной замены Python runtime для проектов на языке Python. Код транслятора написан на языке Python и поставляется под лицензией Apache 2.0.

 Новости

Представлен корректирующий выпуск 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).

Новости

 Новый дизайн reddit для Python

Теперь субреддит выглядит в стиле python.org

Статьи и интервью

 Становится ли python королем в "Лесу научной обработки данных"?

Интересная аналитика с впечатляющими графиками роста популярности

Разработка ERP на tryton: Часть 3

Работа с модулями компании (company), контрагентами (party), товаров (product) и склада (stock).

 Введение в Jython Часть 1. Упрощаем программирование на платформе Java

Очень подробная и стоящая прочтения статья, но стоит обратить также внимание на комментарии. Доступна также вторая часть, которая может показаться менее интересной, так как больше о python чем о jython

 Поможет ли гипотетический python 2.8 переходу на python 3?

Скорее нет чем да отвечает автор на свой же предыдущий пост, который тоже анонсировался в нашем дайджесте.

Django tips & tricks

В этом посте — небольшие советы по работе с Django, которые могут пригодиться начинающим разработчикам.

VIM как IDE для разработки на Python

Авторское «скромное» понимание того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п

Геодезия: по полю на «питоне»

Решение прикладной геодезической задачи с применением python и gt

 Установка nginx+uwsgi что следует знать

Автор делится своим опытом развертывания этого стека технологий и описывает некоторые трудности, с которыми столкнулся по пути.

 Шпаргалка-сравнение операций по работе с числовыми матрицами

Включает такие системы как MATLAB/Octave, NumPy, R, Julia

 Авторизация во Flask одной строчой

Ну на самом деле еще несколько строк импортов и конфигурации, но все равно хорошо. Речь о расширении stormpath

 Отчет по результатам встречи python-разработчиков в Мельбурне в мае 2014

Рассказывается о трех достаточно интересных докладах. Первый - введение в web2py, второй об игровом дизайне (pyGame) и третий о новостях разработки python как ЯП

Gevent - coroutines in Python

Практика обхода ограничений GIL для задач использующих многопоточность

Интересные проекты, инструменты, библиотеки

Выпуск распределённой системы обмена сообщениями ii 0.3

ii - это система для онлайн и оффлайн обмена сообщениями, вобравшей в себя лучшие идеи из web-форумов, твиттера, FIDO и Git

 Изучаем django, не устанавливая ничего на локальную машину

Рассказ о том как запустить и поработать с django на интересном сервисе runnable.com

 Рисуем с помощью программного кода

Статья о применении генерируемого арта (изображения создаваемые с помощью программного кода). Статья для кого-то может быть замечательным открытием модулей NodeBox

 var_dump - портирование php-функции на python

Не знаю уж для чего это нужно, но довольно забавно.

Релизы

 Python 2.7.7

Релиз безопасности.

 Pebble 3.0

Уменьшение количество кода при реализации кода требующего параллельного выполнения

Конференции, события, встречи разработчиков

Итоги PyCon RU

Отчет участника конференции PyCon 2014 (Екатеринбург)