Alex
Поддерживает ли sqlalchemy asyncio?
а надо? никто тебе во-первых не мешает делать блокирующий вызов к базе, в большинстве случаев накладные расходы на асинхронность могут быть выче чем синхронный запрос к базе. во-вторых никто тебе не мешает отдельные тяжелые запросы вынести в пул.
🍁 Jaŭhien
не, ну лучше хотя бы в пул выносить
Vladislav
Можно вопрос, зачем так делать?
await часто пропускается, хотел бы вычистить код от него, добавив декораторы auto_await вверх асинхронных функций
Vladislav
И вроде как надо делать anext и ловить AsyncStopIteration
просто неохота каждый раз писать await перед вызовом асинхронных функций =)
Vladislav
И вроде как надо делать anext и ловить AsyncStopIteration
Вместо result = await async_function_to_run(attr) написать result = async_function_to_run(attr)
Aidar
просто неохота каждый раз писать await перед вызовом асинхронных функций =)
Это вроде не так сложно, но сразу видно что происходит вызов асинхронной функции, вы потом сами запутаетесь
Апач
почему надо писать жЫрное слово lambda вместо того чтобы ставить =>?
Vladislav
Это вроде не так сложно, но сразу видно что происходит вызов асинхронной функции, вы потом сами запутаетесь
ну тут дело принципа, мне не нужно их запускать без await вообще никогда. Поэтому нет смысла его всегда писать.
Vladislav
это то же самое, что и писать перед обычной функцией слово wait
Vladislav
Denis
почему надо писать жЫрное слово lambda вместо того чтобы ставить =>?
Потому что Гвидо их не одобряет и хочет усложнить использование
Aidar
вот и пишу, но не работает =)
А в чем проблема в auto_await принимать курутину, делать await и возвращать результат?
Aidar
Зачем вайл?
Апач
спасибо кэп, мне интересно какой "гений" это выдумал? из λx.Term, ну так это просто убого заменять
Апач
Потому что Гвидо их не одобряет и хочет усложнить использование
Точно долбанутый, лямбды это лучшее что произошло с програмированием
Vladislav
уже пробовал. если это асинхронная функция (декорированная), то ее тоже нужно запускать только с await и весь смысл теряется. Все равно пишется await
Апач
Куда надо лезть чтобы заменить lambda на =>?
🍁 Jaŭhien
Куда надо лезть чтобы заменить lambda на =>?
Занялся бы чем-нибудь полезным
Alex
работает быстрее
какое распространенное заблуждение
Aidar
++
🍁 Jaŭhien
Есть либа на pypi с более функциональными лямбдами
🍁 Jaŭhien
название не припомню
Aidar
Асинхронщина не работает в общем случае быстрее, иногда даже медленнее
Vladislav
Куда надо лезть чтобы заменить lambda на =>?
import tokenizer. потом делать monkey-patch токенов, парсить код в ast, compile, потом импортировать его
Vladislav
забыл, еще monkey patch importlib нужно будет сделать. (пытался когда-то свой парсер написать)
Vladislav
Асинхронщина не работает в общем случае быстрее, иногда даже медленнее
она обрабатывает больше запросов чем синхронщина, если это не так, то бенчмарки врут
🍁 Jaŭhien
опа посиба
покажешь потом, ок?
Апач
если получится и не забъю
🍁 Jaŭhien
короче, не покажешь
Aidar
она обрабатывает больше запросов чем синхронщина, если это не так, то бенчмарки врут
Только в том случае, если есть io, запросы и всё что можно ожидать
Апач
И вообще n дел которые можно делать сразу
Co(n)stantine👨‍🔬
я пишу la+Tab
Vladislav
если получится и не забъю
мб чутка тебе поможет: https://github.com/vlad1777d/pythonscript/tree/dev_parser_new там есть полезная инфа. я брал за основу те модули что тебе говорил и чуть менял код
Aidar
да, именно этим я и занимаюсь =)
А, ну тогда это хороший вариант
Aidar
да, именно этим я и занимаюсь =)
Попробуй реально вызывать anext, вроде обычного некста у курутир генераторов нет
Vladislav
Попробуй реально вызывать anext, вроде обычного некста у курутир генераторов нет
там нету методов __anext__, увы, но я попробую. процентов 90 что это закончится неудачей
Alex
Так какие такие расходы?
расходы на передачу управления и работу eventloop очевидно же
Anonymous
расходы на передачу управления и работу eventloop очевидно же
И как они в сравнении с блокирующим вызовом?
Alex
https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
Alex
для ознакомления, perf-тесты в статье устарели, но общая идея должна быть понятна.
Никита
Подскажите, можно ли в sqlalchemy CheckConstraint записать в виде регулярок?
Anonymous
https://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
Че там в двух словах? ЧТо запрос на дбапи может быть тяжелым?
Alex
Че там в двух словах? ЧТо запрос на дбапи может быть тяжелым?
нет, что в общем случае твоя база данных и IO работают сильно быстрее питона. при минимальных задержках на IO асинхронные запросы не всегда эффективны.
Anonymous
нет, что в общем случае твоя база данных и IO работают сильно быстрее питона. при минимальных задержках на IO асинхронные запросы не всегда эффективны.
При минимальных асинхрон никому не нужен жуж. А вот когда отчетики пизданул, где надо подождать- уже вопрос
Alex
не понимая толком как оно работает и в каких случаях его (асинк) стоит применять.
Anonymous
не понимая толком как оно работает и в каких случаях его (асинк) стоит применять.
Светлов в одном из докладов говорил, что не нужно понимать, как работает асинк(не вашего ума дела - так понял), вы просто берете и пишете без запар. Это к слову
Alex
Мало ли чего Светлов говороил. Светлов один из авторов asyncio и aiohttp, он как минимум предубежден.
Anonymous
И еще у него экспертное мнение.
Anonymous
И яне уверен, что среди мемберов в чатике на 8к чел, есть хоть один чувак с компетенцией такой же
Апач
чем пыхтон дебажить?
Aragaer
пристальным взглядом и юнит-тестами
Апач
ясно, ничем значит
Nikita
дебаггера в том же пайчарме вполне хватает
Апач
пиратить или что?
🍁 Jaŭhien
ясно, ничем значит
От тебя зубы уже ноют, мб тебе отдохнуть пару дней? Или вообще взять другой язык, их же миллион
Steel
дебаггера в том же пайчарме вполне хватает
Есть какие-то особенные требования для дебага, чтобы людям его не хватало?
Steel
пиратить или что?
У PyCharm есть бесплатная версия. А vs code вообще опенморс.
Steel
Точнее у PyCharm есть платная версия с какими-то фишками. Большая часть функционала есть в бесплатной.
Апач
Есть какие-то особенные требования для дебага, чтобы людям его не хватало?
Стопить потоки, условные брекпоинты, заходить в дебаг при эксепшоне
Steel
Стопить потоки, условные брекпоинты, заходить в дебаг при эксепшоне
Брейкпоинты есть, мне полностью хватает. С потоками не пробовал, но было бы странно, если нельзя.