Рубрика «python3» - 19

Новые версии Flask и Werkzeug с поддержкой питона 3.3

Армин Ронашер опубликовал в своем блоге новость об обновлении популярных веб-фреймоворков для питона: Flask и лежащего в его основе Werkzeug. Самым главным изменением стала поддержка питона 3 версии (начиная с 3.3 и выше). Также низкоуровнеый API Werkzeug был несколько изменен, чтобы с одной стороны реализовать поддержку спецификации из PEP 3333, а с другой — не потерять в производительности. С новой версией теряется поддержка питона версии 2.5.

Если вы используете Werkzeug, то, с обновленной версией, возможно, придется повозиться. Что касается Flask — то тут все несколько проще, т.к. API не сильно изменился.

Важно заметить, что Flask и Werkzeug в определенном смысле несколько затянули обновлением, ведь наиболее популярные компоненты, составляющие стандартный стек фласк-приложения: шаблонный движок Jinja2 и ORM SQLAlchemy уже достаточно продолжительное время поддерживают питон третьей версии. К слову, в свое время, Армин критиковал у себя в блоге слишком радикальные изменения языка, и довольно холодно отзывался о третьей версии.
Читать полностью »

Не пропустите «питонячью» секцию Devconf 2013

imagePrehistoric Python: Patterns Past their Prime
Lennart Regebro — created his first website in 1994, and has been
working full time with open source web development since 2001. He is
the author of the book «Porting to Python 3».

Tulip — новый стандарт на асинхронный код
Андрей Светлов — использует Python с 2000 года.
Занимается разработкой языка и стандартной библиотеки как Python Core Developer.
Участвует в создании tulip.

UI нового поколения с Leap Motion и Python'ом
Павел Коломиец. Занимается разработкой веб-проектов с 2003-го года.
С 2010-го руководит разработкой игр в компании Insollo.
Читать полностью »

Лирическое отступление

Пару месяцев назад решил я таки изучить Python. Но… только сунувшись во всю эту среду, передо мной встал выбор: учить относительно новый python3 или же python2.7. Выбор пал в сторону python 3, пусть на нём работает лишь малое количество того, что уже есть под python2.7, да и просто интересно было поучаствовать в развитии языка.
Недавно встала потребность визуализации некоторых данных (именно в openGL), поэтому было решено разобраться, что и как, собрать всё воедино и рассказать об этом хабражителям.
Статья ориентирована в первую очередь на новичков в python (таких как я), и написана в стиле «установи то-то и то-то», поэтому просьба старожилам не кидаться тапками и отнестись с пониманием.
Читать полностью »

На проходящем в Санта Кларе(США) PyCon 2013 была представлена бета версия нового сайта Python.orgpreview.python.org.
Новая адаптивная версия сайта выглядит приятней и современней, навигация по сайту стала более удобной и понятной.

Последний раз дизайн сайта был обновлен в 2006 году. Хотя если смотреть глубже, структура сайта не менялась с конца 90-х.

Новый сайт сделан на платформе Django 1.5 (Python 3.3)

Читать полностью »

Изучая Python3, я портировал (как смог) библиотечку PyBrain. Об этом я уже писал здесь.
image
Теперь же я хочу немного «поиграть» с данной библиотечкой. Как я уже говорил в предыдущем посте, питон я только начал изучать, так что все написанное в этой статье не стоит воспринимать как Истину. Изучение — это путь, и он извилист.

Задачу поставим перед искусственной нейронной сетью (ИНС) весьма простую — классификацию, а именно: распознавание букв латинского алфавита.

Вроде бы классический пример, про него уже писали на хабре неоднократно: «Что такое искусственные нейронные сети?», «Нейронные сети и распознавание символов» и т.д.
Но моей целью стоит изучение питона на не самых простых примерах. Т.е. учимся сразу на сложном и незнакомом. Так мы найдем в два раза больше граблей, что позволит нам копнуть в глубины языка, разбираясь с «почему не работает?».

Под хабракатом вас ждёт: описание способа подготовки данных на PyQt4, использование модуля argparse, ну и конечно же PyBrain!
Читать полностью »

Наконец то. Зарелизился Django 1.5
Поздравляю, уважаемые читатели. Пройдя через откладывание релиза, проблемы с безопасностью и др. преграды, Джанго освобо один-пятый наконец получил статус стабильного релиза.

Как пишут разработчики, была проделана довольно большая работа по выпуску очередной версии. Полный список изменений и новшеств как обычно можно посмотреть в примечаниях к релизу, а вот краткий список основных:
Читать полностью »

В этой главе сказа про дружбу C++ и Python будет на удивление мало использования Boost.Python. Передача исключений туда и обратно является по сути слабым местом данной библиотеки. Будем обходиться родным API языка Python, а где это возможно использовать Boost.Python.
Тем не менее Boost.Python создаёт окружение, в котором исключения из C++ попадают в Python в виде стандартного RuntimeError, а обратно из Python генерируется исключение C++ типа error_already_set, что означает «тебе что-то прилетело, сходи сам почитай что там». И вот здесь нам как раз будет не лишним использовать C-API языка Python, чтобы вычитать необходимую информацию об исключении и преобразовать в соответствующий класс сообразно логике приложения.
К чему такие сложности? — Дело в том, что в Python, в отличие от C++, кроме текста исключения и его типа приходит ещё и traceback — стек до места возникновения исключения. Давайте немного расширим стандартный std::exception дополнительным параметром для этого stacktrace, а заодно напишем конвертер исключений туда и обратно из классов C++ в классы исключений Python.
Читать полностью »

Данная статья не является продолжением повествования об обёртках C++ API. Никаких обёрток сегодня не будет. Хотя по логике это третья часть данного повествования.
Сегодня будет море крови, расчленение существующих типов и магическое превращение их в привычные аналоги в другом языке.
Речь не пойдёт о существующей конвертации между строками, нет, мы напишем свои конвертеры.
Мы превратим привычный datetime.datetime питона в boost::posix_time::ptime библиотеки Boost и обратно, да чёрт с ним, мы вообще всю библиотеку datetime превратим в бустовые типы! А чтобы не было скучно, принесём в жертву встроенный класс массива байт Python 3.x, для него как раз ещё нет конвертера в Boost.Python, а потом зверски используем конвертацию массива байт в новом конвертере питоновского uuid.UUID в boost::uuids::uuid. Да, конвертер можно использовать в конвертере!
Жаждешь крови, Колизей?!..
Читать полностью »

Данная статья является продолжением первой части.
Продолжаем мучить Boost.Python. В этот раз настала очередь класса, который нельзя ни создать, ни скопировать.
Обернём обычные обычную сишную структуру с необычным конструктором.
И поработаем с возвращением ссылки на поле объекта C++, так чтобы сборщик мусора Python его не удалил ненароком. Ну и наоборот, сделаем альтернативный вариант, чтобы Python прибрал мусор после удаления того, что ему отдали на хранение.
Поехали…
Читать полностью »

Как известно, в основной реализации Питона CPython (python.org) используется Global Interpreter Lock (GIL). Эта штука позволяет одновременно запускать только один питоновский поток — остальные обязаны ждать переключения GIL на них.

Коллега Qualab недавно опубликовал на Хабре бойкую статью, предлагая новаторский подход: создавть по субинтерпретатору Питона на поток операционной системы, получая возможность запускать все наши субинтерпретаторы параллельно. Т.е. GIL как бы уже и не мешает совсем.

Идея свежая, но имеет один существенный недостаток — она не работает…
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js