Обновить
794.78

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Игровой движок Godot отдали в общественное пользование

Время на прочтение1 мин
Охват и читатели44K


Создатели движка Godot опубликовали исходный код под свободной лицензией MIT, так что теперь любой желающий может использовать его для создания собственных 2D- и 3D-игр. Авторы программы утверждают, что Godot предоставляет богатый набор функций и новый подход к разработке игр, что в совокупности «позволяет разработчикам-одиночкам и группам работать более эффективно, чем когда-либо». Они также отмечают простоту и лёгкость освоения программы: язык программирования похож на Python.
Читать дальше →

Python-digest #13. Новости, интересные проекты, статьи и интервью [31 января 2014 — 9 февраля 2014]

Время на прочтение3 мин
Охват и читатели15K
Эх, как знал, что чертова дюжина не хорошее число. В этот раз выпуск свежих новостей о python и близлежащих технологиях запоздал. Причиной тому завал на работе. На самом деле подготовка дайджеста даже с уже готовыми новостями занимает довольно продолжительное время. Придется перенести выпуски на субботу, чтобы я делал их спокойно и не случалось срывов как в этот раз.


Хочу сказать традиционное спасибо owlman75 за иллюстрацию к выпуску. Он пока readonly, но возможно опубликует интересную статью подходящую нашему дайджесту и получит от кого-нибудь приглашение. Говорят частенько это делает НЛО.

Самих статей на этой неделе не очень много. Все получающие PythonWeekly и PythonCoders не дадут соврать — там тоже не было ничего особо интересного. Хочу сказать, что информационный фон python-сообщества формируем мы сами — поэтому поддерживайте любимый ЯП: пишите статьи, афишируйте свои интересные проекты, экспериментируйте с новшествами.

Читать дальше →

Google Calendar, как бесплатный СМС гейт

Время на прочтение4 мин
Охват и читатели67K
Вы знали, что google календарь может отправлять СМС напоминания? Скорее всего, да. Я сам этим пользуюсь постоянно. А знали ли вы, что с помощью таких напоминаний можно сделать себе СМС оповещения? А вот можно. Эдакий персональный бесплатный СМС гейт. Я об этом когда-то давно читал, но тогда мне это нужно не было. Недавно понадобилось отправлять СМС оповещения от железки аля умный дом и я вспомнил об этом способе. Вспомнил, нашел готовый django модуль, реализующий его, и подключил к своему сайту. Работает! На все у меня ушло где-то пол часа. Но обо всем по порядку.
Читать дальше →

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

Время на прочтение4 мин
Охват и читатели33K
На хабре уже не раз поднималась тема изучения английского языка (пруф). Она рассматривалась с разных ракурсов. Кто-то писал, что не зачем учить слова, при изучении иностранного. Кто-то делился способами, коих великое множество, от простых карточек, до целой тетради, исписанной по самое не хочу. В конце концов есть LinguaLeo, так же замечательный сервис, на котором без дополнительной платы можно учить по 10 слов в день. Хотя иногда платить не хочется, а 10 слов кажутся весьма небольшим количество для молодого организма, который познает таинства и прелести иностранной мовы. Тогда возможно этот скрипт вам будет полезен.
Читать дальше →

Python на страже кошелька

Время на прочтение3 мин
Охват и читатели11K


Однажды забрел я на сайт мобильного оператора в поисках чего-нибудь интересного. Интересным оказалось только наличие большого количества разнообразных тарифных планов на любой вкус и цвет. Тут — низкий тариф внутри сети, там — тарификация по длительности звонка, а вот и фиксированная плата за звонок. В общем, маркетологи подзаработали на славу. На сайтах других операторов картина была похожая. Мне стало интересно, насколько мои расходы на мобильную связь изменились бы в зависимости от выбранного тарифа. Но одной только силы мысли оказалось недостаточно, чтобы проанализировать статистику звонков за последние месяцы и сопоставить их со всеми тарифами. Решив отложить это дело до лучших времен, нажимаю Alt+Tab и попадаю — правильно, в консоль с заголовком Python 2.7.5+ и манящим приглашением >>>
Итак, вызов принят!

Выпущен обновленный PyCharm 3.1 с поддержкой Python 3.4 и Django 1.6: что стало лучше?

Время на прочтение4 мин
Охват и читатели23K
Хотим поделиться радостью: мы только что выпустили PyCharm 3.1. Это — хоть и минорный, но все же наполненный новой функциональностью релиз PyCharm. Как вы знаете, PyCharm начиная с версии 3.0 доступен как в платном варианте PyCharm Professional Edition, так и в бесплатном с открытым исходным кодом — PyCharm Community Edition.

Загрузите PyCharm 3.1 прямо сейчас (и продолжайте читать, пока он загружается).

Новый PyCharm 3.1 теперь поддерживает последние версии Python 3.4 и Django 1.6. Мы не обошли вниманием и поддержку Google App Engine — она заметно улучшена. В PyCharm 3.1 также интегрированы улучшения, сделанные в последнее время в общей для всех наших IDE платформе — IntelliJ.

Что нового?


Поддерживается Python 3.4


image

PyCharm 3.1 поддерживает Python 3.4, включая новые стандартные библиотеки и последние новшества языка. Можно смело переключаться на новый интерпретатор и работать, наслаждаясь новыми фичами Python.
а еще?

Vim-крокет

Время на прочтение7 мин
Охват и читатели16K
Переводчик из меня совершенно никакой, но я просто не мог пройти мимо этой статьи, ибо она излучает волны крутости, а концентрация дзена в ней зашкаливает. Поэтому welcome.

Введение


Недавно я обнаружил интересную игру под названием VimGolf. Цель этой игры заключается в том, чтобы преобразовать кусок текста из одной формы в другую наименьшим возможным количеством нажатий клавиш. Пока я играл на этом сайте с разными пазлами, мне стало любопытно — а какие привычки редактирования текста есть у меня? Мне захотелось лучше понять способы манипулирования текстом в Vim и проверить, смогу ли я найти неэффективные моменты в моем рабочем процессе. Я провожу огромное количество времени в моем текстовом редакторе, поэтому устранение даже незначительных шероховатостей может привести к значительному увеличению производительности. В этом посте я расскажу о своем анализе и о том, как я уменьшил количество нажатий клавиш при использовании Vim. Я назвал эту игру Vim-крокет.
Читать дальше →

Простейший способ добавить WebSocket в Django

Время на прочтение4 мин
Охват и читатели31K
Примечение переводчика: вебсокеты и Django — это довольно сложная тема, которая уже не раз поднималась на хабрахабре и основной идеей является написание параллельного бэкенда для вебсокетов. Автор же предлагает довольно лаконичное решение этой проблемы, которому правда еще предстоит проверка временем.

TL;DR — Я пришел к очень простому решению для работы с вебсокетами в Django. Все что вам нужно — это установить django-websocket-request, запустить скрипт, и теперь ваше приложение поддерживает вебсокеты! Это решение заставляет Django думать, будто он получает нормальный (в какой-то мере) HTTP-запрос, поэтому оно будет совместимо почти со всем вашим существующим кодом. Решение работает нормально как с Django Rest Framework, так и с обычными функциями-представлениями и представлениями, основанными на классах (Class Based Views).
Читать дальше →

Python-digest #12. Новости, интересные проекты, статьи и интервью [24 января 2013 — 31 января 2014]

Время на прочтение3 мин
Охват и читатели13K
Итак, снова новости о Python и близлежащих технологиях. Сегодня много интересного о Wheels и пакетах в целом, MoviePy, AI для игр, русская документация по argparser и другое.

Огромное спасибо тем, кто прислал новости на инструмент для создания дайджестов и тем кто помог прикрутить к нему домен pythondigest.ru (inetava, vaal особенно). Он теперь наш как
минимум на два с половиной года. Спасибо огромное owlman за предоставленную иллюстрацию.

Обсуждение. Похоже что последнее время очень часто всплывает тема о пакетах модулей и управлении ими. Как думаете грянет ли революция на эту тему? Может кто-то предложит очень удобный инструмент, который заменит pip и PyPI, или возродится Anaconda? А как вы на своем предприятии организуете работу с пакетами? Какие критерии для вас важны в пакетном менеджере?

Читать дальше →

Построение модели SARIMA с помощью Python+R

Время на прочтение7 мин
Охват и читатели68K

Введение


Добрый день, уважаемые читатели.
После написания предыдущего поста про анализ временных рядов на Python, я решил исправить замечания, которые были указаны в комментариях, но при их исправлении я столкнулся с рядом проблем, например при построении сезонной модели ARIMA, т.к. подобной функции а пакете statsmodels я не нашел. В итоге я решил использовать для этого функции из R, а поиски привели меня к библиотеке rpy2 которая позволяетиспользовать функции из библиотек упомянутого языка.
У многих может возникнуть вопрос «зачем это нужно?», ведь проще просто взять R и выполнить всю работу в нем. Я полность согласен с этим утверждением, но как мне кажется, если данные требуют предварительной обработки, то ее проще произвести на Python, а возможности R использовать при необходимости именно для анализа.
Кроме этого, будет показано как интегрировать результаты выдачи работы функции R в IPython Notebook.
Читать дальше →

Python на колёсах

Время на прочтение7 мин
Охват и читатели134K
Инфраструктура системы пакетов для Python долго подвергалась критике как от разработчиков, так и от системных администраторов. Долгое время даже само комьюнити не могло прийти к соглашению, какие именно инструменты использовать в каждом конкретном случае. Уже существуют distutils, setuptools, distribute, distutils2 в качестве базовых механизмов распространения и virtualenv, buildout, easy_install и pip в качестве высокоуровневых инструментов управления всем этим беспорядком.

До setuptools основным форматом распространения были исходные файлы или некоторые бинарные MSI-дистрибутивы для Windows. Под Linux были изначально сломанный bdist_dumb и bdist_rpm, который работал только на системах, основанных на Red Hat. Но даже bdist_rpm работал недостаточно хорошо для того, чтобы люди начали его использовать.

Несколько лет назад PJE попытался исправить эту проблему, предоставив смесь из setuptools и pkg_resources для улучшения distutils и добавления метаданных в Python-пакеты. В дополнение к этому он написал утилиту easy_install для их установки. По причине отсутствия формата распространения, поддерживающего метаданные, был предоставлен формат 'яиц' [egg].

Python eggs – обычные zip-архивы, содержащие python-пакет и необходимые метаданные. Хотя многие люди, вероятно, никогда намеренно не собирали egg'и, их формат метаданных до сих пор жив-здоров. И все разворачивают свои проекты с использованием setuptools.

К сожалению, некоторое время спустя сообщество разделилось, и часть его провозгласила смерть бинарных форматов и 'яиц' в частности. После этого pip, замена easy_install, перестал принимать egg-формат.

Потом прошло еще немного времени, и отказ от бинарных пакетов стал доставлять неудобства. Люди всё больше и больше стали деплоить на облачные сервера, а необходимость перекомпиляции C-шных библиотек на каждой машине не слишком радует. Так как 'яйца' на тот момент были малопонятны (я так полагаю), их переделали в новых PEP-ах, и назвали 'колёсами' [wheels].
Читать дальше →

PyQt. Управляем памятью, собираем мусор

Время на прочтение6 мин
Охват и читатели21K
image
Давным давно был язык С. И были в нем 2 функции управляющие памятью — malloc и free. Но это было слишком сложно.
Посмотрел на это Бьёрн Страуструп и решил что нужно сделать все проще. И изобрел С++. В дополнение к malloc/free там появились new/delete, деструкторы, RAII, auto и shared указатели.
Посмотрел на это Гвидо ван Россум, и решил, что С++ тоже не достаточно прост. Он решил идти другим путем и придумал Python, в котором даже malloc и free нет.
А тем временем норвежские троли создали на С++ GUI-библиотеку Qt, которая упрощает управление памятью для своих объектов за счет того, что сама их удаляет, когда посчитает нужным.
Phil Thompson расстроился, что отличной библиотеки Qt нету для замечательного языка Python. И решил их объединить проектом PyQt. Однако, как оказалось, если скрестить разные парадигмы управления памятью, обязательно вылезут побочные эффекты. Давайте посмотрим какие…
Читать дальше →

Пишем мониторинг наличия билетов на РЖД

Время на прочтение3 мин
Охват и читатели38K
Не раз слышал от своих знакомых, что было бы неплохо увидеть сайт который будет мониторить наличие свободных мест на ржд. Про себя я думал — «да неплохо бы» и благополучно забывал, но пост заставил меня вспомнить навыки копи паста, которыми я владею в совершенстве и обернуть это дело в питонячий код. Сразу оговорюсь что именно про мониторинг будет во второй части, а в этой будет про то: как ходить на РЖД из питона, что это за загадочный sleep про который писали в предыдущем посту и как живется на Google App Engine. Итак приступим:
image
Читать дальше →

Ближайшие события

Четыре метода загрузки изображений с веб-сайта с помощью Python

Время на прочтение2 мин
Охват и читатели149K
Недавно пришлось по работе написать простенький парсер на питоне, который бы скачивал с сайта изображения (по идее тот же самый парсер может качать не только изображения, но и файлы других форматов) и сохранял их на диске. Всего я нашел в интернете четыре метода. В этой статье я их решил собрать все вместе.

Читать дальше →

Python-digest #11. Новости, интересные проекты, статьи и интервью [17 января 2013 — 24 января 2014]

Время на прочтение3 мин
Охват и читатели10K
Продолжаем собирать свежие новости, информацию о проектах, интересные статьи о python и относящихся к нему технологиях. В этот раз много статей на русском из блога Максима Никитенко, которые он сам прислал через форму добавления новости на инструменте для создания дайджеста.

Мобильная версия

Спасибо большое owlman в этот раз он не только сделал иллюстрацию для выпуска, но и нарисовал целую гору замечательных иконок для разделов.

Просьба! Мне бы хотелось перенести инструмент создания дайджеста на какой-нибудь более python-related домен. Может кто-нибудь поможет денежкой (600р. в год) или сам купит домен и делегирует на мой хостинг? Не хаброжители могут написать мне по этому поводу (да и любым другим) в скайп: alrusdi
На год уже есть спасибо inetava
И продление на второй год спасибо vaal

Опрос о рассылке. Прошел слушок, что из-за недостататочного количества плюсиков или секретной политики хабры дайджест не всегда попадает в мобильную ленту. Добавил в пост опрос нужно ли организовать почтовую рассылку с анонсом очередного выпуска.

Читать дальше →

Почему существует так много Питонов?

Время на прочтение9 мин
Охват и читатели145K
Питон изумителен.

Удивительно, но это довольно неоднозначное заявление. Что я имею ввиду под “Питоном”? Может, абстрактный интерфейс Питона? Или CPython, распространенная реализация Питона (не путать с похожим по названию Cython)? Или я имею ввиду что-то совсем иное? Может, я косвенно ссылаюсь на Jython, или IronPython, или PyPy. Или может я отвлекся так сильно, что говорю о RPython или RubyPython (которые очень сильно отличаются).

Не смотря на схожесть в названиях указанных выше технологий, некоторые из них имеют совсем другие задачи (или, как минимум, работают совершенно иными способами)

При работе с Питоном я столкнулся с кучей таких технологий. Инструменты *ython. Но лишь недавно я уделил время, чтобы разобраться, что они собой представляют, как они работают и почему они (каждая по-своему) необходимы.

В этом посте я начну с нуля и пройдусь по разным реализациям Питона, а закончу подробным введением в PyPy, за которым, по моему мнению, будущее языка.

Все начинается с понимания того, чем на самом деле является “Питон”.
Читать дальше →

Простой интерпретатор с нуля на Python #4

Время на прочтение5 мин
Охват и читатели16K


В предыдущих трех частях мы создали лексер, парсер и AST для нашего игрушечного языка IMP. Мы даже написали нашу собственную библиотеку парсеров комбинаторов. В этой, финальной статье мы напишем последний компонент интерпретатора — исполнитель.


Давайте подумаем, как обычно исполняются программы. В любой момент времени есть некоторые «точки контроля», которые указывает на то, какое выражение программа собирается выполнить дальше. Когда следующее выражение исполняется, оно модифицирует состояние программы, путем улучшения «точки контроля» и изменения значений переменных.
Читать дальше →

Python-digest #10. Новости, интересные проекты, статьи и интервью [10 января 2013 — 17 января 2014]

Время на прочтение4 мин
Охват и читатели9K
Юбилейный, десятый выпуск свежих новостей о python и близлежащих технологиях интересен тем, что некоторые новости были добавлены в него через введенную хабраюзером axce1 форму добавления новости незарегистрированными пользователями. Очень приятно, что она начинает работать. Присоединяйтесь!

Есть неболшая тонкость, которую стоит разъяснить. Мне прислали ссылку на замечательную статью исследование объектов кода, но в выпуск она не попала, так как написана в марте прошлого года, то есть новостью по сути не является.

Спасибо owlman за то, что несмотря на несвоевременно предоставленную мной информацию о приоритетных новостях он все же нарисовал иллюстрацию.

Экпериментально вводим пометку русскоязычных статей флажком, а англоязычные никак не помечаем. Это должно уменьшить количество флажков. В конце поста можно проголосовать за и против этого нововедения.

Сам дайджест под катом

Создание zip-модулей в python

Время на прочтение11 мин
Охват и читатели18K

Предыстория


На определенном этапе развития технологий компании Acronis было принято решение изучить возможность распространения интерпретатора языка python3 собственной сборки как часть наших продуктов, расширив его при этом нашими собственными модулями, обеспечивающими доступ к инфраструктуре этих продуктов. Данный пост является одним из результатов исследований в этом направлении.

В первую очередь, нам хотелось иметь ограниченный компактный набор конечных распространяемых модулей. Однако публичная сборка питона, распространяемая через python.org к этому не располагает, одна только стандартная библиотека, являющаяся неотъемлемой частью самого языка, состоит из более чем тысячи py-файлов. Именно поэтому, мы сразу обратили внимание на такую любопытную особенность интерпретатора, как возможность импорта модулей, находящихся в zip-архивах, когда все множество исходников на питоне, относящихся к одному или нескольким модулям, упаковано в zip-архив и распространяется одним zip-файлом.

Читать дальше

Deploy с помощью Salt

Время на прочтение8 мин
Охват и читатели35K

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

Чего обычно хочется:
  • Возможность поднять проект локально на машине разработчика. Весь или хотя бы частями. Причем очень хочется, чтобы Dev конфигурация отличалась от Prod в минимуме параметров. Это позволит избежать “work on my machine” багов. Да и вообще, когда один разработчик работает на OS X, другой на Windows, а продакшен на Debian, то жди беды, это не считая того, что каждый делает работу по настройке окружения.
  • Dev конфигурацию хочется разворачивать на любой машине и ОС в пару команд в консоли. Это опять же позволит уменьшить фактор “work on my machine” багов. А еще позволит привлекать других разработчиков в проект за минимальное время (vagrant up и поехали).
  • Конфигурация должна быть понятна и программисту, и админу.

Всего этого мы добьемся на связке Salt + Vagrant на примере Django проекта. Но большинство техник будут полезны разработчикам не только на Python, но на других языках.
Читать дальше →