
Boris
16.08.2018
11:42:18
не припомню чтобы в ирц людей банили хотя бы раз в неделю - ты чет дохуя разошелся.

Stanislav
16.08.2018
11:50:22
А эти баннеры с хабра подлые

Google

Stanislav
16.08.2018
13:07:51
https://habr.com/post/420321/
У меня несколько своих проектов с друзьями. Люблю специально делать им пассивно-агрессивные код-ревью («не мог бы ты предложить мотивацию для использования столь непродуманного решения?») и наблюдать, как это меняет наши взаимоотношения.
Я ебу Али Бабу, это что же за пидор такой.

Vladimir
16.08.2018
13:08:36
Сейчас бы в 2018 без адблока в интернет ходить.

Milton
16.08.2018
13:08:53

Boris
16.08.2018
13:08:58

Vladimir
16.08.2018
13:09:09

Milton
16.08.2018
13:09:55
Тогда хуй только рекламной сети
Т.е. уже не DP

Stanislav
16.08.2018
13:10:37

Milton
16.08.2018
13:10:51

Stanislav
16.08.2018
13:11:34

Boris
16.08.2018
13:16:25

Google

Stanislav
16.08.2018
13:18:01

Boris
16.08.2018
13:35:31
А. Я думал личный экспириенс. Там интервью не с его друзьями.

Stanislav
16.08.2018
13:38:37

Boris
16.08.2018
13:39:27
Не велика проблема. Их ни у кого нет.

Milton
16.08.2018
13:39:49

Dmitry
16.08.2018
15:13:12
а куда вы опять проебали Калаверина?
@zartsoft @murmurchik позырьте http://dpaste.com/3S38JHR
чет подозреваю в этом сне разума внутри _show_filter() адова утечка памяти при каждом вызове get_users_by_ids()

Zart
16.08.2018
15:17:57
блядь
он чо, фильтрует всех юзеров на клиенте?

Dmitry
16.08.2018
15:19:27
нет, он передает при вызове список id юзеров, для которых надо вернуть

Zart
16.08.2018
15:20:21
мм.. там горизонтально фильтруется сервером, а вертикально клиентом
если в парамах иммутаблы, то в теории ок

Dmitry
16.08.2018
15:21:33
в 22 строке users - это query алхимии
если _show_filter() не вызывать, то все ок вроде. если вызывать, то память течет. gc конечно не помогает
похоже щелкают ссылки ссылочки, и поэтому не чистится. че к чем, вкупить не могу, явно что-то копируется ссылками, но где - getattr() чтоли подкидывает

Zart
16.08.2018
15:23:20
http://docs.sqlalchemy.org/en/latest/orm/loading_columns.html#load-only-cols
по идее этот фильтр можно поменять на лоад

Dmitry
16.08.2018
15:24:00
ну там сон разума, няшность и каноничность, так не получится кмк
оно там не всё из базы
но вообще конечно надо попробовать

Google

Zart
16.08.2018
15:24:42
а вот тот гетаттр(юзер, парам) дает нам линк на объект

Dmitry
16.08.2018
15:25:08
вот и мне так кажется. и потом из-за геттатра, в родительской функции этот users повисает навсегда

Zart
16.08.2018
15:25:09
если ему устроить копи.копи..

Dmitry
16.08.2018
15:25:16
давая +3 мб на каждый вызов

Zart
16.08.2018
15:25:17
чтобы отвязать от модели

Dmitry
16.08.2018
15:25:28
copy.copy пробовал и deepcopy тоже

Zart
16.08.2018
15:26:11
сессию алхимии флушить? но в ней вроде слабые ссылки были

Dmitry
16.08.2018
15:26:16
на deepcopy начинает орать, что объект (алхимическая модель), который элемент списка users - даже не привязан к сессии
а на copy просто точно так же течет

Zart
16.08.2018
15:29:13
попробуй урезать список дефолт_вербозити до одного элемента и посмотри на каком из аттрибутов течь начинает?
да и вообще, если весь гетаттр заменить на константу...
но течь по идее может лишь там

Dmitry
16.08.2018
15:31:40
щас попробую по всякому, ага

Zart
16.08.2018
15:31:50
есть еще вопрос что происходит с тем что возвращается - освобождается ли на него реф

Dmitry
16.08.2018
15:32:08
собсно я хотел, чтобы ты подтвердил мои подозрения именно на getattr, больше вроде негде

Zart
16.08.2018
15:32:33
ну я в СА верю, там вроде вполне дефолтный квери с фильтром
если только в юзер_модели нет какой странной хуйни

Dmitry
16.08.2018
15:33:05
я проверял через gc.get_referrers(), после вызова _show_filter на users остается ссылка, даже если явно сделать del users

Zart
16.08.2018
15:34:30
я бы проверял слабой ссылкой
если мрёт, значит гц забрал

Boris
16.08.2018
16:51:30
@cadmi если ты грешишь на алхимию - напиши геттер у модели

Google

Boris
16.08.2018
16:51:53
и проверь течет ли getId() например - по предыдущему варианту царьта
ссылка на users может оставаться, потому что там у тебя может быть объект филда с референсом на объект модели с которой он связан
но это очень странно

Zart
16.08.2018
17:05:26
там течет чтото другое

Boris
16.08.2018
17:20:12
Ну там либо сессия течет, либо пора на верблюде в вифлием ехать.

Zart
16.08.2018
17:20:48
сказал как настоящий еврей

Admin
ERROR: S client not available

Boris
16.08.2018
18:18:34
@cadmi я бы кстати хто вообще по другому написал
Получил бы тапл филдов мне нужных через квери

Dmitry
16.08.2018
18:18:58
я бы тоже :)

Boris
16.08.2018
18:19:18
А потом таблично наложил в словарик
А

ShadoWalkeR
17.08.2018
13:13:00
Здравствуйте! Меня с моим вопросом послали сюда
Допустим есть файл с содержимым
import ABC
class Test:
from local_funcs import f1
from local_funcs import f2
local_funcs - один из кучи файлов, реализующих методы класса, чтобы не превращать в гигантскую портянку главный файл. Как мне ABC унаследовать в загружаемые методы класса? Не очень улыбается этот import пихать в каждый файл. Питон версии 2.х

vlade11115
17.08.2018
13:13:56

ShadoWalkeR
17.08.2018
13:14:41
Возможно. Если подскажете как лучше погружать методы класса - буду только рад

vlade11115
17.08.2018
13:15:58
Ну если строго погружать методы в класс, то ты сейчас миксины описал.

Zart
17.08.2018
13:18:14
это не миксины у него

vlade11115
17.08.2018
13:18:26
У него да, а я говорю как надо.

Zart
17.08.2018
13:18:35
угу

Google

ShadoWalkeR
17.08.2018
13:18:48
Может мне проще показать пример разработчиков чтобы предметно объяснить что я хочу
https://github.com/kamailio/kamailio/blob/master/misc/examples/kemi/kamailio-basic-kemi-python.py

vlade11115
17.08.2018
13:19:25

ShadoWalkeR
17.08.2018
13:20:36
Задача в том чтобы class kamailio распилить на включаемые файлы - у нас просто проекты на порядок крупней по логике и гигантский файл не вариант

vlade11115
17.08.2018
13:20:37

Denis
17.08.2018
13:20:53
Вообще большие классы это обычно признак того, что код пора переписывать

Zart
17.08.2018
13:21:32
import KSR as KSR

vlade11115
17.08.2018
13:21:35

Zart
17.08.2018
13:21:39
сасуга

ShadoWalkeR
17.08.2018
13:21:56
Я сомневаюсь что получится - они так питон встроили в качестве замены собственного С-подобного языка

Zart
17.08.2018
13:21:56

Denis
17.08.2018
13:22:26
Поэтому и обычно

vlade11115
17.08.2018
13:22:47
Смотри, разбей класс на логически разные части, вынеси по разным классам, а в конце сделай класс который это всё соберёт.
https://stackoverflow.com/questions/533631/what-is-a-mixin-and-why-are-they-useful#comment27661661_547714
A third situation is: you want to provide a lot of (not-optional) features for a class, but you want the features in separate classes (and in separate modules) so each module is about one feature (behaviour.) IOW, not for re-use, but for compartmentalization.
Твой случай.

Zart
17.08.2018
13:25:15
пирамида такое делает