
Aragaer
20.03.2016
19:13:27
хотя не, эти два как раз по сигналу нормально скажут, записал. Ошибка будет только если ничего не успели записать, а уже сигнал

87776
20.03.2016
19:13:33
ну так в обработчике будет какой-ниьбудь sys.exit

Aragaer
20.03.2016
19:13:53
а зачем тебе в обработчике sys.exit?

87776
20.03.2016
19:14:04
ну а как оно завершит работу тогда?

Google

87776
20.03.2016
19:14:20
~test`
qeq
`#-*- coding: utf-8 -*-
import signal, sys, time
def handle(signum, frame):
print 'Alarm! job failed'
sys.exit(1)
def job(n):
data=[]
for x in xrange(n):
data.append(x**2)
time.sleep(0.1)
signal.signal(signal.SIGALRM, handle)
# Имитация простой работы, которая будет выполнена успешно
signal.alarm(3)
job(10)
print 'Job 1 done'
signal.alarm(0)
# Имитация объемной работы, которая не будет успешно выполнена
signal.alarm(3)
job(100)
print 'Job 2 done'
signal.alarm(0)`
сука

Aragaer
20.03.2016
19:14:34
ну то есть если ты хочешь "делаем важные дела, а в промежутке проверяем, что может надо перезапуститься", то маска
когда работа начинается, закрываешь sighup маской
когда прекратилась, снимаешь маску
если за это время пришел сигнал, он будет висеть и ожидать
и сработает сразу после снятия маски

87776
20.03.2016
19:17:29
signal.pthread_sigmask(signal.SIG_BLOCK, []); важный кот; signal.pthread_sigmask(signal.SIG_UNBLOCK, [])
я правильно вкурил?

Aragaer
20.03.2016
19:17:48
блокируй только тот конкретный сигнал, который надо
а с пустым списком ты ничего не блокируешь, только читаешь состояние

Google

Aragaer
20.03.2016
19:18:31
ну и я бы посмотрел, может есть контекст менеджер на
на эту тему

87776
20.03.2016
19:18:52
может дай чо прочесть, а то по документации без общего представления не очень
я понял что туда надо signal.SIGHUP надо положить

Aragaer
20.03.2016
19:19:27
по документации же
mask is a set of signal numbers (e.g. {signal.SIGINT, signal.SIGTERM}). Use range(1, signal.NSIG) for a full mask including all signals.
signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGHUP})
а вот это для идеологически правильного: https://docs.python.org/3/library/contextlib.html

87776
20.03.2016
19:23:42
третий питон..

Aragaer
20.03.2016
19:24:10
@contextmanager
def masked(signum):
signal.pthread_sigmask(signal.SIG_BLOCK, {signum})
yield
signal.pthread_sigmask(signal.SIG_UNBLOCK, {signum})
with masked(signal.SIGHUP):
do_job
да я думаю оно во втором не сильно отличается

87776
20.03.2016
19:24:30
божечки
тут еще и декораторы

Aragaer
20.03.2016
19:24:58
ну тут декоратор нужен чтобы очень просто сделать примитивный контекстменеджер
более сложный делается уже как класс с __enter__ и __exit__
аха, во втором нет pthread_sigmask
https://pypi.python.org/pypi/pysigset/0.2.1

87776
20.03.2016
19:27:26
а, черт

Aragaer
20.03.2016
19:27:31
но есть вот такое и оно дает сразу констекст менеджер

87776
20.03.2016
19:27:34
жопой смотрел и правда нет, лол

Google

Viktor
20.03.2016
22:13:51
Ребят, Я агрессивный?

Sharkus
20.03.2016
22:14:52
Вроде нет. Хотя, будет лучше, если ты предъявишь прививки и справку.

Pavel
20.03.2016
22:26:19
????
Запасаюсь.

Alex
20.03.2016
22:46:26

Viktor
20.03.2016
22:51:50
Просто мне тут сказали что я агрессивный
И я заметил в ближайшие 10 минут
Что агрюсь на кого-то уже

Boojum
20.03.2016
23:01:57
Всем привет
Вот есть матрица с векторами

Viktor
20.03.2016
23:02:45
Векторами?

Boojum
20.03.2016
23:02:51
Да

Boojum
20.03.2016
23:03:36
Вот я хотел спросить, стоит ли воспринимать вектор как буквальный вектор
Ну то есть в системе координат

Viktor
20.03.2016
23:08:50
Стоп
Что за вектор-то?
Для меня вектор в области программирования — вектора из Си++

Boojum
20.03.2016
23:10:57
Это строка в матрице
Просто, допустим, есть вектор [2, 12, 14, 1]. Это четырехмерное пространство? Как с ним работает Питон?

Viktor
20.03.2016
23:19:09
Хорошо, спрошу по-другому

Google

Viktor
20.03.2016
23:19:24
type(вектор) что дает?

Boojum
20.03.2016
23:26:09

Viktor
20.03.2016
23:44:34
А почему всё так этот напмпи используют активно?
что ето и зачем?

Boojum
20.03.2016
23:45:45
Пакет для работы с векторами и матрицами
Статистика разная

Yegor
21.03.2016
03:33:37
Привет, посоны. Никто не знает, можно ли динамически создавать описание команд бота?

Admin
ERROR: S client not available

Yegor
21.03.2016
03:33:56
По мануалу, надо написать botfather'y '/commands' и передать команды
А можно это как-то из кода сделать?

Alexander
21.03.2016
04:37:12
Н
но писал им на эту тему, толком ничего не сказали, мол мы маленькие еще

87776
21.03.2016
09:46:33

Denis 災 nobody
21.03.2016
09:47:37
это какой сайт?

87776
21.03.2016
09:49:18

Ivan
21.03.2016
09:51:52

87776
21.03.2016
09:53:36

Denis 災 nobody
21.03.2016
09:55:31

[Anonymous]
21.03.2016
09:56:58

Google

Andrey
21.03.2016
09:57:33
Как по мне - лучше инструмента нет.

Henaro
21.03.2016
10:02:24
https://regex101.com/
вот этот пока милее

Denis 災 nobody
21.03.2016
10:05:45
3 постами выше оно же ))

Henaro
21.03.2016
10:07:51
да, поздно заметил )

Yegor
21.03.2016
10:30:15
нельзя
А боты могут ботфазеру писать?

87776
21.03.2016
10:32:11
и вообще
почему загребелин админ я а ниадмин

Henaro
21.03.2016
10:33:33
особенно если сидишь под вендой

Pavel
21.03.2016
10:35:00

87776
21.03.2016
10:35:09
это не претензия
но суть в том что я тоже хочу админа

Pavel
21.03.2016
10:35:44
Админа чего?
Группы этой чтоли? Так нам там 7 человек, почему ко мне вопрос?

Sharkus
21.03.2016
11:12:53
Да кикни его, делов-то :)
Вопросы он тут задаёт, понимаешь ли.