LINUX.ORG.RU

Python


389

21

Всего сообщений: 349

Язык программирования Delight

Группа Open Source

Сегодня стало известно о возрождении языка программирования Delight. Delight представляет собой новый объектно-ориентированный язык, сочетающий в себе элементы синтаксиса языков Python, D, Haskell и Ada. Новая версия полностью переписана на D2.

В отличие от Python Delight является строго типизированным языком, однако допускает автоматическое определение типа с использованием ключевого слова auto. Так же как Python Delight использует ключевые слова как in, less than, and, equal to вместо математических операторов. Как и D Delight поддерживает юнит-тесты, а так же механизм assert'ов.

Пример кода:

procedure main:

    auto array = [ "a": 1, "b": 2, "c": 3 ]
    for key, element in array:

        if element in [ 0, 2, 4 ]:
            print key ~ "'s in!"

        else if element equal to 3:
            print add( element, 2 )

        else:
            print key ~ "'s out!"

    print { i * 2 for i in 0 .. 5 where i ^ 2 less than 5 }
    # prints [0, 2, 4]
Интересной возможностью является возможность использования исходного кода на D без модификации. Для этой цели применяется директива Passthrough.

Для программистов на Python, которым необходима интеграция с D существует обертка Pyd обеспечивающая возможность использования общего с Python API.

>>> Подробности

 , delight,

Xroft
()

Релиз IPython 2.0.0

Группа Open Source

IPython — интерактивная оболочка для языка программирования Python, которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автоматическое дополнение. Является компонентом пакета программ SciPy.
IPython позволяет осуществлять неблокирующее взаимодействие с Tkinter, GTK, Qt и WX. Стандартная оболочка Python позволяет взаимодействие только с Tkinter. IPython может интерактивно управлять параллельными кластерами, используя асинхронные статусы обратных вызовов и/или MPI. IPython может использоваться как замена стандартной командной оболочки операционной системы, особенно на платформе Windows, возможности оболочки которой ограничены. Поведение по умолчанию похоже на поведение оболочек UNIX-подобных систем, но тот факт, что работа происходит в окружении Python, позволяет добиваться большей настраиваемости и гибкости.

Главные изменения версии 2.0:

  • Интерактивные виджеты для Notebook.
  • Навигация через директории на панеле инструментов в Notebook.
  • Постоянные URLs для Notebook.
  • Новый модальный интерфейс пользователя в Notebook.
  • Модель безопасности для Notebook.

>>> Подробности

 ,

Cloud_Strife2020
()

Вышел релиз языка программирования truthon

Группа Open Source

Представляю вашему вниманию свеженький релиз так полюбившегося всем вам ЯП — гибрид хаскеля с питоном, руби и крестами. Этот код почти никогда не писался на трезвую голову и поэтому разобраться в этом месиве могу только я.

1. Самое главное: оно поддерживает три типа комментариев и новые способы легко добавить!

# shell
// кресты
/* си */

2. Синтаксис слегка пришибленый (пришлось подпилить под нужды парсера), но какой уж есть. Вот небольшой пример стандартной программы «привет, Ад»:

main = (argv, argc) ->  # объявили лямбда-функцию и сохранили её в main
  name = "Hell"
  the_string = p "Hello, {name}"   # оператор p печатает на экран
                                   # и возвращает значение своего аргумента
  # fancy string interpolation
  num = 1
  string_with_number = "num = {num}"
  
  # shell invocation
  ret = `echo -e 'Bye!\nrm -rf ~'`
  p "script terminated with {ret}"

  # built-in repexp matching
  p "Hello" =~ /(H.*)/

  # branching
  1 if 1+1 == 2 else 3
  
  # expression-oriented!
  score = match
    name =~ "true_(.*)"  => 666
    name == "tailgunner" => 7
    _                    => -1

  # Higher-order functions: a(b(c()) is ...
  a . b . c  
  c $ b $ a  # pipe-line style

Итд итп. Самое главное что он expression-oriented и со статической типизацией**.

В ближайших планах переписать этот ЯП на нём же самом.

Ведутся активные переговоры с Леннартом Поттерингом по включению этого ЯП в состав systemd как средства написания юнитов.

Фичи и плюши: строгая типизация, expression-oriented, компилируемый*, есть примитивный вывод типов**. Некоторые операторы (в данный момент только print) полиморфны. Вскоре: замыкания, pattern matching, ADT, ООП с public/private/close, генерация llvm bitcode и многое другое. Циклов ещё нет, поэтому используйте рекурсию. На данный момент поддерживается только работа с целыми числами (произвольной длины) и строками. Поддержка других типов будет хорошим упражнением для пытливого читателя.

Отдельно хотелось бы отметить будущую программу сертификации. Программа сертификации задумана чтобы повысить квалификацию программистов. Программа бесплатная и, в общем- то, никаких реальных бонусов и привилегий не даст (мы же не проприетарщики). Так что я пока не знаю зачем кто-то захочет её проходить. Может, приплачивать надо...

PS Про nanopass читал

PPS Формочку заполнил

*Эта функция не работает

**Есть, но оочень глючит.

Лицензия BDSM-like

Changelog

>>> Исходники

 , ,

true_admin
()

Python 3.4

Группа Open Source

Релиз состоялся 16 марта. Версия 3.4 включает сотни мелких улучшений и багфиксов.

Основные изменения:

  • PEP 428: новый модуль «pathlib», обеспечивающий объектно-ориентированный интерфейс доступа к файловой системе;
  • PEP 435: стандартизирован модуль «enum»;
  • PEP 436: улучшена система сборки, добавлена возможность генерации информации самоанализа для встроенных компонентов;
  • PEP 442: улучшена семантика для финализации объектов;
  • PEP 443: добавлены общие функции одиночной диспетчеризации в стандартную библиотеку;
  • PEP 445: новый C API для создания собственных методов распределения памяти;
  • PEP 446: по умолчанию дочерние подпроцессы более не наследуют файловые дескрипторы;
  • PEP 450: новый модуль «statistics», добавляющий функции математической статистики;
  • PEP 451: стандартизирован тип «ModuleSpec», предоставляющий метаданный системе импорта модулей;
  • PEP 453: в дистрибутив добавлен установщик менеджера пакетов pip;
  • PEP 454: добавлен модуль «tracemalloc», обеспечивающий трассировку распределения памяти;
  • PEP 456: добавлен новый алгоритм хеширования для строковых и двоичных данных;
  • PEP 3154: реализован новый улучшенный протокол Pickle version 4 для модуля «pickle»;
  • PEP 3156: добавлен модуль «asyncio», представляющий из себя фреймворк для асинхронного ввода/вывода.

>>> Подробности

 

anonymous
()

gPodder 4.0.0 «Iffy Kiffy Izzy Oh»

Группа Open Source

Сегодня вышла новая версия gPodder — свободного подкаст-агрегатора. Это первый релиз четвёртой ветки и подготовлен он, в первую очередь, для мобильных устройств Sailfish OS и Blackberry 10.

Основные изменения:

  • Модульная архитектура — парсер (podcastparser), ядро (gpodder-core) и модули интерфейсов (в данный момент доступны только gpodder-ui-qml и gpodder-sailfish ).
  • Переход с Python 2 на Python 3 (требуется версия >= 3.2).
  • Переход на Qt5 и QML (поддержка через PyOtherSide).
  • Добавлены новые команды для консольного интерфейса (gpo).

Пользователям десктопной версии рекомендуется оставаться на предыдущей ветке, так как многие возможности ещё не перенесены в 4.*.* (графический интерфейс, поддержка плагинов, интеграция с gpodder.net и т.д.). Исключение составляют те, кто пользуется консольным интерфейсом — он находится в модуле gpodder-core.

>>> Подробности

 , , , ,

aidan
()

Ren'Py 6.17 «In This Decade...»

Группа Игры

20 февраля состоялся релиз новой версии Ren'Py — свободного движка для создания визуальных романов, которому в этом году исполнилось 10 лет. На нем написаны такие игры как Katawa Shoujo, Juniper’s Knot, Digital: A Love Story, RE: Alistair++, Long Live The Queen, Analogue: A Hate Story, Бесконечное Лето и многие другие.

Основные изменения:

  • Переработан код для определения стилей текста:
    • ускорена их генерация;
    • упрощен синтаксис их задания (старый вариант по-прежнему поддерживается);
    • переписан инспектор стилей (Style Inspector).
  • Различные изменения в синтаксисе, добавляющие новые опции.
  • Добавлены русский и французский переводы.
  • Система для сборки пакетов под Android (RAPT — the Ren'Py Android Packaging Tool) теперь интегрирована в SDK и автоматически скачивается и обновляется при запуске сборки.
  • Исправленные баги для Android-версии:
    • Исправлен баг с невозможностью сохранения локальных данных при закрытии приложения;
    • Устранена регрессия, нарушавшая совместимость с некоторыми системами Android 2.3.
  • В функцию Preferences() добавлены новые настройки:
    • «auto-forward after click» — возможность остановки по клику в режиме автовоспроизведения;
    • «show empty window» — определяет, будет ли показано пустое окно при вызове «window show» или «window auto».
  • Многочисленные мелкие доработки и исправления.

>>> Подробности

 , , ,

aidan
()

PyPy 2.2

Группа Open Source

Вышла очередная версия PyPy — интерпретатора языка программирования Python, который написан на Python и может компилировать сам себя. PyPy 2.2 реализует поддержку языка Python версии 2.7.3. Основным нововведением является новый инкрементальный сборщик мусора, разработка которого была проспонсирована Raspberry Pi Foundation.

Основные изменения:

  • инкрементальный GC, избавляющий от большинства долгих пауз, возникавших в ходе сборки мусора;
  • изменен механизм работы счетчиков JIT (JIT counters);
  • NumPy разделен: PyPy содержит только core-модуль _numpypy. Модуль numpy перемещен в https://bitbucket.org/pypy/numpy, numpypy удален. Установка numpy производится отдельно;
  • уменьшен оверхед для non-inlined вызовов;
  • добавлена JIT-компиляция для кода, использующего sys.set_trace;
  • увеличена скорость работы JSON decoding;
  • увеличена скорость работы различных операций копирования буферов (например list-of-ints to int[] при работе с cffi);
  • полностью реализованы все отсутствующие методы os.xxx(), включая os.startfile() на Windows и небольшое количество редко используемых функций на Posix;
  • в numpy добавлено C API, которое взаимодействует с cpyext.

Скачать PyPy

>>> Подробности

 ,

encyrtid
()

Выпуск версии Django 1.6

Группа Open Source

Рады сообщить о выходе новой версии веб-фреймворка для языка Python — Django 1.6

В этой версии:

  • Улучшенная работа транзакций. Автокоммит на уровне базы данных включен по умолчанию.
  • Постоянные соединения с базой данных. По умолчанию отключено (соединения закрываются по окончанию запроса, как в более ранних версиях). Для включения параметру CONN_MAX_AGE нужно присвоить значение None.
  • Определение тестов в любом модуле, а не только в models.py и tests.py
  • Агрегация дат с учетом часового пояса.
  • Поддержка точек сохранения (savepoints) в Sqlite.
  • Бинарное поле для моделей, позволяющее хранить в базе двоичные данные.
  • Изменения в алгоритме метода save() для моделей, что позволило уменьшить количество запросов к базе данных во время сохранения модели.

Также было произведено множество мелких изменений и исправлений ошибок.

>>> Подробности

 , ,

vurdalak
()

В PyPy появилась поддержка STM

Группа Open Source

Спустя два года после начала работы в PyPy была добавлена начальная поддержка Software Transactional Memory (STM). STM позволяет избавить многопоточные приложения от блокировок.

Первые результаты показали очень хорошее масштабирование: выполнение кода в 8 потоков на неназванном четырёхъядерном процессоре увеличило скорость в 4.6 раза (процессор был с hyper-threading).

К сожалению, пока поддержка STM далека от оптимальной. Она создаёт значительные накладные расходы и на однопоточных приложениях скорость PyPy-STM не сильно отличается от CPython. Разработчики обещают в будущем исправить эту досадную проблему.

>>> Подробности

 ,

true_admin
()

Релиз Sage 5.12

Группа Open Source

Sage — это open-source система компьютерной математики, объединяющая множество существующих open-source пакетов единообразным интерфейсом при помощи Python. Она включает много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ, и ставит своей целью создание жизнеспособной альтернативы таким пакетам как Magma, Maple, Mathematica и Matlab.

В данном стабилизационном релизе выполнено 234 задачи, включающие:

>>> Подробности

 , , ,

omegatype
()

Выпущена opensource редакция PyCharm 3 — IDE для Python

Группа Open Source

Компания Jetbrains, известная целой серией IDE для различных языков программирования, объявила о выходе opensource редакции IDE для Python: PyCharm Community Edition.

Opensource версия включает:

  • редактор с функциями автодополнения, подсветки синтаксиса и ошибок;
  • автоматизицию рефакторинга кода и широкие возможности навигации по исходным текстам;
  • встроенный отладчик и поддержку unit-тестов;
  • работу с системами контроля версий;
  • широкие возможности по настройке, в том числе режим эмуляции VIM.

Коммерческая редакция IDE также включает поддержку фреймворков для веб-разработчиков; работу с javascript/css и некоторыми другими смежными технологиями; отладку на удаленных хостах; работу с базами данных из IDE.

Opensource версия доступна под лицензией Apache 2.

>>> Подробности

 , , , ,

maxcom
()

Codimension Python IDE 2.1.1

Группа Open Source

Экспериментальная среда разработки для языка Python обновилась до версии 2.1.1.

Основные изменения по сравнению с предыдущими версиями:

  • Добавлен интерфейс расширений (plugins).
  • Добавлено расширение для сборки мусора.
  • Подготовлено руководство разработчика расширений.
  • Обновлена утилита pyflakes до версии 0.7.3.
  • Исправлены несколько ошибок.
  • Улучшена работа автоматической справки по аргументам функций (calltips).
  • Улучшена поддержка подсказки для импортируемых имен для относительных import и многое другое.

Полный список изменений

Сайт проекта

Проект на google code

Руководство разработчика расширений

Пакеты для Ubuntu на launchpad

 ,

SergeySatskiy
()

Релиз PyQt 5.0

Группа Open Source

После долгого ожидания и многочисленных бета-версий вышла популярная привязка языка Python к библиотеке Qt.
PyQt5 не сохранила обратную совместимость с PyQt4, но принесла поддержку новых возможностей Qt5.

Краткий список изменений и отличий от предыдущей версии:

  • Поддержка Qt5. Теперь вы можете писать программы на python под новую версию Qt, используя все её возможности.
  • Поддерживается только Python 2.6 и выше (вплоть до 3.3).
  • PyQt5 не поддерживает никаких функций API, помеченных как устаревшие в Qt5.
  • GIL теперь освобождается только тогда, когда это необходимо.
  • Убран код вызова SIGNAL() и SLOT(). Возможно использование только API v2.
  • QtDeclarative удалён. На его замену предлагается использование QtQuick.
  • QtScript и QtScriptTools более не поддерживаются. На их замену предлагается QtQml.
  • QtXML не поддерживается, предлагается использование QXMLStreamReader / QXMLStreamWriter или встроенные средства питона.
  • Реализация QtOpenGL поддерживается только посредством трёх классов: QGLContext, QGLFormat и QGLWidget.

Подробный список изменений

>>> Подробности

 , ,

anonymoos
()

Codimension Python IDE 2.0.1

Группа Open Source

Экспериментальная среда проектирования для языка Python обновилась до версии 2.0.1, а быстрый и детальный парсер питона, разработанный в рамках проекта, обновился до версии 1.6.1.

Основные изменения по сравнению с предыдущими версиями:

  • Реализован отладчик;
  • Реализована интеграция с pyflakes;
  • Множество исправлений ошибок;
  • Общее улучшение производительности.

Сайт проекта

Проект на google code

Сравнение codimension python parser и стандартного модуля pyclbr

Пакеты для Ubuntu на launchpad

 ,

SergeySatskiy
()

django-qrauth — QR-коды для быстрого входа на сайт с мобильных устройств

Группа Open Source

Приложение django-qrauth позволяет добавить на Django-сайт возможность мгновенно входить с мобильных устройств (телефонов, планшетов, и так далее — то есть, по сути, любых мобильных устройств, на которых есть Интернет, камера и приложение для сканирования QR-кодов), сканируя авторизационный QR-код.

На мобильном устройстве при этом не требуется вводить ни адрес сайта, ни логин, ни пароль. Получить авторизационный QR-код можно хоть сразу же после авторизации на компьютере/ноутбуке.

Установить можно через pip:

pip install django-qrauth

Скринкаст

Подробное описание на русском языке

>>> Инструкция по установке и исходники

 , , qrauth, ,

MaGIc2laNTern
()

Вышел PyPy 2.0

Группа Open Source

9 мая вышла версия PyPy 2.0 с кодовым названием «Einstein Sandwich». PyPy — интерпретатор языка Python со встроенным tracing JIT. Основными изменениями по сравнению с PyPy 1.9 являются:

Планируется, что версия 2.0 послужит стабильной базой для более частых релизов (вероятно, для создания действительно быстрых интерпретаторов Ruby и PHP).

Не вошли в официальный анонс, но тоже немаловажны:

И, наконец (я знал, что вы спросите): работа по распараллеливанию PyPy ведется не слишком активно, но есть ветка STM.

Cравнение скорости PyPy и CPython на синтетических бенчмарках

>>> Подробности

 , ,

tailgunner
()

DevConf 2013 пройдет 14 июня в Москве — 71 заявка, секции Python,Ruby,JS, PHP и новая Android секция.

Группа Конференции и встречи

Напоминаем что продолжается прием заявок на доклады по python, ruby,js, php, mobi.

Интересные заявки на доклады:

Prehistoric Python: Patterns Past their Prime Lennart Regebro, автор книги «Porting to Python 3»

Tulip — новый стандарт на асинхронный код Андрей Светлов, Python Core Developer. Участвует в создании tulip.

UI нового поколения с Leap Motion и Python'ом Павел Коломиец. Любит Python3 (!), zeromq, redis и другие прогрессивные технологии.

( читать дальше... )

Полный список заявок на доклады и мастер-классы

>>> Подробности

 , , , ,

devconf
()

Архитектура системы управления пакетами в Python

Группа Документация

Опубликован перевод очередной главы из 1 тома книги «Архитектура приложений с открытым исходным кодом» — «Архитектура системы управления пакетами в Python».

При разговоре о системах установки приложений обычно упоминают о двух подходах. Первый подход, характерный для Windows и Mac OS X, заключается в распространении самодостаточных пакетов приложений, процесс установки которых не должен зависеть от внешних факторов. Эта философия упрощает процесс управления приложениями: каждое приложение имеет свое отдельное «окружение» и его установка или удаление не влияет на другие части ОС. Если приложению для работы требуется нестандартная библиотека, эта библиотека включается в состав пакета для распространения приложения.

Второй подход, характерный для систем на основе ядра Linux, рассматривает программное обеспечение как набор небольших программных компонентов, называемых пакетами. Библиотеки добавляются в пакеты, причем любой пакет с библиотекой может зависеть от других пакетов. Процесс установки приложения может включать в себя процесс поиска и установки определенных версий множества других библиотек. Эти зависимости обычно доставляются из стандартного репозитория, содержащего тысячи пакетов. Данная философия обуславливает использование в дистрибутивах Linux таких сложных систем управления пакетами, как dpkg и RPM для отслеживания зависимостей и предотвращения установки двух приложений, использующих несовместимые версии одной и той же библиотеки.

У каждого подхода есть свои достоинства и недостатки.

Система управления пакетами в Python разрабатывалась с использованием второго подхода — использовалось множество зависимостей для каждого пакета, а также система должна была быть так дружелюбна к разработчику, администратору и пользователю, как это возможно. К сожалению, она имела (и имеет) различные дефекты, обуславливающие и приводящие к разного рода проблемам: использованию неинтуитивных схем записи версий, наличию необрабатываемых файлов с данными, сложностям с повторной упаковкой и другим. Три года назад группа разработчиков Python решили повторно разработать эту систему для устранения вышеописанных проблем.

>>> Подробности

 ,

vikos
()

Релиз компилятора Python — Nuitka 0.4.2

Группа Open Source

Вышла новая версия транслятора из языка Python в представление на C++. Данное представление компилируется в исполняемый файл, использующий библиотеку libpython для управления объектами (аналогично CPython).

На данный момент Nuitka — хорошая замена интерпретатору Python, она поддерживает совместимость на уровне компиляции с CPython 2.6, 2.7 и 3.2.

В данной версии Nuitka на тесте pystone производительнее CPython на 258%, несмотря на то, что еще не сделаны все планируемые оптимизации.

Основные изменения:

  • поддержка FreeBSD;
  • опция для выявления исключений на этапе компиляции;
  • базовая поддержка Python 3.3;
  • исправления ошибок.

>>> Подробности

 nuitka, ,

Virtuos86
()

Встреча LUG Воронеж

Группа Конференции и встречи

10 апреля в 18.00 в 433 аудитории главного корпуса ВГУ пройдёт встреча пользователей Linux и СПО.

Планируется рассказ про библиотеку для построения графиков matplotlib, а так же обсуждение тематики следующих встреч.

Для входа на территорию ВГУ может потребоваться удостоверение личности.

>>> Подробности

 , , ,

xroff
()