
Tishka17
01.04.2019
05:16:26
Ну ну
Корутина повисла и всё, кердык
А тред проге не мешает

Google

lost
01.04.2019
05:16:47
я вообще-то наоборот имел ввиду(

any
01.04.2019
05:17:13

lost
01.04.2019
05:17:39
ну там много приколов, например те же самые ексепшены, о которых ты узнаешь только когда луп всё наружу выплюнет

Винни
01.04.2019
05:17:50
пацаны, пизда рулю, даже линукс поставить не могу, настолько все плохо. Винда опять распоясалась
поскольку я всегда знал, что Дуров замутил ТГ неубиваемым, оно есть таким и сейчас. Например, я не могу получить доступ к сайтам, да даже гугл не пингуется! А вот тыгэ работает, как ни в чем ни бывало. Кстати, я щас по проводу сижу, так время от времени эта шайтан-машина переключается между вафлей и проводом
с телефона все работает прекрасно, плюс линия полностью свободна, выдает тридцатку mbps

Bogdan (SirEdvin)
01.04.2019
05:18:57

Tishka17
01.04.2019
05:20:28

?? Eugene
01.04.2019
05:20:35

Alexey
01.04.2019
05:20:53

Bogdan (SirEdvin)
01.04.2019
05:22:21
100 корутин у меня часто бывает

Tishka17
01.04.2019
05:22:22

Google

LighteR
01.04.2019
05:22:22
Зачем нужны корутины тоже ещё надо суметь объяснить
Да я больше не про объяснение того как это работает внутри, а про то, что человек говорил, что не понимает зачем вообще использовать yield. Вот асинхронщина хороший пример в том плане, что тебе в любом случае приходится использовать корутины (можно конечно и на callback'ах все писать, но кто так будет делать?)

Tishka17
01.04.2019
05:22:37

?? Eugene
01.04.2019
05:24:59

Tishka17
01.04.2019
05:25:47

MIKS
01.04.2019
05:29:12
А сколько памяти занимает один поток в пайтон?

Tishka17
01.04.2019
05:30:53
Предполагаю чуть больше чем в любом другом языке
Это реальный поток ОС

lost
01.04.2019
05:32:13
ну и от платформы наверное еще будет зависеть

Bogdan (SirEdvin)
01.04.2019
05:32:24

LighteR
01.04.2019
05:33:15

lost
01.04.2019
05:33:21
если ты сравниваешь асинхронщину и трединг - предполагается что у тебя io bound, при чем тут gil

LighteR
01.04.2019
05:33:28
gil не переключается, он захватывается

Tishka17
01.04.2019
05:33:48

Bogdan (SirEdvin)
01.04.2019
05:34:22
Он отпускается и захватывается снова и снова. В итоге немного больно, и чем больше тредов, тем веселее

Tishka17
01.04.2019
05:34:32
Можно подумать у тебя в корутинах больше одного куска питоновского кода работает

Bogdan (SirEdvin)
01.04.2019
05:35:36
Но переключения дешевле и не рандомны

LighteR
01.04.2019
05:35:43

Tishka17
01.04.2019
05:36:16
А ещё асинхронность на корутинах в случае cpu-bound задач требует ручного переключения

Bogdan (SirEdvin)
01.04.2019
05:37:21

Google

Worlak
01.04.2019
05:37:25
А что лучше при Парсинга данных с сайтов, треды или асинхронщина?

Bogdan (SirEdvin)
01.04.2019
05:37:35
Асинхронщина

Toy
01.04.2019
05:37:57
в твоем случае лучше асинхронка

Bogdan (SirEdvin)
01.04.2019
05:37:58

Tishka17
01.04.2019
05:38:41

Toy
01.04.2019
05:38:57
треды лучше использовать если есть тесное общение между потоками и есть использование i/o

Bogdan (SirEdvin)
01.04.2019
05:39:01

Tishka17
01.04.2019
05:39:16
Или когда вообще независимые части
Короче, речь была о том, что плюс asyncio не так очевиден
И да, почему вы сразу о тредах. Есть процессы

lost
01.04.2019
05:40:35
с языка снял

Bogdan (SirEdvin)
01.04.2019
05:41:19

Tishka17
01.04.2019
05:41:40
И кстати, кто-то из присутствующих гонял тесты, на каком числе параллельных задач с i/o появится заметное ускорение от использования корутин вместо тредов/процессов?

LighteR
01.04.2019
05:42:10

Tishka17
01.04.2019
05:44:06

LighteR
01.04.2019
05:48:14

lost
01.04.2019
05:53:29
кто за тайпинг шарит?

Google

lost
01.04.2019
05:53:46
как можно указать аннотацию что лист возвращает только 1 элемент?
или достаточно бредовая затея?

LighteR
01.04.2019
05:54:06
можешь пример кода привести?

lost
01.04.2019
05:54:15
длина = 1

LighteR
01.04.2019
05:54:31
а зачем такой list нужен?
ну если уж надо то используй tuple
list сам по себе может быть любой длины. Поэтому такого тайпхинта существовать не может
Tuple[int]

lost
01.04.2019
05:57:11
ну это я знаю...

LighteR
01.04.2019
05:58:02
а зачем тебе именно mutable коллекция из одного элемента?

lost
01.04.2019
05:58:57
метод выплёвывает List[Dict]
но, в каких-то краевых случаях я знаю что будет всего 1 дикт внутри

LighteR
01.04.2019
06:02:22
и где тебе тогда нужен такой тайпхинт?
если метод может возвращать список больше чем из одного элемента, то текущий тайпхинт у него верный

lost
01.04.2019
06:03:49
наверное, перемудрил)

LighteR
01.04.2019
06:18:33
Можно переделать метод чтобы он возвращал Union[List[Dict], Dict], но в коде потом все равно придется делать проверку на то какой тип вернулся. Так что смысла в этом нет, проще провереть длину list'а
если возвращаемы тип зависит от типа входных параметров, то можно еще @overload использовать

Tishka17
01.04.2019
06:20:30
Есть кстати безумная идея

Google

Tishka17
01.04.2019
06:20:42
Типы с ограничениями по допустимым значениям
Например, что какая-то целая переменная бывает только от 1 до 100. Или список с длиной не больше 5

Bogdan (SirEdvin)
01.04.2019
06:21:31
Литералы есть, в екстеншинах

Tigran
01.04.2019
06:21:37
Добро пожаловать в контрактное программирование

Tishka17
01.04.2019
06:21:47
Гляну

Aragaer
01.04.2019
06:22:07
уже началось первое апреля и теперь это чатик контрактного программирования?

LighteR
01.04.2019
06:22:16
да, литералы в одной из последних версий mypy завезли

Tishka17
01.04.2019
06:26:49
уже смотрю, да