?

Log in

python по русски [entries|friends|calendar]
Ру_питон

[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

чудеса и пасхальные яйца [16 May 2015|03:32am]

uzverss
мне попалась странная арифметика:

>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17

>>> 0.7-0.5-0.2
-5.551115123125783e-17

>>> (0.1+0.1+0.1-0.3)-(0.7-0.5-0.2)
1.1102230246251565e-16

>>> (0.7-0.5-0.2)-(0.1+0.1+0.1-0.3)
-1.1102230246251565e-16

зато тут магия куда то делась
>>> (0.1+0.1+0.1-0.3)+(0.7-0.5-0.2)
0.0

а кто ещё какие фокусы знает?
31 comments|post comment

Где-то так, пять - шесть, но никак не восемь.. [15 May 2015|02:55pm]

dil
По мотивам поста в ru_php, где внезапно обнаружилось, что floor(log(1000,10)) вовсе не 3, а 2. Оказывается, в питоне то же самое:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from math import log, log10, floor
>>> log10(1000)
3.0
>>> log(1000,10)
2.9999999999999996
>>> floor(log(1000,10))
2.0
25 comments|post comment

pypy бандл [02 Apr 2015|12:52pm]

zupernintendo
можно таскать как стандалон. но полный дистрибутив жирноват.
какие минимальные зависимости нужны, где то есть описание?
1 comment|post comment

Piter Py - вторая Python-конференция на Неве [04 Mar 2015|07:56pm]

denrit

Второй год подряд портал Айти-Событие.рф проводит Python-конференцию - «Piter Py», которая состоится 20 марта в Санкт-Петербурге. Конференция призвана объединить людей, небезразличных к языку программирования Python для общения и обмена опытом.

Хедлайнеры конференции:

Hynek Schlawack

CPython & Twisted core dev. PSF member. FOSS mercenary. Head of infrastructure and board representative at Variomedia.

Armin Ronacher

Flask and Jinja2 creator. Pocoo Team founder. PSF member. Developer atSplash Damage.

Так же на конференции выступят:

Иван Цыганов и  Александр Кошкин (Positive Technologies), Алексей Тремаскин и Петр Шамардин (Wargaming St.Petersburg), Иван Ремизов (Parallels), Максим Климишин (GVMachines Inc), Алексей Пирогов и Николай Телепенин (БАРС Груп), Кирилл Борисов (Яндекс), Алексей Зиновьев (Google Developer Group Russia), Григорий Петров (Digital October), Александр Козловский и Алексей Малашкевич (ponyorm.com), Александр Щепановский (Автор funcy, cacheops), Андрей Светлов (LevelUp) и Михаил Кривушин (AppCraft).


Формат:


  • Однодневная конференция в 2 параллельных потока докладов.

Типы докладов:


  • Блиц-доклад: 20 мин. (15 мин. на доклад + 5 мин. на обсуждение)

  • Двойной блиц-доклад: 40 мин. (30 мин. на доклад + 10 мин. на обсуждение)

  • Секционный доклад: 1 час (45-50 мин. на доклад + 10-15 мин. на обсуждение)

Сайт конференции:

http://piterpy.ru
post comment

Celery [решено] [19 Feb 2015|07:07pm]

innormal
Господа, добрый вечер,

Хочу попросить опытных заводчиков сельдерея подсказать где собака могла порыться, симптомы таковы:

Делаю пример из туториала на сайте (тот, который про add(x,y); return x+y), брокер - rabbitmq, там же храню результаты.
Проблема заключается в том, что таск всегда висит в состоянии 'PENDING', хотя в логах celery говорит, что

[2015-02-19 18:50:02,613: INFO/MainProcess] Received task: tasks.add[ef01472a-612d-47b0-b14a-b9223343b38f]
[2015-02-19 18:50:02,643: INFO/MainProcess] Task tasks.add[ef01472a-612d-47b0-b14a-b9223343b38f] succeeded in 0.028690864972304553s: 5

Команды 'celery inspect active', 'celery inspect scheduled' честно говорят, что очередь пуста.

Прочее:
virtualenv, Python3.4, celery 3.1.17, RabbitMQ 3.4.3, FreeBSD 10.0.

Вопрос в том, почему задача висит в этом состоянии?

UPD:
Конфиг celery:

CELERY_TIMEZONE = 'Europe/Moscow'

CELERY_IMPORTS = ("tasks", )
CELERY_RESULT_BACKEND = "amqp"
BROKER_URL = "amqp://guest:guest@localhost:5672//"
CELERY_TASK_RESULT_EXPIRES = 300
CELERY_IGNORE_RESULT = False

UPD2:
По старой доброй традиции проблема крылась не в инструменте, а в голове. Как только я привел к одному знаменателю все пароли, явки и имена пользователей, сразу все заработало как ожидалось. Впрочем, в конечном итоге я выбрал redis вместо rabbitmq по простой причине - rc.d скрипт для него заработал из коробки.
3 comments|post comment

SQLObject 2.0 [20 Dec 2014|09:36pm]

phd

Выпущен SQLObject 2.0.0. Наиболее интересные изменения:

  • Работа с микросекундами, если поддерживает БД; MariaDB поддерживает микросекунды с версии 5.3.0, MySQL с версии 5.6.4, Postgres без проблем, у SQLite проблема обратной совместимости.
  • Разработка переведена с Subversion на git, Github, Travis CI, все дела.

Появились планы на Python 3+.

3 comments|post comment

Грабли SSLные, или Как подменить класс в модуле [19 Dec 2014|03:09pm]

dil
Вкратце: старая машинка со старым питоном (2.4.3). Скрипт не может прицепиться к HTTPS-серверу, потому что питоновый _ssl по умолчанию использует прибитый гвоздиками SSLv23, поменять в этой версии питона нельзя, а сервер эти протоколы не поддерживает, ему нужен TLSv1. Подробности, если кому интересно, тут: http://ru-root.livejournal.com/2777369.html

Нагуглил, что можно написать собственную реализацию класса HTTPSConnection и на ходу подменить в модуле соответствующий класс:
import httplib
class HTTPSConnection(httplib.HTTPConnection):
...
httplib.HTTPSConnection = HTTPSConnection


Написал с использованием модуля OpenSSL. Соединение теперь устанавливается. Но скрипт вылетает с сообщением
  File "/usr/lib64/python2.4/httplib.py", line 275, in __init__
    self.fp = sock.makefile('rb', 0)
NotImplementedError: Cannot make file object of SSL.Connection

Это в HTTPResponse __init__() ломается при вызове self.fp = sock.makefile('rb', 0).

Написал аналогично свой HTTPSResponse, унаследованный от httplib.HTTPResponse, со своим __init__'ом, который делает makefile по-другому, а __init__ от родительского класса вообще не вызывает. Точно так же воткнул свой класс на ходу в модуль: httplib.HTTPResponse = HTTPSResponse.

Авотфиг, скрипт продолжает вылетать с той же ошибкой в 275 строке /usr/lib64/python2.4/httplib.py

Вопрос: что я делаю не так? Почему класс не подменился? Или он подменился, но тогда почему __init__ от родительского класса продолжает вызываться?
15 comments|post comment

WSDL в SUDS [16 Sep 2014|10:08am]

dil
По советам лучших собаководов попробовал использовать suds (0.4.1) вместо SOAPpy. Немедленно наткнулся на грабли с неопознанным типом string:
Read more...Collapse )

Насколько я понимаю, ошибка вызвана использованием soapenc:string вместо обычного xsd:string в описаниях message'й. Этот soapenc ссылается на xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/". Если в локальном файле в definitions заменить у soapenc урл на xsd'шный - xmlns:soapenc="http://www.w3.org/2001/XMLSchema", то ошибка исчезает. Но хочется таки использовать не локальный файл, а wsdl с сервера, а там я ничего поменять не могу.

Гугление показало, что ошибка типичная, должна лечиться ручным присобачиванием location к namespace посредством suds.xsd.sxbasic.Import.bind(). Причём для этого конкретного namespace оно уже даже прибито гвоздиками в suds/xsd/sxbasic.py:
#######################################################
# Static Import Bindings :-(
#######################################################
Import.bind(
    'http://schemas.xmlsoap.org/soap/encoding/',
    'suds://schemas.xmlsoap.org/soap/encoding/')

но не работает ни автоматом, ни вручную.

Альтернативный нагуглённый способ - приделать suds.xsd.doctor.ImportDoctor к клиенту. Но попытка использовать в этом докторе imp = Import('http://schemas.xmlsoap.org/soap/encoding/', location='http://www.w3.org/2001/XMLSchema') приводит к таймауту, потому что прямой доступ из локалки закрыт, а переменную среды http_proxy оно игнорирует.
А если эту XMLSchema скачать вручную и подсунуть в location в виде локального файла, на выходе получаем дамп из 1200 строк, заканчивающийся сообщением RuntimeError: maximum recursion depth exceeded.

Как эту хрень победить?!

Если кто захочет поэкспериментировать, wsdl можно взять тут.

Read more...Collapse )
post comment

WSDL в SOAPpy [12 Sep 2014|03:48pm]

dil
Пытаюсь соорудить простенький SOAP-клиент через SOAPpy. При указании wsdl в виде урла получаю ошибку парсинга:
Read more...Collapse )

А если тот же самый урл скачать wget'ом в файл и подсунуть его в SOAPpy.WSDL.Proxy(), то всё нормально парсится и работает. Но хочется использовать wsdl непосредственно с веб-сайта, на случай, если там что поменяется со временем.

Что я делаю не так?
21 comments|post comment

Нестрогий поиск подстроки [04 Jul 2014|03:16pm]

dil
Задача: определить наличие в строке некоего слова посредством нестрогого сравнения. То есть, foobar может там быть написан как foo bar, f0obar, fobar, foobar5 или ещё как-нибудь похоже.

В общих чертах эту задачу решает fuzzywuzzy посредством fuzz.partial_ratio, но к сожалению, оно работает только на коротких строках, примерно до 200 символов. На 300 уже не видит даже полностью совпадающего слова foobar.

Есть идеи, как решить эту задачу?
19 comments|post comment

Xmlrpclib and livejournal. Bug. String and number typing [18 May 2014|08:14pm]

eugene_ivanov
Подробное описание бага здесь http://ljdump.livejournal.com/12870.html

Коротко и по делу здесь:

Используя xmlrpclib, нам выдаётся объект с полями:

    e = server.LJ.XMLRPC.getevents(dochallenge(server, {
      ....
    }, Password))

    #e['events'][0]['event']


Так вот поле event получается числом, а не строкой, если в xml содержится строка с плюсом вначале, например "+9879822"
В указанном случае выдаст не строку +9879822, а число 9879822.
И это только в случае, если строка числовая. Если же будет "+87676ttstring", то будет строка.

Ещё баг проявляется при экспоненциальной записи числа.
Например, в посте содержится строка "1.6E4". Библиотека выдаст не эту строку, а число "16000.0"

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

В результате этого бага плюс пропадает.

Возможно, это баг у самого жж.

Как это победить? Использовать другую библиотеку? Варианты?
6 comments|post comment

Вакансия программиста Python. Freelance. [13 Mar 2014|11:45am]

bastet_primera
Всем - доброго дня!
Принципиально новому проекту Virtual World требуется программист-фрилансер (удаленная работа). Необходимо доработать согласно Техническому заданию, GUI редактора персонажа с открытым кодом makehuman.org, написанного на языке Python. Необходимы незначительные изменения, касающиеся интерфейса взаимодействия с пользователем.

Если Вы:
- обладаете успешным опытом разработки на Python.
- мыслите креативно
- ориентированы на блестящий результат,

Тогда ждем Ваше Резюме:
mcat87@mail.ru (просьба: все вопросы, резюме и портфолио направлять именно сюда, не в комментарии))

Техническое задание обсуждается после удаленного собеседования. Оплата договорная.
post comment

chr [17 Feb 2014|02:17pm]

poor_sysadm
А что теперь использовать в python3 вместо chr?
Вот есть у меня число 200, и мне надо записать в файл байт со значением 200, без всяческих подпрыгиваний с кодировками (файл открыт как "wb").
Это вообще возможно сделать?
1 comment|post comment

Saying Goodbye to Python [14 Feb 2014|10:19pm]

megaflop
Saying Goodbye to Python (Йэн Бикинг слился)

Про сообщества программистов (Армин Ронахер тоже слился, а мы уже почти его полюбили :)
post comment

Piter Py – первая Python-конференция на Неве. [15 Apr 2014|02:09pm]

denrit
25 апреля портал Айти-Событие.рф впервые в Санкт-Петербурге проводит Python-конференцию «Piter Py».
python_600x300
Конференция призвана объединить людей, небезразличных к языку программирования Python, для общения и обмена опытом.

Формат

  • Два параллельных потока докладов. В каждом потоке прозвучит 6 докладов.

  • Слот для доклада - 1 час (45-50 мин. на доклад + 10-15 мин. на обсуждение).


Утвержденные темы конференции

  • «Python и программирование GPU» - Ивашкевич Глеб, HPC software developer, Gero.

  • «"Вингардиум Левиоса”, или Основы декларативной магии» - Матвеенко Сергей, ведущий разработчик, Positive Technologies.

  • «Работа с ошибками. Как ловить исключения и что потом с ними делать» - Григорий Петров, технический евангелист, NPTV.

  • «Python & enterprise: сложности перевода» - Телепенин Николай, ведущий архитектор, БАРС Груп.

  • «Behavior-Driven Development» - Борисов Кирилл, архитектор ПП, БАРС Груп.

  • «Разработка на Python с применением подхода Literate Programming» - Пирогов Алексей, ведущий разработчик, БАРС Груп.

  • «SaltStack и Ansible — средства управления конфигурацией на языке Python» - Чистяков Александр, главный инженер, Git in Sky.

  • «Работаем с RabbitMQ в Python, используя kombu + gevent» - Хабибиев Ринат, Senior Python Developer.

  •  Pony ORM - маппер нового поколения» - Малашкевич Алексей, Козловский Александр, разработчики, ponyorm.com.

  • «Pyramid Traversal — правильный способ обработки URL» - Дмитрий Вахрушев, Архитектор, Thumbtack Technology

  • «Опыт передачи и обработки данных» - Денис Мекшун, Системный администратор Unix / Разработчик игр.


Piter Py

Зарегистрироваться!
post comment

Почему существует так много Питонов? [22 Jan 2014|10:15am]

megaflop
Статья с Хабра, краткий обзор основных реализаций Питона. Байткод, виртуальные машины, PyPy рулит...

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

Python TIOBE index [15 Jan 2014|11:37am]

_winnie
А что с кривой популярности питона на tiobe index? Падение в два раза за 2013 год, я волнуюсь!
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
32 comments|post comment

2% Python3 [11 Jan 2014|09:22am]

megaflop
Новогодняя истерия по поводу пятилетия тертьего питона и его двух процентов продолжается. В добавок к предыдущему посту про Python 2.8 не могу не запостить сюда характерную картинку с Хабра и не менее характерную статью с ОпенНета.

Стратегия параллельного поддержания веток Python 2 и Python 3 оказалась ошибочной

post comment

Python 2.8 [08 Jan 2014|05:09am]

megaflop
Пост на Хабре "Катастрофа Unicode в Python3" и особенно фраза в коментариях "Сейчас возникло движение за создание python2.8" сподвигли меня заглянуть в буржуйские питоновы блоги, а там...

the Gravity of Python 2
About Python 3
Alex Gaynor on Python 3

...и всё за последние дни. Приурочено конечно к пятилетию Python 3. ПЯТЬ ЛЕТ, я плАчу :(...

P.S.: тот-же Alex Gaynor в посте "PyPI Download Statistics" сравнивает количество скачиваний с PyPI для разных версий питона, и что характерно...

substring | percent_of_total_downloads
-----------+----------------------------
2.7 | 75.533%
2.6 | 15.960%
3.3 | 2.079%

два процента???
21 comments|post comment

[10 Dec 2013|09:18pm]

ignik
Есть print неведомого list'а (большого-пребольшого):
print blablabla.foo
как кошерно сделать print в строку для дальнейшей отработки по месту?
22 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]