Size: a a a

2020 August 15

Д

Даниил in PiterPy Meetup
это имхо конечно, но функция возвращающая или ошибку или ответ выглядит как то странно.
Не красивее ли вот так написать  ?
value, error = get_something()
источник

DB

Dima Boger in PiterPy Meetup
value = error = get_something()  # Union[Value, Exception]

if isinstance(error, Exception):
   raise error  # Exception
return value  # Union[Value, Exception]
vs
value_or_error = get_something()  # Union[Value, Exception]

if isinstance(value_or_error, Exception):
   raise value_or_error  # Exception
return value_or_error  # Value
источник

DB

Dima Boger in PiterPy Meetup
Даниил
это имхо конечно, но функция возвращающая или ошибку или ответ выглядит как то странно.
Не красивее ли вот так написать  ?
value, error = get_something()
+
источник

Б

Боброний in PiterPy Meetup
Даниил
это имхо конечно, но функция возвращающая или ошибку или ответ выглядит как то странно.
Не красивее ли вот так написать  ?
value, error = get_something()
+
источник

E

Eugene in PiterPy Meetup
Да вы чё, а как же asyncio gather? :)
источник

Б

Боброний in PiterPy Meetup
Eugene
Да вы чё, а как же asyncio gather? :)
Ору
источник

DB

Dima Boger in PiterPy Meetup
Eugene
Да вы чё, а как же asyncio gather? :)
🌚
источник

Б

Боброний in PiterPy Meetup
источник

E

Eugene in PiterPy Meetup
источник

E

Eugene in PiterPy Meetup
В общем, вы поняли, из-за дизайна asyncio, с его ошибками в футурах и вот этим всем, надо таскать ошибки по коду. И где-то они попадают в некий кэш и их тоже надо хранить и когда-то их всё же надо поднять позднее. Получается такая фигня, что либо-либо. У нас же тут пока нет монад, Optional и т.д. из коробки :)
источник

ED

Eugene Denisov in PiterPy Meetup
Dima Boger
value = error = get_something()  # Union[Value, Exception]

if isinstance(error, Exception):
   raise error  # Exception
return value  # Union[Value, Exception]
vs
value_or_error = get_something()  # Union[Value, Exception]

if isinstance(value_or_error, Exception):
   raise value_or_error  # Exception
return value_or_error  # Value
val, err = do_something()
if err is not None:
   return None, err
return do_something_more(val)
источник

E

Eugene in PiterPy Meetup
Eugene Denisov
val, err = do_something()
if err is not None:
   return None, err
return do_something_more(val)
Ну это конечно вариант, я его уже рассматривал, тут уже предлагали так (@gomonuk )

Можно подумать. Это ближе к "Optional", вот бы ещё не надо было вручную каждый раз проверять. Без "Maybe" шаблона по сути хрен редьки не слаще.
источник

ED

Eugene Denisov in PiterPy Meetup
источник

N

Nikita in PiterPy Meetup
Тут плагин для пидантика в pycharm сделали)
https://github.com/koxudaxi/pydantic-pycharm-plugin
источник
2020 August 17

А4

Андрей 42 in PiterPy Meetup
Ребята, привет! У меня есть приложение в котором GUI (PyQt) и какие-то вычисления по кнопкам разделены в разные потоки, при этом в вычислительном потоке один цикл разбит по процессам. Так вот, все это еще завернуто в .exe файл. Проблема в том, что когда запускаешь из .py файла то все ок, а когда из исполнительного то когда выполнение доходит до выполнение цикла (запускаются новые процессы) то с каждым процессом клонируется окно программы (GUI).  У кого-нибудь такое бывало? То есть каждый новый процесс выполняет все что под "if __name == '__main' ... " прописано ...
источник

OY

Oleg Yurchik in PiterPy Meetup
Андрей 42
Ребята, привет! У меня есть приложение в котором GUI (PyQt) и какие-то вычисления по кнопкам разделены в разные потоки, при этом в вычислительном потоке один цикл разбит по процессам. Так вот, все это еще завернуто в .exe файл. Проблема в том, что когда запускаешь из .py файла то все ок, а когда из исполнительного то когда выполнение доходит до выполнение цикла (запускаются новые процессы) то с каждым процессом клонируется окно программы (GUI).  У кого-нибудь такое бывало? То есть каждый новый процесс выполняет все что под "if __name == '__main' ... " прописано ...
if __name__ == '__main__': есть в главном файле?
источник

А4

Андрей 42 in PiterPy Meetup
Oleg Yurchik
if __name__ == '__main__': есть в главном файле?
ага, в конце сообщения упомянул
источник

OY

Oleg Yurchik in PiterPy Meetup
Андрей 42
Ребята, привет! У меня есть приложение в котором GUI (PyQt) и какие-то вычисления по кнопкам разделены в разные потоки, при этом в вычислительном потоке один цикл разбит по процессам. Так вот, все это еще завернуто в .exe файл. Проблема в том, что когда запускаешь из .py файла то все ок, а когда из исполнительного то когда выполнение доходит до выполнение цикла (запускаются новые процессы) то с каждым процессом клонируется окно программы (GUI).  У кого-нибудь такое бывало? То есть каждый новый процесс выполняет все что под "if __name == '__main' ... " прописано ...
А, я плохо читаю, вообще не, не выполняет. Может приложение создаётся до этого блока?
источник

А4

Андрей 42 in PiterPy Meetup
Ну как, в этом блоке лежит вызов функции main, которая лежит вне этого блока, а в main как раз окно и создается
источник

А4

Андрей 42 in PiterPy Meetup
Фишка в том, что исполнение скрипта разнится в зависимости от того запускается он из .py или из .exe
источник