You are viewing pythonini

вечная проблем GIL

Sep. 17th, 2008 | 07:44 pm

Мало кто знает почему-то, но есть вполне живая и неплохо работающая ветка Python, в которой GIL не существует [>>>]. GIL это общий лок интерпретатора, благодаря которому, или точнее говоря вопреки которому Python вмеру быстр в малтитредных приложениях.
Tags: ,

Link | Leave a comment {2} | Share

Python-cjson: быстрая реализация json парсера

Mar. 20th, 2007 | 06:12 pm

Быстрая реализация json парсера на C++ с удобным и понятным синтаксисом.[>>>]
Код выглядит так:
import re
import cjson
import datetime
# Encoding Date objects:
def dateEncoder(d):
    assert isinstance(d, datetime.date)
    return 'new Date(Date.UTC(%d,%d,%d))'%(d.year, d.month, d.day)
json=cjson.encode([1,datetime.date(2007,1,2),2], extension=dateEncoder)
assert json=='[1, new Date(Date.UTC(2007,1,2)), 2]'
# Decoding Date objects:
re_date=re.compile('^new\sDate\(Date\.UTC\(.*?\)\)')
def dateDecoder(json,idx): json=json[idx:] m=re_date.match(json)
    if not m: raise 'cannot parse JSON string as Date object: %s'%json[idx:] args=cjson.decode('[%s]'% \
                     json[18:m.end()-2]) dt=datetime.date(*args)
    return (dt,m.end()) # must return (object, character_count) tuple

data=cjson.decode('[1, new Date(Date.UTC(2007,1,2)), 2]',
extension=dateDecoder)
assert data==[1,datetime.date(2007,1,2),2]

Link | Leave a comment {1} | Share

PyTables 2: мажорный апдейт

Mar. 17th, 2007 | 04:17 am

PyTables это не RDBMS, это средство для работы с иерархически организованными данными большого обьема. Ни в коем случае не замена SQLным базам, предназначено это дело скорее для научных или технических данных. В версии 2 (пока бета): новые типы данных, новая система построения запросов, новая система быстрых индексов. В общем все новое [>>>]
Tags: , ,

Link | Leave a comment {1} | Share

chardet: детектор кодировки текста

Mar. 17th, 2007 | 04:07 am

Собственно название говорит за себя, видимо это в продолжение предыдущего поста. Обратите внимание, только кодировки - не языка [>>>]

Link | Leave a comment {1} | Share

Python и кодировки

Mar. 17th, 2007 | 04:03 am

Сначала ссылка - самое подробное рассмотрение проблем кодировок и юникода в питоне. Внятно, но по аглицки [>>>]
Теперь от себя - у меня есть код, который мигрирует из проекта в проект последние 2 года. Он позволяет забыть про проблемы кодировок на какое-то время. Выглядит он примерно так:
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
# Конечно в нормальной жизни этих коментариев тут нет
# Загрузить кодеки и библиотеку локалей, установить дефолтную локаль согласно
# переменной окружения LC_ALL.
import locale, codecs; locale.setlocale(locale.LC_ALL, '')
# Теперь в encoding положим текущая кодировку локали.
encoding = locale.getlocale()[1]
# Если кодировка не определилась - это винды. Там полюбому UTF-8 :)
if not encoding:
    encoding = "utf-8"
# Установим дефолтную локаль. Финт с ушами reload() нужен потому что разработчики
# питона дюже умные и логично удаляют функцию setdefaultencoding при загрузке.
# Оно в общем то логично, но я же умный.
import sys;reload(sys);sys.setdefaultencoding(encoding)
# Установили кодеки для вывода в потоки согласно распорядку.
sys.stdout = codecs.getwriter(encoding)(sys.stdout, errors = "replace")
sys.stderr = codecs.getwriter(encoding)(sys.stderr, errors = "replace")

Link | Leave a comment {2} | Share

NamedTuple: новое в python2.6

Mar. 17th, 2007 | 03:51 am

Смотрите какая красота появилась в python2.6a1 [>>>]
Используется примерно так:
from collections import NamedTuple
Point = NamedTuple(‘Point’, ‘x y’)
p = Point(10, 5)
print p.x # напечатает 10
print p.y # напечатает полюбому 5
Tags: , ,

Link | Leave a comment {3} | Share

netifaces: интерфейс к ifconfig

Mar. 17th, 2007 | 03:34 am

Alastair представил наконец то свой интерфейс к внутренностям сетевого интерфейса. Пока что только на чтение, и только под OS X. На самом деле под FreeBSD тоже работает неплохо. [>>>]
Tags: , ,

Link | Leave a comment | Share

grassyknoll: полнотекстовый поисковик по HTTP

Mar. 17th, 2007 | 03:31 am

Я в панике от идеи, поэтому перевожу как есть: “Оно проиндексирует и найдет любой нафиг текст, который ты пошлешь через HTTP. Сетевое. Довольно умное. Довольно дружественное. Независящее от языка. Гладкое. Современное.” Много слов, да? На самом деле это такая странная идея - запихиваешь в него по HTTP данные, а он их индексирует и можно по ним искать. Зависит от PyLucene конечно же.

Link | Leave a comment {1} | Share

ActiveState Python 2.5

Mar. 17th, 2007 | 03:23 am

Обновился ActiveState - долгожданный переезд на ветку 2.5. Для диких, это одна из сборок python под все платформы, главное конечно под Windows. Включает в себя в том числе и кучу библиотек для работы с Win32 API и, что не менее важно, пачку документации на родном английском языке. [>>>]

Link | Leave a comment | Share

заждались?

Mar. 17th, 2007 | 03:18 am

Заждались поди, оглоеды? Сейчас будет пачка обновлений - считайте что спам.
Tags:

Link | Leave a comment | Share