
alex
26.05.2017
09:15:31

Eugene
26.05.2017
09:16:45
По крайней мере в чате :)
ссылки на экземпляры потомков из родительского класса - это как-то не очень. Почему он вообще должен об этом знать?

Google

alex
26.05.2017
09:20:28

GNU/Docker
26.05.2017
09:20:31
Экземпляры - нет. Классы - да.

Eugene
26.05.2017
09:22:46

Ruslan
26.05.2017
09:24:13

Eugene
26.05.2017
09:26:58

alex
26.05.2017
09:37:56
недавно, у меня была ситуация по перехвату Exception, когда надо было перехватывать родительские ошибки и оборачивать, а детей не трогать.
что-то такое:
class A():
pass
class B(A):
pass
b = B()
isinstance(b, A) # True
b.__class__.__name__ != A.__name__ # False
Сделал не очень красиво:
exception.__class__.__name__ in tuple(filter(lambda elem: elem[0].isupper(), dir(exceptions))) # Где exceptions модуль с род. классами
Искал варианты получше, пока искал накнулся на .__subclasses__() и __subclasshook__ ()

Александр
26.05.2017
10:22:33

alex
26.05.2017
10:28:34

Александр
26.05.2017
10:28:46
ну да, по уровням как бы
тогда просто не придется эти обходные пути писать имхо

alex
26.05.2017
10:37:46
Вряд ли в моем случаем это было пременимо:
внешняя либа social-auth-core==1.2.0 у неё есть модуль exception, ошибки там с описанием на английском.
другая либа наследует ошибки от social-auth-core и пишет там свои сообщения с поддержой интернализации, а мне надо сделать джанговскую middleware, где первые мне надо обернуть для интернализации, вторые пропустить как есть и по идеи не завязываться на список вторых.
Но спасибо за поддержку.

Александр
26.05.2017
10:53:57
Как обычно, все сложнее, пожалуйста)

Chikiro
26.05.2017
11:20:06
Странное решение с переводом ошибок. Разве правильно сами исключения переводить? Может, надо где-то ближе к выводу обрабатывать тексты ошибок?

Google

Александр
26.05.2017
11:51:27

alex
26.05.2017
11:53:40

vadim
26.05.2017
13:32:50
Всем привет.
Кто может поругать конфу или ткнуть в документацию. Есть некий спайдер - хотим взять scrapy, бежит примерно по 1млн ресурсов. Складывает все в csv распределенно,
первичные ключи - uuid. Потом из csv уже по celery подбираются данные в Postgres. Ну и поверх всего этого дела живет sphinx, тк нужна русская морфология.

Александр
26.05.2017
13:48:28

Roman
26.05.2017
13:49:44

Dmitry
26.05.2017
13:51:17
> из csv уже по celery подбираются данные в постгрес
зачем так?
почему сразу не положить куда-то нормально, например в nosql?

Sergey
26.05.2017
13:52:19

Roman
26.05.2017
13:52:29
например, как вы оттуда вытащите список всех их продуктов? )

b0g3r
26.05.2017
13:56:50

Sergey
26.05.2017
13:57:18

Danil
26.05.2017
13:58:15

vadim
26.05.2017
13:59:27
https://www.asus.com/ru/
дык не весь тырнет сканировать, специализированная задача, не стоит пока тема обхода или js парсить
была идея без scrapy, через ayncio + uvloop, но опять же времени на эксперементос не так много. Тем более я слышал в каких билетных сайтах неплохо scrapy вошел, может и не надо велосипедить...

Александр
26.05.2017
14:10:32

vadim
26.05.2017
14:13:13
БД - это постоянное хранилище, csv для быстрого импорта, celery это как раз для того чтобы не свалить базу, не спеша в очередь поставил задачи и пусть там импортит
а так для фронта все будет крутиться на sphinx по идее

Google

GNU/Docker
26.05.2017
14:14:40
Сфинкс это что

vadim
26.05.2017
14:14:52
двигло поисковое

GNU/Docker
26.05.2017
14:14:59
Ммм

vadim
26.05.2017
14:15:09
по сравнение с elastic раза в 3 быстрее индексирует с 0

GNU/Docker
26.05.2017
14:15:10
Не генератор доки, да?)

vadim
26.05.2017
14:15:15
нет )

Danil
26.05.2017
14:15:17

alex
26.05.2017
14:15:17
вали в еластик)

vadim
26.05.2017
14:15:20
но такой тоже есть

alex
26.05.2017
14:15:35

vadim
26.05.2017
14:16:07
запихивать в сфинкс быстрее

GNU/Docker
26.05.2017
14:40:45
beep beep ima sheep
вот мне и встретился в коде утренний сабж
опа, и ещё раз
кукой ужос.

Александр
26.05.2017
14:50:31

GNU/Docker
26.05.2017
14:50:51
Не знаю
Наверное смотря для чего.

Александр
26.05.2017
14:51:08
Ок.

Google

GNU/Docker
26.05.2017
14:51:35
То есть можно выполнять общий код не регистрируя сабклассы где-то
удобно же

Roman
26.05.2017
14:54:41

vadim
26.05.2017
14:56:47
ну scrapy-splash впендюрить можно будет
если про рендеринг js

Roman
26.05.2017
15:02:57

vadim
26.05.2017
15:04:26
согласен, но phantomjs тоже не очень
что нибудь чтобы яростно масштабировалось не видел

Sergey
26.05.2017
15:17:59

vadim
26.05.2017
16:35:20
да слышал, но еще не крутил

Serge
26.05.2017
18:32:26

vadim
26.05.2017
18:35:18
ну тут еще думали насчет mariadb, вроде отзывы положительные
все равно какое-то хранилище должно быть

Sergey
26.05.2017
20:24:53
как думаете, можно еще как-то упростить функцию partitions?
https://stackoverflow.com/a/44209393/847552

Dmitry
26.05.2017
20:39:04

Sergey
26.05.2017
20:46:49

Serge
27.05.2017
09:00:33

Sasha
27.05.2017
09:29:18
Сергей, что вы имеете в виду?

Google

Constantine
27.05.2017
11:12:58
почему не Маша?
поддерживаю тред

Serge
27.05.2017
12:03:39
почему не Маша?
Маша - красивая элегантная девушка, а Машка - подзаборная кошка, которую случайным образом кормят
Но они стараются лучше Oracle, это да

GNU/Docker
27.05.2017
12:35:39

Serge
27.05.2017
12:36:13

Diana
29.05.2017
07:00:38
ребят, а есть в телеграме чатик, где можно вопросы по питону задавать?)

Tatiana
29.05.2017
07:01:16
да и тут, вроде, вопросы задают

Diana
29.05.2017
07:02:02

Tatiana
29.05.2017
07:02:08
не за что

Diana
29.05.2017
07:02:59
да и тут, вроде, вопросы задают
у меня, наверно, вопрос дурацкий, но я попробую)
Ситуация: определяем функцию fun(a, b), в ней заводим numpy двумерный массив my_array([c, d]) , внутри этой функции определяем ещё функцию sub_fun (g, f).
Вопрос: можно ли из внутренней функции sub_fun() обращаться на чтение и запись к массиву my_array (то есть по ссылке)? Если можно, то как?
У меня не получается :(
Однако, если вместо функции fun() описать её просто как программу (и my_array определять тут), и внутри этой программы описать одну функцию — sub_fun(), то из неё можно обращаться к my_array (по ссылке, то есть чтение и запись идут именно во внешний массив my_array).

Eugene
29.05.2017
07:18:14
Покажи код. То, что ты написала - это замыкание, почему нельзя?
def fun():
arr = np.array([1,2,3])
def sub_fun():
arr[0] = 10
sub_fun()
print(arr)
И что тут может не работать?

Dmitry
29.05.2017
07:23:19
да, такое лучше кодом спрашивать @diasi - быстрее получишь ответ
https://stackoverflow.com/help/mcve, если не видела

Diana
29.05.2017
07:26:12
пробовала вот так, не работает, как нужно (не верный результат):
https://pastebin.com/4L5BUUu2