Tishka17
интрига года )))
>>> class A: ... b=1 ... >>> a=A() >>> a.b 1 >>> a.__dict__ {}
Sergey
Я из-за них и велосипедю
A
юзал в нескольких проектах, норм работает
Tishka17
[a for a in dir(obj) if not a.startswith('__')]
методы не забудь отфильтровать ещё
Sergey
?
На модели > 40.000 либо по 1,5 минуты выкачивает, либо вообще падает
Sergey
С 504й ошибкой
Alexander
методы не забудь отфильтровать ещё
ну оставь ты хоть что-нибудь человеку поделать )))
Tishka17
https://docs.djangoproject.com/en/2.2/ref/models/meta/
Sergey
Model.__meta.get_fields() попробуй
Это вернёт сами поля. Можно получить их имена. А мне нужны значения.
Tishka17
это делаешь один раз при инициализации сериализатора
Tishka17
а дальше уже geattr по именам
Sergey
так у поля ты можешь получить название
Могу, с этим вообще не проблема.
Tishka17
ну
Tishka17
в чем тогда вопрос?
Sergey
а дальше уже geattr по именам
Вот видимо про getattr я и не знал.
Sergey
так, попробую ещё раз сформулировать.
Artem
есть вопросик почему берется последние элемент а не первый по умолчанию из любопытства спрашиваю def f(n, l = []): for i in range(n): l.append(i * i) return l print(f(2)) print(f(3, [0, 1])) f.defaults = ([], [], [],) print(f(3)) print(f.defaults)
Sergey
Пользователь в админке отмечает условные 57 строчек. Я их получаю в QuerySet. Дальше я запускаю цикл по строкам QueySet*а и получаю в цикле строку этого QuerySet*a. Дальше мне нужно в excel разложить значения строки №32 по ячейкам. Вот вопрос в том, как мне получить значения этих ячеек. Т.е. не названия полей, не сами поля как объекты, а именно значение этого field15 для строки №32. Как-то так.
Arwi
Sergey
Всё, нашёл!
A
👍
Sergey
оказывается можно вот так: for instance in QuerySet: values = instance.__dict__ Нашёл на стаке, благодаря @artemius_ua Ещё раз спасибо большое
MRY
Всем доброго дня. Пытаюсь получить аналог статической переменной но ничего не получается.. При передачи аргумента методу в итоге переменная не меняется…. Сам код:
MRY
def aws_region(self, region): default_region = 'us-east-1' if region is None: return default_region else: default_region = region return default_region Через глобальную переменную также не получается да и меня помидорами закидают за это в джаве данный вопрос я решал через статику или get-set как более элегантно решить это в python ? Данная конструкция не работает default_region = 'us-east-1' def set_aws_region(region): default_region = region
MRY
А все нашел решение правда через глобальную переменную. default_region = 'us-east-1' def aws_region(region): global default_region if region is None: return default_region default_region = region return default_region
Sergey
Можно ещё через замыкание реализовать
Sergey
Но это извращения )
Tishka17
Народ, есть идея расширить возможности писать кстомные парсеры в рамках моей либы. Пока я родил следующий код: https://github.com/Tishka17/dataclass_factory/blob/feature/pre_post_parse/tests/test_pre_post.py Вопрос: что ещё может понадобиться? Например логично кроме pre_parse иметь post_parse. Но хз что к него пихать
Tishka17
Типа будет работать обычный автоматический парсер, но потом можно что-то дообработать
Tishka17
А примере - строка в словаре превращается в список в датаклассе
м_м
странно у вас вроде вечер а такая тишина.
Konstantin
Ребят, я чет недоумеваю. Когда говорят, что шарды разносят по серверам, имеют ввиду истансы, например, постгресовские, или железки?
Konstantin
Тот же самый вопрос к репликам
Tishka17
Инстансы
Konstantin
На одной железке
Tishka17
Но скорее всего и железки
Tishka17
То есть с точки зрения логики шардировпния инстансу в целом пофиг, есть ли другие инстансы на этой железке. Но для скорости это важно
Tishka17
Так же и про надёжность реплик
Tishka17
А вообще это могут быть вообще разные датацентры ;-)
Konstantin
Тогда вытекающий вопрос. Есть таблица 20млн+(и будет дальше расти как на дрожжах) строк, хочу пошардить на одной железке. Но вот не понимаю нужно реплику для каждого шарда делать или сделать одну большую реплику от жирного мастера(и надо ли вообще хранить на мастере столько данных если с них читать не будем)
Tishka17
Смысла в шарде, если он на одной железке не очень мрооо
Daniil
Для каждого шарда делать реплику
Konstantin
просто вообще хз где спрашивать такие вещи вообще
Konstantin
Память быстро улетит в трубу
Daniil
Ну и надо правильно настроить реплицирование, чтобы отставание небольшое было
Tishka17
Почему?
Ну а за счёт чего будет выигрыш скорости?
Konstantin
Я думал над ассинхронным реплецированием
Daniil
Выигрыш в скорости запросов?
Tishka17
Но для тренировки можешь конечно на одной машине и разных виртуалках
Daniil
Записи, чтения
Daniil
Если на разных машинах, то ширина канал достаточная должна быть
Konstantin
Просто основной ботлнек у меня в том, что аналитик хочет, чтобы мы из этих данных собирали новую сущность(считаем по ним), но для этого нужен запрос который берет одну строчку из одной таблицы и ищет связные с ним данные в другой(one-to-many), считает - выплевывает сущность. Я думал сделать это статикой и по рассписанию как-то
Konstantin
Колбасить на бекенде и кидать в mongodb какую нибудь
Daniil
Можешь посмотреть в сторону Apache airflow
Daniil
Я так понял etl какой-то
Konstantin
Колбасить на бекенде и кидать в mongodb какую нибудь
а так как у монги с чтением получше, чем у постгреса(по слухам, хз на самом деле), то сортировать уже беком программно и выплевывать через api
Daniil
Extract transform load
Konstantin
Extract transform load
Да, такой процесс
м_м
электронная техника
Nikolay
В чтении много нюансов . Например можно читать асинхронно кусочками
м_м
сомневаюсь что бест практикс, игнорируются в чтение топовых решениях ПО
Nikolay
Обычный read - синхронный , но есть io_submit, который асинхронный .
Konstantin
Лан, спасибо за инфу
м_м
И часто ему это надо?
"стоит ли тратить время на автоматизацию", последнее время вспоминаю старое доброе "худая овчинка выделки не стоит" 😊
Konstantin
И часто ему это надо?
По запросу, по сути