@ru_python

Страница 9565 из 9768
Tishka17
11.07.2019
05:47:54
Выглядит как какой-то костыль странный

Bogdan (SirEdvin)
11.07.2019
05:50:19
точнее даже 5 синхронных запросов, которые не делают ничего)
Эм, нет? Это 5 гет запросов, которые выполняются асинхронно.

Ты как то по индейски делаешь
Потому что это тестовый пример для того, что бы проверить работу трейсинга.

elessar
11.07.2019
05:53:39
Выглядит как какой-то костыль странный
просто вывод 7z надо распарсить)

Google
Tishka17
11.07.2019
05:54:14
просто вывод 7z надо распарсить)
1. Зачем? 2. Парсь, зачем тебе сначала менять его?

elessar
11.07.2019
05:55:27
1. надо через питон делать разархивирование... т.к. 7z все форматы поддерживает...

2. я хочу на три части разбить

по этим линиям

первый из двух состоит, а второй из 10

Tishka17
11.07.2019
05:59:30
Ну разбивай

Зачем заменять-то?

elessar
11.07.2019
06:00:05
неа)

вот пишем в некотором смысле

ㅤVlad Tikhonov
11.07.2019
06:41:23
чем можно сравнить строки с версией чего либо, что бы if выдал true если 5.6.3<5.7

есть такое.. from packaging import version но не устанавливается пакет version

fn main() {}
11.07.2019
06:42:28
переведи в целое число, аля 563 и 570

Google
ㅤVlad Tikhonov
11.07.2019
06:44:47
Спасибо!

не додумался..

данный пакет использовался в коде до меня

Lexa
11.07.2019
06:56:51
переведи в целое число, аля 563 и 570
не будет работать если 5.6.13 и 5.6.3

Cykooz
11.07.2019
06:57:27
А ещё есть всякие alpha и beta релизы

Lexa
11.07.2019
06:57:53
How do I compare version numbers in Python? - Stack Overflow https://stackoverflow.com/questions/11887762/how-do-i-compare-version-numbers-in-python

лучше всего юзать packaging

Tishka17
11.07.2019
06:58:44
Он тоже не всегда работает

За пределами питона другие традиции именования версий бывают

Cykooz
11.07.2019
07:00:51
Можно вот это использовать from distutils.version import LooseVersion Или StrictVersion от туда же, если нужо соблюдение стандартов принятых в питоне.

>>> LooseVersion('5.6.13') > LooseVersion('5.6.3') True

fn main() {}
11.07.2019
07:02:35
не будет работать если 5.6.13 и 5.6.3
будет, тогда нужно 5.6.3 тоже приводить к тысячам

Виктор
11.07.2019
07:03:39
Artem
11.07.2019
07:07:03
tuple сравнивается поэлементно и так

DjigIT0s
11.07.2019
07:28:53
объясните почему если обернуть в лист выводится результат, а если обернуть в dict, то результат пустой """ names = ['Tom', 'Dick', 'Harry'] ages = [50, 35, 60] z = zip(names, ages) list(z) >>> [('Tom', 50), ('Dick', 35), ('Harry', 60)] dict(z) >>> {} """"

Aragaer
11.07.2019
07:30:54
потому что ты уже все из z вытащил

Daniil
11.07.2019
07:30:55
потому что zip возвращает генератор, ты его листом уже использовал, поэтому в дикте пусто

Google
Aragaer
11.07.2019
07:30:58
zip это генератор

Daniil
11.07.2019
07:31:48
names = ['Tom', 'Dick', 'Harry'] ages = [50, 35, 60] z = zip(names, ages) list(z) >>> [('Tom', 50), ('Dick', 35), ('Harry', 60)] dict(zip(names, ages))

так выведет норм уже

DjigIT0s
11.07.2019
07:35:23
все, понял, спасибо всем

Марк
11.07.2019
07:37:47
Никогда бы не подумал, что реализация отложенной операции может вызывать такую боль, если без оверхеда.

А оверхед - это писать демон, который в цикле будет постоянно считать время

Владимир
11.07.2019
07:41:54
Это какой-то колхоз. Почему не взять брокера и добротный фреймворк типа того же Celery. Там где одна отложенная появилась, появится еще с десяток.

Марк
11.07.2019
07:42:43
Уже взял на свою голову в виде редиски.

Tishka17
11.07.2019
07:46:04
хз зачем celery

Bogdan (SirEdvin)
11.07.2019
07:46:37
Что бы свое не писать)

Марк
11.07.2019
07:46:37
Celery, кстати, смотрел. Он там полагается строго на брокеров, а редиска не гарантирует ничего.

Дмитрий
11.07.2019
07:47:34
А почему к селери такое отношение не хорошее? В чем его проблемы?

Вроде для "воткнуть mq за 2 секунды" отличная же штука

Владимир
11.07.2019
07:48:20
хз зачем celery
Это один из вариантов. Самый распространенный. Какие твои варианты?

Марк
11.07.2019
07:48:27
Никто не говорит, что она плохая

Tishka17
11.07.2019
07:48:38
А почему к селери такое отношение не хорошее? В чем его проблемы?
лично я 1. не вижу в нем смысла 2. не представляю как его нормально юзать когда у тебя проект состоит из частей на разных языках 3. плохо представляю как рефакторить код работы с тасками

Дмитрий
11.07.2019
07:50:25
лично я 1. не вижу в нем смысла 2. не представляю как его нормально юзать когда у тебя проект состоит из частей на разных языках 3. плохо представляю как рефакторить код работы с тасками
1. Упрощает и ускоряет разработку, чтоб все завелось надо 3 строки написать 2. Согласен, оке, у меня все сервисы на питоне 3. Можешь чуть подробнее плз?

Tishka17
11.07.2019
07:51:12
1. Упрощает и ускоряет разработку, чтоб все завелось надо 3 строки написать 2. Согласен, оке, у меня все сервисы на питоне 3. Можешь чуть подробнее плз?
3. ну вот у тебя был модуль myapp.tasks.mysupertask. А теперь ты решил вынести обработчик таска в отдельный модуль и назвать его mytasks.domain1.task. Как быть?

Google
Tishka17
11.07.2019
07:52:07
1. Упрощает и ускоряет разработку, чтоб все завелось надо 3 строки написать 2. Согласен, оке, у меня все сервисы на питоне 3. Можешь чуть подробнее плз?
1. да вроде настройка celery с каким-нибудь rabbitmq занимает примерно столько же кода как прям из кода в него лезть

Tishka17
11.07.2019
07:52:53
В чем сложность? Что-то я не понимаю пока из описания где боль
он же в таск по дефолту кладет полное имя класса с модулем.

и по нему ищет

Владимир
11.07.2019
07:53:06
А ты про это

Tishka17
11.07.2019
07:53:38
там конечно можно руками, но никто так обычно не делает

Максим
11.07.2019
07:53:55
мне вот тоже проект с селери достался по наследству, вот теперь думаю как выпилить его оттуда ?

Tishka17
11.07.2019
07:54:00
в итоге вместо продуманный структуры сообщения имеем побыстрому прикрученные таски

кто-то тут ещё на стабильность celery жаловался

Bogdan (SirEdvin)
11.07.2019
07:55:10
1. да вроде настройка celery с каким-нибудь rabbitmq занимает примерно столько же кода как прям из кода в него лезть
Эм ... нет. Селери довольно много полезных штук делает по умолчанию, которые в сыром rabbitmq надо прикручивать

Владимир
11.07.2019
07:55:20
Из всего, что меня в сельдерее напрягает - это именно конфигурация

Дмитрий
11.07.2019
07:55:24
Из минусов не оч удобная дока, чтоб один момент найти пришлось два дня потратить Но это был достаточно глубокий момент деталей реализции, который в целом врят ли нужен много кому

Tishka17
11.07.2019
07:55:40
да у меня дока так и не открывается, потому что на сайте сертификат не тот =D

Bogdan (SirEdvin)
11.07.2019
07:55:47
Например, одна из довольно странных, но часто полезных штук, это то, что сообщение будет отправлено в очередь в любом случае

Bogdan (SirEdvin)
11.07.2019
07:55:59
Там тупо безконечных цикл в wait в одну секунду :)

Tishka17
11.07.2019
07:56:03
lol

Google
Bogdan (SirEdvin)
11.07.2019
07:56:19
Из-за этого, если брокер не доступен, можно ловить веселые фризы)

Марк
11.07.2019
07:56:34
Я слабо знаю селери, но меня откровенно выбешивает навязывание своей архитектуры. Либо так, либо нахуй иди. Блядь, это же просто ебаная продвинутая труба, а не хуй с яицами. Эту трубу я хочу подключить в любом месте без выебонов и боли. Но нихуя

Bogdan (SirEdvin)
11.07.2019
07:57:16
Мы, собственно, так это и обнаружили, когда у нас тесты зависали на несколько часов из-за того, что кто-то не замокал задачи)

Bogdan (SirEdvin)
11.07.2019
07:57:53
например?
Очереди по умолчанию всегда durable, например

Марк
11.07.2019
07:58:11
нет, это не труба.
Если у нее на конце должен быть редис или мемкешед или прочая срань, то труба

Bogdan (SirEdvin)
11.07.2019
07:58:14
То есть прям можно работать с celery без нормального знания кролика, хотя бы на первыъ этапах

Селери в целом довольно хорошо (я бы сказал, даже слишком хорошо) заботится о гарантиях того, что задача будет таки в очереди

Tishka17
11.07.2019
07:58:58
То есть прям можно работать с celery без нормального знания кролика, хотя бы на первыъ этапах
ну для этого он и сделан. Вместо того чтобы учить кролика, учишь сельдерей

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