
Tishka17
26.12.2018
10:53:45
:)

Игорь
26.12.2018
11:02:38
Такой вопрос. Использую multiprocessing. Если в подпроцессе произошла ошибка, нужно остановить выполнение кода после обработки и перейти к следующей задаче из map. Как это сделать?

Maxim
26.12.2018
11:04:09

Tishka17
26.12.2018
11:05:11
Ой

Google

Tishka17
26.12.2018
11:05:24
А что, просто завершить функцию не вариант?

Роман
26.12.2018
11:11:35
так, теперь вопрос совершенно не связанный с предыдщим
как работают псевдотерминалы?
вот я открываю пару:
master, slave = os.openpty()
и жду, что в мастер смогу писать, а из слейва читать
но это, судя по всему не так.

Alex
26.12.2018
11:14:38

Tishka17
26.12.2018
11:14:52
И через него общаются

Роман
26.12.2018
11:16:38
man 7 pty
да читал, но вот все равно непонятно
и по логике все должно работать, однако поток зависает при попытке считать из slave'а

Tishka17
26.12.2018
11:17:50
эм
зачем тебе псевдотерминалы?

Google

Роман
26.12.2018
11:19:14
пытаюсь эмулировать последовательный порт

Игорь
26.12.2018
11:21:36

Alex
26.12.2018
11:23:17

Tishka17
26.12.2018
11:23:24

Aragaer
26.12.2018
11:23:38
эээ, чот не так делаете

Tishka17
26.12.2018
11:23:52
Вообще, последовательный порт чуть сложнее, там ещё fctl всякие могут быть

Aragaer
26.12.2018
11:24:06
а, не, окнорм
это обертка такая значит

Роман
26.12.2018
11:24:15

Aragaer
26.12.2018
11:24:36
но да, они скорее всего блокируемые и надо возиться с termios, чтобы там все настроить
хм
стоп

Maxim
26.12.2018
11:25:47

Aragaer
26.12.2018
11:25:48
как планируется использовать pty для связи двух процессов?

Maxim
26.12.2018
11:26:08

Aragaer
26.12.2018
11:26:39
карочи объясняю
когда используется pty, то надо из мастера читать и в мастер писать

Роман
26.12.2018
11:27:06

Aragaer
26.12.2018
11:27:09
а от слейва надо только получить имя файла

noName
26.12.2018
11:27:26
есть варианты как юзать mtProto в pyTelegramBotAPI?

Google

Aragaer
26.12.2018
11:27:32
/me задумался
сколько раз использовал псевдотерминалы, ни разу не сталкивался с тем, чтобы пару делать
крч. Есть pty.fork
вот его используй

Tishka17
26.12.2018
11:28:28

Игорь
26.12.2018
11:28:32
банально
with Pool(processes=5) as pool:
results = \
pool.map(func, list_of_args)
и внутри func после try/except
обрабатывается ошибка и sys.exit(0)

Aragaer
26.12.2018
11:29:01
pty.fork()
Fork. Connect the child’s controlling terminal to a pseudo-terminal. Return value is (pid, fd). Note that the child gets pid 0, and the fd is invalid. The parent’s return value is the pid of the child, and fd is a file descriptor connected to the child’s controlling terminal (and also to the child’s standard input and output).

Роман
26.12.2018
11:30:03

Aragaer
26.12.2018
11:30:08
pid, fd = pty.fork()
if pid == 0:
print("hello, world")
exit(0)
data = os.read(fd)
print(data.decode())

Роман
26.12.2018
11:33:15

Aragaer
26.12.2018
11:33:39
в какую наружу?

Роман
26.12.2018
11:33:52
сек, давай объясню, что пытаюсь сделать

Lazoreth
26.12.2018
11:35:03
Подскажите пожалуйста - как запустить асинхронную функцию в синхронной без смс, регистрации и await?
Т.е. не просто запустить - а её результат получить

Арслан
26.12.2018
11:35:26
ребят, посоветуйте книгу для новичка по python, с переводом на русский язык

Dima
26.12.2018
11:35:41
Лутц xD

Николай
26.12.2018
11:35:46
Лутц

Maxim
26.12.2018
11:35:57
Лутц, да)

Dima
26.12.2018
11:36:14

Арслан
26.12.2018
11:36:19
точно?

Google

Lazoreth
26.12.2018
11:36:23

Владимир
26.12.2018
11:36:39

Dima
26.12.2018
11:36:53

Роман
26.12.2018
11:36:59
вот есть у меня небольшой сервачок, который запускается, создает псевдотерминал при помощи pty.openpty, и начинает слушать мастер, при этом при помощи os.ttyname узнает имя файла слейва, отдает его наружу(в лог) и потом другой софт, который должен работать с серийным портом, использует это имя и подключается к моему эмулятору как к реальному устройству

Lazoreth
26.12.2018
11:38:23

Роман
26.12.2018
11:38:35
Какая-то такая мысль у меня была

Admin
ERROR: S client not available

Tishka17
26.12.2018
11:38:51

Роман
26.12.2018
11:39:46
да это-то я сделаю, мне интересно, где косяк в моих размышлениях

Tishka17
26.12.2018
11:40:15
В том, что ты решил что терминал это просто файл

Dima
26.12.2018
11:41:39

Роман
26.12.2018
11:41:49

Lazoreth
26.12.2018
11:42:48

Dima
26.12.2018
11:43:41
New in version 3.7: Important: this function has been added to asyncio in Python 3.7 on a provisional basis.

Lazoreth
26.12.2018
11:44:18
сорян
:D
Нельзя до 3.7 обновлятся, пика работать перестаннет

Игорь
26.12.2018
11:45:00

Google

Tishka17
26.12.2018
11:45:44
зачем там exit?

Aragaer
26.12.2018
11:46:02
а чего не работает?

Роман
26.12.2018
11:47:19

Игорь
26.12.2018
11:47:35
а сложно в func написать return?
очень, у меня внутри func, как бы еще вызываюся другие функции и мне нужно прервать выплонение на месте возникновения ошибки сразу. Нет, можно конечно поднимать этот ретерн до самого верха, но это такое себе решение. Хотелось просто закончить работу скрипта и все

Tishka17
26.12.2018
11:47:51
ещё раз

Роман
26.12.2018
11:47:52
может быть дело в том, что и запись в мастер и чтение из слейва происходят в одном процессе?

Tishka17
26.12.2018
11:47:57
выполнение чего ты хочешь прервать?

Игорь
26.12.2018
11:48:05
func

Tishka17
26.12.2018
11:48:06

Роман
26.12.2018
11:48:44

Tishka17
26.12.2018
11:48:48
func
def func2(*a, **kw):
try:
func(*a, **kw)
except:
return

Роман
26.12.2018
11:48:50

Николай
26.12.2018
11:49:05
Всем привет.
Вопрос по алхимии, не могу найти ответ.
Есть ли какой то способо сделать предварительные операции перед тем, как совершить инициализацию и при изменении поля сделать некоторые действия
пример:
class MyTable(Base):
date = column('date', DateTime(timezone=True))
session.query(MyTable).all()
# получать дату нужного мне формата, например extract(epoch from date) as date
MyTable.date = something
# хотелось бы тут отправлять в базу после коммита, но только в виде to_timestamp({date})

Aragaer
26.12.2018
11:49:35
а ваще... пойду поиграюсь 8)

Tishka17
26.12.2018
11:52:35