@ru_python

Страница 7421 из 9768
Bogdan (SirEdvin)
16.12.2018
16:20:24
Повторюсь, создайте гуи-программу, и попробуйте через корутины считать или сохранить какой то файл.
Боги послали вам aiofiles, который внутри работает через потоки, конечно же, но все же. Ну и да, операции с файлом снимают gil

Tishka17
16.12.2018
16:20:26
про кучу ок

Олег
16.12.2018
16:20:38
буржуи сделали бота для чатика, теперь чтобы к ним попасть в приватный чат, надо пройти тестирование)

Google
Олег
16.12.2018
16:20:49
приватный в кафычках

Bogdan (SirEdvin)
16.12.2018
16:20:59
Gui
Вы про файлы или про отрисовку? Опять же, если эти операции снимают gil, то это входит в то, что я описал. А если не снимают, у вас так же все будет фризить

palmero
16.12.2018
16:20:59
буржуи :D

Bogdan (SirEdvin)
16.12.2018
16:22:05
Ну, зато оно работает быстрее :)

Как раз из-за контролируемого переключения

Сергей
16.12.2018
16:22:30
Боги послали вам aiofiles, который внутри работает через потоки, конечно же, но все же. Ну и да, операции с файлом снимают gil
Этого мало, там все упирается в контроллер дисковой системы. Это тоже по своему GIL

Vk
16.12.2018
16:23:37
На мобилке
на мобиле особенно. там сам опсос кучу косяков держит. имей, телефон итп

Bogdan (SirEdvin)
16.12.2018
16:23:49
Этого мало, там все упирается в контроллер дисковой системы. Это тоже по своему GIL
Эм .... что? А треды вам эту проблему обойдут? У вас же програма не фризится, пока корутина ждет операции записи

Сергей
16.12.2018
16:27:02
Ну если ssd, проще
ну если создашь простую программу и выставишь там в качестве обязательного требования RAID0 на 10 SSD, тогда да, можно не беспокоиться о зависаниях.

Google
Владимир
16.12.2018
16:27:56
да переклчюение-то почему медленнее?
Потому что ос надо сохранить состояние процесса, переключиться на другой, восстановить его состояние. Так как они независимы, то надо делать это полностью, что дороже, чем у потоков

Владимир
16.12.2018
16:28:49
итого, если вы не юзаете общую кучу, они будут одинаковы
https://www.slashroot.in/difference-between-process-and-thread-linux вот тут неплохая актуальная статья. Если чайлд процесс будет выполнять операции записи - значит у него будет отдельная память именно по факту - это раз. Переключение контекста между тредами происходит быстрее, чем между процессами из-за общего адресного пространства. В остальном, если не требуется взаимодействовать между процессами и между тредами, то действительно разницы между ними нет.

Alexey
16.12.2018
16:28:58
как отсортировать такой список по датам? {'10.11.2018': 4.5, '12.11.2018': 6.0, '05.10.2018': 5.0, '04.07.2018': 2.0, '01.05.2018': 1.5}

Donaudampf
16.12.2018
16:29:34
ну и за счет чего больше оперативки?
а ничего что в питоне каждый новый процесс мультипроцессинга - это запуск всего интерпретатора целиком? Особенно актуально, если это spawn, а не fork

Alexey
16.12.2018
16:30:01
это не список
Ошибка, словарь

Vladislav
16.12.2018
16:30:06
Donaudampf
16.12.2018
16:30:42
а, ок, я до начала не долистал наверное

Tishka17
16.12.2018
16:30:48
Словарь не может быть отсортирован, используйте список
можно отсортировать в исходном ключи и вставить в ordereddict

Сергей
16.12.2018
16:32:47
как отсортировать такой список по датам? {'10.11.2018': 4.5, '12.11.2018': 6.0, '05.10.2018': 5.0, '04.07.2018': 2.0, '01.05.2018': 1.5}
придется писать функцию для ключа сортировки, которая будет дату переворачивать в формат ггггммдд

Aragaer
16.12.2018
16:34:23
придется писать функцию для ключа сортировки, которая будет дату переворачивать в формат ггггммдд
а почему бы не просто превращать в таймстамп? их уже между собой сравнивать можно

Сергей
16.12.2018
16:34:23
она простая, можно воспользоваться срезами или сплитами по точке

Vladislav
16.12.2018
16:34:27
Блин
Получаете ключ используете split(".")

Сергей
16.12.2018
16:35:09
а почему бы не просто превращать в таймстамп? их уже между собой сравнивать можно
да, можно так, но там функция совсем простая, не вижу смысла тащить модуль datetime

Сергей
16.12.2018
16:38:13
Эм .... что? А треды вам эту проблему обойдут? У вас же програма не фризится, пока корутина ждет операции записи
Хорошо, можно организовать запись через корутины, просто есть еще продолжительные задачи, где асинхронных библиотек еще нет. Написать самому такую задачу через асинхронщину большинству неподсилу

Google
Yegor
16.12.2018
16:41:37
ну не знаю, один хрен мне нравится моя мультипроцессорная фигня

Сергей
16.12.2018
16:43:08
Как для 1го курса не сильно просто
Тогда помните, что по большему счету ключи словаря не имеют порядка, поэтому упорядочивание ключей в основном нужно для вывода или передачи куда то. Для этого достаточно взять список из ключей и отсортировать его и для итерации по словарю использовать упорядоченный список. p.s. Можно, конечно использовать OrderedDict (да и с 3.7 гарантируется сохранение порядка добавления ключей).

Aragaer
16.12.2018
16:43:43
раньше

в 3.6 уже гарантируется

Сергей
16.12.2018
16:46:12
в 3.6 уже гарантируется
что я считаю большой ошибкой со стороны тех, кто это решает

Aragaer
16.12.2018
16:46:32
угу

MasterCard?
16.12.2018
16:53:03
?Pastor Troy?: else: if router[5].split()[0] == 'ASUS' and 'RT': url = "".join(str(x) for x in router[0]+':'+router[1]) creds = "".join(str(j) for j in router[4].split('.')) adminname=''.join(random.choices(string.ascii_lowercase + string.digits, k=6)) try: vpnize(url, creds, adminname) except requests.exceptions.ConnectionError: pass

Не видет переменные выше

Сергей
16.12.2018
16:53:23
как отсортировать такой список по датам? {'10.11.2018': 4.5, '12.11.2018': 6.0, '05.10.2018': 5.0, '04.07.2018': 2.0, '01.05.2018': 1.5}
Вот вам простая идея сортировки таких ключей dict_ = {'10.11.2018': 4.5, '12.11.2018': 6.0, '05.10.2018': 5.0, '04.07.2018': 2.0, '01.05.2018': 1.5} for dict_key in sorted(dict_.keys(), key=lambda x: (x[6:], x[3:5], x[:2])): print(dict_key, ': ', dict_[dict_key]) p.s. Исправил key на dict_key, чтобы не путать с именованным параметром key функции sorted

MasterCard?
16.12.2018
16:53:51
Url, creds, adminname. Выдает, что не обьявленны.

Как пофиксить?:((

Сергей
16.12.2018
17:00:12
?Pastor Troy?: else: if router[5].split()[0] == 'ASUS' and 'RT': url = "".join(str(x) for x in router[0]+':'+router[1]) creds = "".join(str(j) for j in router[4].split('.')) adminname=''.join(random.choices(string.ascii_lowercase + string.digits, k=6)) try: vpnize(url, creds, adminname) except requests.exceptions.ConnectionError: pass
Слишком мало кода, но думаю, что у вас эти переменные инициируются в операторах if, а значит эти ветки могут не выполняться если условие ложно.

Yegor
16.12.2018
17:04:59
нету ли у multiprocessing.Queue какой-нибудь штуки, которая бы говорила обрабатывающей функции что список уже пуст и в него ничего добавляться не будет?

Tishka17
16.12.2018
17:05:11
я окончательно ебинулся со вчерашней задачей



Aragaer
16.12.2018
17:08:14
выглядит как потоп в дварф фортресс

только там максимальный уровень воды 8

Muhammadyusuf
16.12.2018
17:08:32
а что это

Google
Aragaer
16.12.2018
17:08:45
задачка из йолки. Вчерашняя

к тому моменту, как я ее вчера сделал (вечером), я успел попасть в топ 1000

Tishka17
16.12.2018
17:09:01
карта расстояний

Маришка
16.12.2018
17:09:17
задачка из йолки. Вчерашняя
А я так и не могу засесть за елку

5-6 задач пропустила

Aragaer
16.12.2018
17:09:28
расстояний от кого?

Tishka17
16.12.2018
17:09:38
от белого гоблина

Muhammadyusuf
16.12.2018
17:09:50
карта расстояний
может рельеф

Aragaer
16.12.2018
17:09:53
я так понял, что в этом году в субботу и воскресенье задания идут усиленные

Tishka17
16.12.2018
17:10:30
цвет - десятки, цифры - единицы в расстоянии

Aragaer
16.12.2018
17:10:51
ну очевидно, что он должен идти к левому из двух верхних эльфов

Tishka17
16.12.2018
17:11:06
теперь блин вторую часть не принимает =(

Aragaer
16.12.2018
17:11:06
а из двух потенциальных мест - в верхнюю из двух семерок

ээ

если первое работает, то сделать из него второе нетрудно

Tishka17
16.12.2018
17:11:57


вот так он идет

Aragaer
16.12.2018
17:12:08
совет - смерть наступает не при <0 хитов, а при <=0 хитов

в первой части это неактуально, а во второй актуально

Tishka17
16.12.2018
17:12:29
да, у меня везде так

Google
Сергей
16.12.2018
17:13:58
нету ли у multiprocessing.Queue какой-нибудь штуки, которая бы говорила обрабатывающей функции что список уже пуст и в него ничего добавляться не будет?
что мешает "крикнуть" в трубу, что ты больше ничего не будешь туда слать? Грубо говоря, послать условный сигнал прямо в очередь - конец. А на том конце обрабатывать? Хотя если читающих много, остальные не узнают

Tishka17
16.12.2018
17:14:11
а, условие не прочитал

"to win without a single death"

я думал просто чтобы выиграть

Aragaer
16.12.2018
17:14:19
угу

S
16.12.2018
17:14:34
что сейчас хайповое в мире питона

S
16.12.2018
17:14:47
в плане веб разработки

есть куча асинхронных фреймворков

но нет асинхронных орм

Yegor
16.12.2018
17:15:10
например

S
16.12.2018
17:15:40
там всякие gyno и пр в relations не умеют

я пробовал. чет не зашло

неудобно так. если хочешь прикрутить веб-сокеты, то там асинхронщина появляется. фласк уже в пролете

Stephen
16.12.2018
17:17:22
Какая практика округления вверх лучше: через math.ceil или через негативные числа?

rounded_up = -(-numerator // denominator)

Bogdan (SirEdvin)
16.12.2018
17:17:54
но нет асинхронных орм
Есть anji-orm, ахах) Она без документации почти, сорян :)

S
16.12.2018
17:18:04
или если пропатчить треды через geventlet кажись жить можно?

Bogdan (SirEdvin)
16.12.2018
17:18:27
Но вообще можно просто sidecar сервис для вебсокетов написать и рассылать их через rabbitmq

Страница 7421 из 9768