@spbpython

Страница 39 из 785
Aleksandr
17.04.2016
21:37:28
Так современно )

Aleksander
17.04.2016
21:39:53
На гитхабе тоже есть)

Aleksandr
18.04.2016
12:39:30
Товарищи, может туплю, но есть ли возможность в celery к chord добавить задачу, срабатывающую в случае ошибки? Есть такое тело: chord((some_task.s(...) for _ in ...), mark_completed.s())() Оно в случае удачи вызывает mark_completed, хочется вызывать mark_failed в случае ошибки. Сейчас я это делаю переопределив базовый класс, указав там on_failure метод. Но работает только если на chord заблокироваться вызвав get(). Можно как-то более нормально?

Можно заблокироваться и обернуть это в try ... except но мне вообще чего-то не нравится этот .get() ...

Google
Aleksandr
18.04.2016
15:04:45
И, кстати, всех с 3.6

Serge
18.04.2016
15:05:00
ага, точно!

Aleksandr
18.04.2016
15:05:16
Теперь мы чуть ближе к PHP: name = "Fred" f"He said his name is {name}."

Serge
18.04.2016
15:05:31
ну уж прямо

Aleksandr
18.04.2016
15:05:34
:)

Serge
18.04.2016
15:05:45
это синтакисис из .format() практически

вообще, f-строки круто, да:)

Aleksandr
18.04.2016
15:06:48
Да, я в принципе про саму идею f-строк. Раньше постоянно забывал дублировать { и } в строках. Теперь еще и будут случайные захваты внешних переменных.

Andrey
18.04.2016
15:07:34
Дык как ты случайные то захватишь?

Aleksandr
18.04.2016
15:09:33
Так же, как бывало с { и }. Берешь ты такой config = "server { server_name {}; }".format(domain_name) и получаешь в щи. Конечно, на таком однострочнике это сразу заметишь. А теперь представь что где-то там в глубине будет какой-нибудь`blabla {somevar};`

Это не конец света. Но раз на прктике я скобки долбаные дублировать забывал, то смогу протупить с f-строкой случайно захватив переменную )

Serge
18.04.2016
15:10:47
тут речь о том, что f-строка берет имена из locals, а раньше их в format через kwargs надо было пихать

а брать из locals - не очень хорошо:)

Google
Aleksandr
18.04.2016
15:11:36
Где-то так. И если в f-строку скопирую что-то откуда-то и не услежу там {blabla} и у меня есть blabla = 10 будет печаль.

Andrey
18.04.2016
15:11:46
ну так если ты написал f"" значит нужно быть готовым =)

Aleksandr
18.04.2016
15:13:01
Я понимаю. Просто к пример привожу типичную ошибку которую я допускал. Если мне надо было сформировать какой-нибудь конфиг и я делал это через format то 2 из 10 раз я просто его копировал и забывал про экранирование фигурных скобок. А тут мне дают шанс исправить это на 4 из 10 )

Собственно в обсуждениях этой фичи как правило был срач именно на эту тему.

Andrey
18.04.2016
15:14:20
тут мы приходим к тому моменту, когда ты не используешь эту фичу, если с ней ты часто все ломаешь

Aleksandr
18.04.2016
15:15:15
ОК. Я перестану использовать f-строки. А кто-то нет и допустит такую же ошибку.

В итоге с реднем по больнице бажность увеличится )

Andrey
18.04.2016
15:17:41
кажется так можно почти про любую фичу языка сказать

что если она не совсем тривиальна, то кто-то ей что-то разломает

Aleksandr
18.04.2016
15:22:16
Верно. Поэтому всегда есть баланс. Если язык слишком умный, типа Scala, позвляющий делать много чего разными путями - шанс появления говнокода или умных людей программирующих ASCII графикой возрастает. Поэтому нельзя просто так протаскивать фичи в язык. Если и тянуть, то просто дикий musthave без коготорого тяжко, либо вещь, которая хотя бы не плодит ошибок. К примеру await, async не делают код потенциально более опасным. А f-строки - да, причем при этом не сильно чего в язык добавляют ...

Aleksandr
18.04.2016
15:36:42
вангую кучу выстрелов в ногу с этими f-строками. особенно с такими штуками >>> def foo(): ... return 20 ... >>> f'result={foo()}' 'result=20'

Aleksandr
18.04.2016
15:39:58
Тестовые фикстуры. Иногда :(

Aleksandr
18.04.2016
15:43:24
В которых в качестве expected value такая же херота :)

Serge
18.04.2016
15:43:41
о да:)

я понял, это тайный замысел гвидо: чем больше возможностей выстрелить себе в ногу, тем легче отсеивать говеных программистов:)

Aleksandr
18.04.2016
15:45:31
Каким образом отсеивать?

Serge
18.04.2016
15:45:53
на этапе эксплуатации их работы

Google
Aleksandr
18.04.2016
15:45:53
PHP отсеивает как раз других программистов )

Serge
18.04.2016
15:46:05
или code review

Aleksandr
18.04.2016
15:48:25
Че-че-че

yield from и @couroutine сильно приятнее? )

Serge
18.04.2016
15:49:16
вот async/await - это дичь
выглядит диковато, но является важным синтаксическим сахаром, как with

Aleksandr
18.04.2016
15:50:09
оно даже не свежее. Такое уже было давно в C# и еще где-то ...

Кстати, как себя f-строка ведет при bar = f"{bar}" ?

Serge
18.04.2016
15:52:15
ну проверь

Andrey
18.04.2016
15:53:02
ну напишет, что переменная не определена наверняка же

Aleksandr
18.04.2016
15:54:22
В PHP нет. Вот и интересно куда мы движемся.

Aleksandr
18.04.2016
15:54:37
@lig11 в pyenv еще не завезли. Так бы проверил.

Serge
18.04.2016
15:55:13
ой всё, теперь питон не поставить уже руками

а я говорил про pyenv:)

шаг влево и мы уже бессильны;)

Aleksandr
18.04.2016
15:55:48
Высказался? )

Serge
18.04.2016
15:55:53
yep

Aleksandr
18.04.2016
15:55:53
Есть еще такое понятия, как лень.

Serge
18.04.2016
15:55:56
:)

Google
Serge
18.04.2016
15:56:16
Есть еще такое понятия, как лень.
это потому что нет навыка ставить питон нужный;)

pyenv развращает:)

Aleksandr
18.04.2016
15:56:28
Сереж, не загоняйся )

Serge
18.04.2016
15:56:40
да ладно;)

давай чтобы лень разогнать, кто быстрее 3.6 поставит?;)

Aleksandr
18.04.2016
15:57:48
Нет, я лучше делом продолжу заниматься. Но я сделаю быстрее, так как в pyenv все-таки есть 3.6-dev )

Serge
18.04.2016
15:57:59
это нечестно:)

Admin
ERROR: S client not available

Serge
18.04.2016
15:58:02
ладно

Aleksandr
18.04.2016
15:58:31
Я хотел еще быстрее убить docker-ом.

Но там нет 3.6 :(

Serge
18.04.2016
15:58:38
погодите, а кто сказал, что он вышел

на сайте нет 3.6 даже

Aleksandr
18.04.2016
15:58:55
))

Serge
18.04.2016
15:59:01
и новости нет:)

Andrey
18.04.2016
15:59:07
азаза

Aleksandr
18.04.2016
15:59:11
в гитовом репе тоже не нашёл.

Serge
18.04.2016
15:59:18
и в what's new prerelease написано

Aleksandr
18.04.2016
15:59:26
a0 вышло )

Serge
18.04.2016
15:59:33
ля

Google
Aleksandr
18.04.2016
15:59:48
3.6.0a0 ;)

Roman
18.04.2016
16:08:02
а вот скажите мне, как этот asyncio определяет какой именно операции мы ожидаем на fd?

Dmitry
18.04.2016
17:30:22
http://www.tinypy.org/?utm_content=buffer4a6a6&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Похоже на заброшенный проект.

Что-то тихо как-то. Затишье перед piterpy? Как там подготовка?

Serge
20.04.2016
15:57:46
намана:)

Dmitry
20.04.2016
15:58:13
:)

GNU/Docker
20.04.2016
15:58:16
кек

завтра прям с работки поеду ночью

Serge
20.04.2016
15:58:55
молодец!

пости фотки нам по пути

GNU/Docker
20.04.2016
16:03:55
С армином запощу xdd

Из екб то есть селфач

Когда мы с Ваней Цыгановым ездили

Кстати почему его здесь нет?)

Aleksander
20.04.2016
17:00:23
нашел прикольный сборник по best practices https://www.quantifiedcode.com/knowledge-base/category/correctness

Serge
20.04.2016
20:58:59
Кстати почему его здесь нет?)
Очевидно же. Человек занимающийся информационной безопасностью пренебрежительно относится к самому безопасному мессенджеру:)

GNU/Docker
20.04.2016
20:59:22
Ну вот)

Он есть в телеграмме

Страница 39 из 785