@spbpython

Страница 414 из 785
alex
26.05.2017
09:15:31
Видел даже сервис в котором это использовалось
А вот насчёт ссылок на инстансы сабклассов я погорячился, надо пилить classmethod

Eugene
26.05.2017
09:16:45
А вот насчёт ссылок на инстансы сабклассов я погорячился, надо пилить classmethod
Все подумали, что ты писал про то, что этот метод возвращает объекты классов, а не экземпляры.

По крайней мере в чате :)

ссылки на экземпляры потомков из родительского класса - это как-то не очень. Почему он вообще должен об этом знать?

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

Eugene
26.05.2017
09:22:46
вдруг вечером захочеться написать свой isinstance
Там кстати есть методы __subclasscheck__ и __subclasshook__ для настройки поведения issubclass, но они вроде как-то завязаны на abc. В общем, странные вещи...

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
недавно, у меня была ситуация по перехвату 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: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
alex
26.05.2017
11:53:40
Странное решение с переводом ошибок. Разве правильно сами исключения переводить? Может, надо где-то ближе к выводу обрабатывать тексты ошибок?
middleware от social auth перехватывает ошибки и отправляет их messages django, надо было ловить до, имхо не стоит заморачиваться - я просто хотел написать про .__subclasses__()

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

Александр
26.05.2017
13:48:28
Всем привет. Кто может поругать конфу или ткнуть в документацию. Есть некий спайдер - хотим взять scrapy, бежит примерно по 1млн ресурсов. Складывает все в csv распределенно, первичные ключи - uuid. Потом из csv уже по celery подбираются данные в Postgres. Ну и поверх всего этого дела живет sphinx, тк нужна русская морфология.
Ну я как-то раз использовал scrapy, мне лично очень понравилось. Просто, понятно, быстрый результат, встроенные механизмы по обходу блокировок на сайтах, удобный API. Что на твой взгляд лично тебя смущает в твоем решении? (из твоего вопроса непонятно, что конкретно требуется от сообщества)

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

почему сразу не положить куда-то нормально, например в nosql?

Sergey
26.05.2017
13:52:19
b0g3r
26.05.2017
13:56:50
пачками быстрее должно быть
Ну так делайте пачками, но не через csv же

Sergey
26.05.2017
13:57:18
Ну так делайте пачками, но не через csv же
я не автор, не знаю их мотивацию предполагаю

Danil
26.05.2017
13:58:15
vadim
26.05.2017
13:59:27
Ну я как-то раз использовал scrapy, мне лично очень понравилось. Просто, понятно, быстрый результат, встроенные механизмы по обходу блокировок на сайтах, удобный API. Что на твой взгляд лично тебя смущает в твоем решении? (из твоего вопроса непонятно, что конкретно требуется от сообщества)
смущает то что, скрапи не натравливал на большое кол-во сайтов и как в куче оно будет масштабироваться, могу только на синтетике посмотреть. Поэтому хочется узнать у кого есть живой опыт и как оно правильнее.

https://www.asus.com/ru/
дык не весь тырнет сканировать, специализированная задача, не стоит пока тема обхода или js парсить

была идея без scrapy, через ayncio + uvloop, но опять же времени на эксперементос не так много. Тем более я слышал в каких билетных сайтах неплохо scrapy вошел, может и не надо велосипедить...

Александр
26.05.2017
14:10:32
смущает то что, скрапи не натравливал на большое кол-во сайтов и как в куче оно будет масштабироваться, могу только на синтетике посмотреть. Поэтому хочется узнать у кого есть живой опыт и как оно правильнее.
Для меня при таком масштабе ресурсов важны были бы следующие критерии: - отказоустойчивость механизма (например, запуск джобов из jenkins вместо одного скриптика) - прямая связь с БД - отказ от файлового хранилища - параллельность - считаю, что для этой задачи подойдет и mysql (проект простой - бд подойдет простая) - зачем что-то еще выдумывать. - независимость запросов (нельзя, чтобы упал твой скрипт и вся работа остановилась). что-то типа того.

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
вали в еластик)
так же по api будешь забирать, как со сфинксом

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
То есть можно выполнять общий код не регистрируя сабклассы где-то

удобно же

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

если про рендеринг js

Roman
26.05.2017
15:02:57
ну scrapy-splash впендюрить можно будет
оно хреново работает =(

vadim
26.05.2017
15:04:26
согласен, но phantomjs тоже не очень

что нибудь чтобы яростно масштабировалось не видел

Sergey
26.05.2017
15:17:59
согласен, но phantomjs тоже не очень
headless chrome вроде выкатили недавно, он подходит для такого?

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

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
можно попробовать деление на два заменить на сдвиг
спасибо, правда разницы не видно + скобки нужно добавлять

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

Google
Constantine
27.05.2017
11:12:58
почему не Маша?

поддерживаю тред

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

Но они стараются лучше Oracle, это да

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
https://t.me/ru_python
Спасибо)

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

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