October 9th, 2015

404

nowrapt

Начал рефакторить thread_timeout, убирая wrapt. Использую functools.wrap. Очевидно не успеваю (за день переписать либу, запакетировать её, и запакетировать софтинку, которая её использует).

Наивный подход даёт
Ran 12 tests in 25.260s

FAILED (errors=4, failures=2)


О, эти благословенные тесты, позволяющие тупо потыкать код, пока все тесты не пройдут. Можно даже не паниковать и не пытаться глубинно понять что сломалось, а просто чинить, пока не начнёт получаться.

Aга, переписать точно не успеваю, потому что на декораторах с аргументами у меня пухнет голова и нифига не понятно.

Зато...

Зато я нашёл вот такой вот файлик в патчах на убунтовский wrapt:

debian/patches/do-not-use-embedded-six.py.patch
Description: Do not use embedded six.py file
Upstream is embedding six.py in his source. This patch removes such hack.
Author: Thomas Goirand
Forwarded: no

Что заставляет задуматься, что мы хотим "из пизды хомячка" (извините, из анекдота слова не выкинешь), то есть откатить патч и начать жить счастливо с локальным six'ом для локального wrapt'а.

Снова пробую его нациаить.

UPD: после отключения непоправимых улучшений, имеем:
+ SECONDS=318
++ date
+ echo '*** Finished execution of /usr/bin/build-and-provide-package at Fri Oct 9 12:21:42 UTC 2015 [running 318 seconds] ***'
*** Finished execution of /usr/bin/build-and-provide-package at Fri Oct 9 12:21:42 UTC 2015 [running 318 seconds] ***
+ exit 0
Finished: SUCCESS

И если кому-то хочется готовенький wrapt, живущий на precise, злоупотребляйте:

http://desunote.ru/f/python3-wrapt_1.8.0-5ubuntu1+0~20151009121611.3~1.gbpc4951f_amd64.deb
http://desunote.ru/f/python-wrapt_1.8.0-5ubuntu1+0~20151009121611.3~1.gbpc4951f_amd64.deb
http://desunote.ru/f/python-wrapt-doc_1.8.0-5ubuntu1+0~20151009121611.3~1.gbpc4951f_all.deb
404

(no subject)

I feel slightly uneasy when I say that I have 'six' version one point three, and there is other six, version one point one. And they are not the same sixes. I think mathematicians should get a bit of excitement after grasping the idea of 'number's version'.
404

devops'им

Ок, с wrapt'ом разобрались. Следующая задача: запакетировать thread_timeout. К сожалению, я нифига не успеваю (уже почти 4 дня, а мне ещё дома собираться, так что у меня часов 5 максимум осталось), так что в первой версии софтинки она пойдёт со "встроенной библиотекой".

Что всё равно открывает волшебный мир пакетирования питоновских программ. С учётом, что у меня даже setup.py не написан, и entry points нету...

Таким образом, план следующий:

1) Почистить текущую репу от мусора.
2) Сложить сырцы из './' в './src' или './appname'
3) Поменять формат "основного файла" так, чтобы у него появились entry points
4) Написать setup.py
5) Добавить дебиановскую часть.