
Sergey
24.01.2017
10:12:48
мне посоветовали как хороший канад для написания ботов на питоне
так вот
я использовал telepot чтобы вебсокетить сообщения
теперь это всё надо подсосать в имакс и сделать из этого лайв-среду

Google

Sergey
24.01.2017
10:13:44
вопрос: что нужно сделать, что питон перекомпилировал посланные ему функции на лету?

H
24.01.2017
10:16:08
джангу пробовал ставить?

Zart
24.01.2017
10:23:02

Stanislav
24.01.2017
10:24:49
Ты шо зелёный? Толстый? Худей

Zart
24.01.2017
10:25:28
это сетаптулзы давно перешли на новый тип лянчера, с новым букетом проблем

Sergey
24.01.2017
13:10:44

Belegnar
24.01.2017
13:13:07
получилось?

Alexey
24.01.2017
18:03:08
Привет
Тут же есть любители пирамиды?
Там есть механизм, когда определяешь вьюхи для ошибок, типа
@view_config(context=ValueError, route_name='blah')
Нельзя ли пирамиду запустить с каким-то флажком, чтобы отключить эти вьюхи? Чтобы тупо эксепшен выкидывался

H
24.01.2017
18:11:25
@mr_andrey_beliy

Alexey
24.01.2017
18:17:21

Dmitry
24.01.2017
18:25:51

Google

Eugine
24.01.2017
18:26:24

Dmitry
24.01.2017
18:27:34
пока не получалось у него, но пусть попробует еще :)

Zart
24.01.2017
18:48:11
раньше в пирамиде исключения при обработке реквестов перехватывались непосредственно в роутере, который делал лукап ексепшен вьюшек
в последних версиях этот механизм был вынесен в твин - https://github.com/Pylons/pyramid/blob/master/pyramid/tweens.py#L13-L66
так что если отключить или убрать этот твин, то исключения будут пролетать наружу

Alexey
24.01.2017
18:56:44
Ого
Вот за это спасибо

Zart
24.01.2017
18:58:16
глянь еще во внутрянку pyramid_exclog, может там что есть
https://github.com/Pylons/pyramid_exclog/blob/master/pyramid_exclog/__init__.py а, как и думал там просто собственный твин для перехвата
Да я охуел.
сетаптулзы давно предоставляют механизм генерации бинарников для платформ. изначально они делали обычные скрипты на позиксе, а на винде их же, но с -script.py, и копировали cli.exe/gui.exe рядом. эти заглушки запускали реальный питон.ехе из венва и передавали имя соседнего скрипта
позднее они допилили этот механизм. теперь по дефолту на винде эти ехе стабы читают скрипты из самих себя, причём зипом.
но там можно переменной окружения вернуть старый вариант, или включить еще один - генерацию .pya

Alexey
24.01.2017
19:07:16

Zart
24.01.2017
19:09:00
https://github.com/pypa/setuptools/blob/master/CHANGES.rst#v2901

Alexey
24.01.2017
19:09:14
благодарю, бро.

Zart
24.01.2017
19:09:52
http://setuptools.readthedocs.io/en/latest/easy_install.html#executables-and-launchers
официальная дока фичи
с этой хуйней к сожалению есть ряд косяков
в общем жопа там в том, что sys.executable в таком враппере указывает не на питон.ехе, а на сам бинарник. а мультипроцессинг для форка юзает это значение для запуска самого себя.... в общем там всё весело
не знаю починето или нет, но вот релоадер пирамиды точно не пахал изза этого

Alexey
24.01.2017
19:12:53
какой прекрасный балет на крыле самолёта. :)

Zart
24.01.2017
19:13:16
приходилось через py -m ... идти
pip install -U pip кстати тоже не фурычит нормально изза врапперов - он залочен во время работы и не может быть заменен свежим, но так как весь враппер сводится к "импорт пип", то это попытка заменить таким же

Google

Zart
24.01.2017
19:15:00
поэтому повторный запуск pip install -U pip импортит уже свежую версию и понимает что апдейтить не нужно и ошибку не выдает
в реестре винды на днях обнаружил прекрасное
оказывается свежие версии тройки теперь регают кроме py/pyw/pyc/pyo еще и pyz - зипованные
D:\>type hello.py
print('hello, world from ' + __file__)
D:\>py -c "import hello"
hello, world from hello.py
D:\>py hello.pyc
hello, world from hello.pyc
D:\>py -O -c "import hello"
hello, world from hello.py
D:\>py hello.pyo
hello, world from hello.pyo
D:\>py hello.pyz
hello, world from hello.pyz\__main__.py
(цпитон давным-давно умеет гонять .pyc/.pyo напрямки)
у сетаптулзов даже был ключ для сборки еггов без исходных .py файлов, чисто скомпиленные .pyc, чтобы урезать размер вдвое 8)


Alexey
25.01.2017
05:42:20
@zartsoft а теперь оказывается, если дёргать экзешник телеги — тогда он профиль ищет не рядом с экзешником, а в каталоге откуда дёрнули.
как там в винде сделать батник, чтобы он chdir делал в каталог, где сам лежит?
ну вообще это не баг, а фича, всё логично и верно. ща ещё бы батник накидать.
%0 - as the name how this batchfile was called
%~d0 - as the drive letter where this batchfile is located ('\\' in case of share)
%~p0 - as path (without the drive letter) where this batchfile is located
%~n0 - as filename (without suffix) of this batchfile
%~x0 - as filename's suffix (without filename) of this batchfile
%~a0 - as this batchfile's file attributes
%~t0 - as this batchfile's date+time
%~z0 - as this batchfile's filesize
%~dpnx0 - as this batchfile's fully qualified path+filename
Ни хуя себе у них как можно. Начинаю уважать за суровый труд администраторов на винде.

Zart
25.01.2017
08:51:07
cd "%~dp0"

Alexey
25.01.2017
08:51:28
Да-да, я уже сделал man call.

Zart
25.01.2017
08:56:53
важный нюанс - %1 от %~1 отличается тем, что ~ версия всегда стрипает кавычки вокруг пути, а обычная ведет себя как никсовые $n - т.е. передает как-есть одним аргументом

Alexey
25.01.2017
08:57:16
Да, прочитал тоже в мане, это очень хорошо, что стрипает.

Zart
25.01.2017
08:57:21
поэтому чтобы грамотно работать с путями с пробелами надо кавычить не забывать
в никсе с этим хуёво-хуёво

Alexey
25.01.2017
08:59:43
А, везде своя пиздецома.
Винда строилась с оглядкой на двадцатилетнюю историю никсов, но уже своего легаси трешака насобирала.
Кстати, в досе старом ANSI ебашило отлично благодаря ANSI.SYS драйверу оказывается. Тут интересовался пока читал про ConEmu.

Zart
25.01.2017
09:00:45
его мало кто грузил из нормальных людей

Google

Roman
25.01.2017
09:01:09

Zart
25.01.2017
09:01:19
вам кажется

Alexey
25.01.2017
09:01:23
Надо Руссиновича снова начать листать перед сном.
Вместо Кнута.

Zart
25.01.2017
09:01:48
нт изначально клепался как неюникс, да. историю помним

Roman
25.01.2017
09:01:53
вам кажется
Вваливаемся в чужой каталог и после этого владелец не может его удалить

Zart
25.01.2017
09:02:15
потому что текущий путь занят процессом
а линупс когда обзавёлся *_at функциями? и когда их в софт внедрять начнут?

Roman
25.01.2017
09:02:41

Zart
25.01.2017
09:03:03
а это не совсем верно, если открыть с шаред локами, то удалять можно
в винде мандатори и оппортунистик локи, в линупсе мандатори в юзерспейсе их вроде аще нет
претензии такие, словно это чтото плохое

Dmitry
25.01.2017
09:04:24
в винде нормально сделано примерно всё, что делал Дэйв Катлер с братухами. и говно - все остальное

Zart
25.01.2017
09:04:42
с момента как он пилил слишком многое изменилось

Dmitry
25.01.2017
09:04:48
так о чем и речь

Roman
25.01.2017
09:05:15

Zart
25.01.2017
09:05:26
у меня пара книжек по архитектуре нт была, там изначально очень сильное разделение обязанностей между компонентами системы было
позднее часть границ стёрли для скорости

Roman
25.01.2017
09:05:53

Zart
25.01.2017
09:05:54

Google

Roman
25.01.2017
09:06:08

Zart
25.01.2017
09:06:16
я кстати видел как в линуксе не удавалось удалить запущенный ирцд
как они этого добились я до сих пор не знаю, полагаю через какойнить ммап/мпротект или чтото вроде

Roman
25.01.2017
09:06:51

Zart
25.01.2017
09:06:52

Roman
25.01.2017
09:07:05
обычная передача хендлов между процессами.

Zart
25.01.2017
09:07:40
а библиотеки ква - поэтому инсталлер в винде для занятых дллок генерит список переименований и просит ребут - чтобы до загрузки юзерного говна пройтись по списку и обновить

Dmitry
25.01.2017
09:08:07

Zart
25.01.2017
09:08:16
кто-то кажется не понимает, что сокеты в винде были изначально вообще чистым юзерспейсом и к файловым хендлам отношения не имели вовсе
да и сейчас вроде не
там изначально дизайнили безопасность, потоки и юникод

Roman
25.01.2017
09:09:42

Zart
25.01.2017
09:10:50
неудачный?
т.е. ты не понимаешь даже почему он такой

Roman
25.01.2017
09:10:53