
Nikita
03.05.2019
21:31:33
вот я как раз сейчас мило разлекаюсь с pikа'й

Denis
03.05.2019
21:31:34

Cykooz
03.05.2019
21:33:44
стоп celery стучится в rabbit?
Дело не в том кто стучится, а в том для чего оно. Celery - оно в основном для синхронных фреймворков. А потому её "клиентская" часть тоже "синхронная" и не может банально следить за херабитами между ней и реббитом. А раз нет херабитов, то легко просирается конект.

Tishka17
03.05.2019
21:34:02

Google

Tishka17
03.05.2019
21:34:20
Имхо на сложных проектах от него больше вреда

Cykooz
03.05.2019
21:34:28

Tishka17
03.05.2019
21:34:58
Я правда не юзал, но по беглому чтению чата ощущение, что он решает 0 задач и только добавляет проблем по сравнению с ручным использованием очереди

Cykooz
03.05.2019
21:36:10
Нормально он всё решает, только вот в случае сложных заморочек сам ты его не починишь - у него подвал довольно большой и сложный для этого

Nikita
03.05.2019
21:36:13

Cykooz
03.05.2019
21:38:25
У пики есть асинхронные интерфейсы. Ну и да - если там делать "персистентный" конект к реббиту с синхронным интерфейсом, то возможна такая же бяка. Хотя вероятно тут ещё может играть роль наличие локального haproxy - с ним у Celery конект не теряется, а вот от него до реббита - может.

Tishka17
03.05.2019
21:42:00
Вообще, у меня не было ещё проекта, где все на питоне. А в других языках чёт селери стрёмно юзать

Cykooz
03.05.2019
21:48:23
Вот переведу проект на Python 3 и попробую заменить Celery на Dramatiq - он сильно проще внутри устроен.
Мне всё равно от Celery не нужно ничего, кроме как поставить таску в очередь и выполнить её в воркере

Gtghsts
03.05.2019
21:54:50
Посоветуйте годные фреймворки для написания 2д игруль на питоне. Пайгейм и кокос не зашёл. Годот не предлагать.

Artem
03.05.2019
21:56:32
arcade может быть, но он пока сыроват

Gtghsts
03.05.2019
21:58:13

Google

Artem
03.05.2019
21:58:27
http://arcade.academy/pygame_comparison.html

Gtghsts
03.05.2019
22:01:04
Ого, спасибо, а я думал это те же яйца, буду смотреть

Nikita
03.05.2019
22:01:14

Gtghsts
03.05.2019
22:05:40
И тут ещё один вопросик:
Насколько вообще осмысленно на питоне игры писать? Как обычно нормальные люди делают: собирают исполняемый файл игры через py2exe и пропихивают куда-нибудь?

Denis
03.05.2019
22:06:35
Обычно игры пишут не на питоне

Gtghsts
03.05.2019
22:07:03
Это я знаю, да, но мы сейчас говорим о меньшинстве нормальных людей
Как бэ я же потом не смогу эту игру на сайт к себе закинуть как обычную флешку

Nikita
03.05.2019
22:10:38

Gtghsts
03.05.2019
22:11:17
Переформулирую вопрос: как мне поделиться написанной игрой?

Nikita
03.05.2019
22:13:00
скорее всего py2exe

Daniyal
03.05.2019
22:14:32
как в grequest поменять source ip? в request работает
import socket
true_socket = socket.socket
def bound_socket(*a, **k):
sock = true_socket(*a, **k)
sock.bind(("127.1.1.1", 0))
return sock
socket.socket = bound_socket
в grequest так уже не работает. В чате для новчиков ответа не получил

Phil
03.05.2019
22:31:39

Daniyal
03.05.2019
22:34:20
У тебя 2 интерфейса?
физический - один. Но меня интересует только loopback адреса, так что то, что у меня там физически, особой роли играть не должно, я так думаю

Phil
03.05.2019
22:39:11

Daniyal
03.05.2019
22:46:57
Просто дело в дефолтном маршруте скорей всего
не , не в этом точно, пакеты правильно роутились с теми же адресами на версии, в которой я использовал request. Там вылетали какие-то исклюения, программа валилась. Я хотел сейчас снова воспроизвести ошибку, что бы скинуть подрбную информацию, но почему-то сейчас все работает. Правда с того времени адреса destionation поменяли, а какие были в тот момент, когда у меня все ломалось, я не помню. В общем пока вопрос можно считать условно закрытым, раз ошибка не воспроизводится, если что, переспрошу здесь еще раз с листингом ошибки. Спасибо, что откликнулся

Phil
03.05.2019
22:52:51
??

Сергей
03.05.2019
23:11:21
https://www.youtube.com/watch?v=y3Tpm1LyXfM

Slam! 538
03.05.2019
23:43:01
Как наиболее правильней сделать счетчик, который можно будет менять внутри любой функции и который будет доступен, опять же, из любой?

Tishka17
03.05.2019
23:53:50
Передавать его во все

Roman
03.05.2019
23:54:29

Google

Slam! 538
03.05.2019
23:54:58
Сейчас я сделал через атрибут функции
Передавать его никак нельзя

Roman
03.05.2019
23:55:23

Slam! 538
03.05.2019
23:55:49
Там даже не счётчик, а булев тип

Roman
03.05.2019
23:56:00
присвой его переменной и передавай ее

Slam! 538
03.05.2019
23:56:34
Я передавать не могу) достаю из самой функции

Roman
03.05.2019
23:56:36
только булем неизменяемый, потому запихай в класс

Slam! 538
03.05.2019
23:56:56

Tishka17
03.05.2019
23:57:41

Slam! 538
03.05.2019
23:57:44
Да, думал с помощью класса сделать, но через атрибут функции проще

Tishka17
03.05.2019
23:57:50

Slam! 538
03.05.2019
23:58:05

Tishka17
03.05.2019
23:59:10
Атрибут функции плох как минимум тем, что невозможно заставить одну функцию в разных ситуациях юзать разный счетчик
В отличие от атрибута объекта

Slam! 538
03.05.2019
23:59:55
Указал два атрибута и меняешь сколько влезет

Tishka17
04.05.2019
00:00:46
Хуй
Как ты укажешь два атрибута, если функция всегда юзает один и тот же?
def x():
x.smth += 1

Slam! 538
04.05.2019
00:01:25

Google

Tishka17
04.05.2019
00:01:47
Вот сделай чтобы эта функция в двух случаях считала независимо
А вот тебе с классом:
class A:
def x(self):
self.smth += 1
Когда надо просто два инстанса создаешь и всё
А не надо - юзаешь один

Slam! 538
04.05.2019
00:03:05
Я тебя понял
Объект счетчика

Tishka17
04.05.2019
00:03:50
А если ещё и вместо smth туда сделать DI какого-то счётчика (не числа, а контейнера), то можно ещё и один будет шарить на несколько объектов без проблем в тех ситуациях когда нужно
Главное код функции не меняется. Меняется только то, как ты ее используешь

Slam! 538
04.05.2019
00:04:41
Понял, спасибо

Roman
04.05.2019
00:04:43

Slam! 538
04.05.2019
00:04:54

Roman
04.05.2019
00:05:19

Slam! 538
04.05.2019
00:05:21
f.attr = True

Roman
04.05.2019
00:18:51
Ты так и не пояснил ?
неправильно выразился, для синхронизации\передачи данных между функциями присваивай в аттрибут общий объект

Denis
04.05.2019
00:19:14

Slam! 538
04.05.2019
00:19:20
Не понимаю ?

Roman
04.05.2019
00:20:18
созданный вне функций и присваемый функциям

Slam! 538
04.05.2019
00:21:11
Мне никаких общих объектов не нужно, мне всего лишь нужен "глобальный" флаг

Google

Slam! 538
04.05.2019
00:21:26
Который я могу менять где угодно

Roman
04.05.2019
00:21:47
внутри функций?

Slam! 538
04.05.2019
00:21:52

Roman
04.05.2019
00:27:11

Slam! 538
04.05.2019
00:27:50
Нет, пользуюсь атрибутом функции из двух функций
Одна из которых - родитель этого атрибута

Denis
04.05.2019
00:29:21
А зачем тут вообще атрибуты функций?
Сделай просто переменную

Slam! 538
04.05.2019
00:31:16

Denis
04.05.2019
00:31:22

Slam! 538
04.05.2019
00:31:32
Хорошо

Tishka17
04.05.2019
00:31:37
И как функции узнают какую переменную менять?