
Denis
16.06.2019
21:00:30
поставил только марку своей компании
я не видел

Pavel
16.06.2019
21:00:40

Denis
16.06.2019
21:01:03

Google

Denis
16.06.2019
21:01:40
фул претрена короче я не видел, так чтобы просто веса модели скачал и все ок

BlackAndOrange
16.06.2019
21:21:19
Обнаружил, что pylint ругается на циклические импорты
Модули лежат в одном пакете
Импорты абсолютные (вроде
from package.module import Class
)
Отставив в сторону обсуждение, что циклические импорты плохи с точки зрения дизайна — что может пойти не так?

Tishka17
16.06.2019
21:23:36
Самое просто что может - код просто не будет работать

koder
16.06.2019
21:24:42
будет писать - ImportError - имя XXX не найдено в модуле YYY

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:25:15
Я эту проблему с циклическими импортами решал, делая импорт нужного файла не в самом верху файла, а в самой функции. Какие варианты поумнее можете посоветовать?

polunin.ai???
16.06.2019
21:25:45

koder
16.06.2019
21:25:51
так что бы они оба зависели от вынесенного, но не друг от друга

polunin.ai???
16.06.2019
21:26:16
Можно переписать архитектуру полностью, чтобы один модуль не требовал другой.

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:26:17

BlackAndOrange
16.06.2019
21:26:40
Не может. Абсолютные импорты будут работать.

Google

polunin.ai???
16.06.2019
21:26:49

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:26:50

BlackAndOrange
16.06.2019
21:26:57
В модулях — схема реляционной базы данных.
Нет функций, только декларативные классы.
Так как база данных реляционная, очевидно, они сильно зависят друг от друга

koder
16.06.2019
21:28:07

BlackAndOrange
16.06.2019
21:28:34

koder
16.06.2019
21:29:02

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:29:28

BlackAndOrange
16.06.2019
21:29:35
Спасибо за идею. Пожалуй, воздержусь.
С точки зрения дизайна мне это нравится и код прекрасно работает.
Остаётся вопрос только — почему pylint ругается-то?
Только из соображений дизайна?

koder
16.06.2019
21:30:00
ты смешной
тебе три раза написали, что код - говно

BlackAndOrange
16.06.2019
21:30:19
Спасибо за конструктив.

koder
16.06.2019
21:30:20
и может валится смотря как ты будешь его импортировать

BlackAndOrange
16.06.2019
21:30:26

polunin.ai???
16.06.2019
21:30:30

BlackAndOrange
16.06.2019
21:30:32
«Как импортирую» я написал
Несколько разных источников утверждают, что абсолютные импорты работать будут.

Google

koder
16.06.2019
21:31:05
Пруф?
мне идти писать для тебя пример?

BlackAndOrange
16.06.2019
21:31:14
Нет, достаточно показать источник утверждения

koder
16.06.2019
21:31:18
не, сори, если тебе это нравится - пользуйся
источник мой опыт написания такого кода

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:32:32
Хз что это.
Пишешь ifdef "file.h" define "file.h". И endif в конце. Примерно так

koder
16.06.2019
21:33:15
модуль не будет импортироваться второй раз

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:33:24
Т.е. выполнять код файла только один раз, если ранее не была определена константа

koder
16.06.2019
21:34:07
кроме совсем печальных случаев, если ты обманешь код импорта и тот же самый модуль проимпортируешь дважды под разными именами
вот тогда будет задница

polunin.ai???
16.06.2019
21:35:31

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:35:54

koder
16.06.2019
21:37:19
через as переименовать, имеешь в виду?
нет, я уже не помню точно как у меня получалось, но что-то в духе один раз абсолютно один относительно или типа того. В итоге получается два отдельных инстанса этого модуля, каждый со своим одинаковым на вид контентом, но сразными id
import x as c - к этой проблеме не приводит

Виктор
16.06.2019
21:38:02
Нужно создать чат-бота, который бы реагировал на определённую команду в чате, а также каждые N секунд проверял кое-что (обращался к определённому серверу) и при удаче писал бы в этот же чат. Вопрос: как правильно организовать параллельное выполнение кода (в первом потоке проверка сообщений в чате на наличие команды, а во втором - обращение к серверу с определённым интервалом)? Смотрел модуль threads - вроде бы, это не то, что нужно.

koder
16.06.2019
21:38:07
в sys.modules модуль заносится по родному имени, а не по переименованному

Human
16.06.2019
21:39:42

ҠᏗℯዘ ℨℯᏗℯዘӹน
16.06.2019
21:39:54

koder
16.06.2019
21:39:56

Google

koder
16.06.2019
21:40:16
он совсем не про то

Виктор
16.06.2019
21:40:45
А это имеет смысл? В питоне же gil?
Имеет, потому что задача: по команде отдавать пользователям линк на программу, а по временному интервалу - проверять наличие обновлений этой же программы на другом сервере.

koder
16.06.2019
21:40:51

Human
16.06.2019
21:41:02

koder
16.06.2019
21:41:35

Виктор
16.06.2019
21:42:43

Human
16.06.2019
21:42:48

koder
16.06.2019
21:42:51

Виктор
16.06.2019
21:44:33

koder
16.06.2019
21:45:08
если сервер отвечает быстро - то можно все в одном потоке. Есть модуль https://docs.python.org/3/library/sched.html
@Homo_Versutus ^

Виктор
16.06.2019
21:45:47
Спасибо, вот это уже очень интересно.

koder
16.06.2019
21:46:26
делаешь одну ф-цию для чатика, одну для пулинга и запускаешь их в одном шедулере. Точно так же шаришь переменную с url. Но нужно аккуратно прописать таймауты общения с сервером

Виктор
16.06.2019
21:47:49
Сторонний сервер просто возвращает версию программы по запросу. Я её сравниваю с текущей (хранится в переменной). А сервер VK пулится. Понял, спасибо ещё раз.

Арип
16.06.2019
22:26:57
http://prntscr.com/o2oblf
http://prntscr.com/o2obs7
что не так?
если использовать цикл, то получаю эту ошибку

Google

Винни
16.06.2019
22:29:40

Арип
16.06.2019
22:31:21

Винни
16.06.2019
22:32:43
остальные поймут

Арип
16.06.2019
22:33:00
вроде делаю как тут
http://prntscr.com/o2odge
или скажи что не знаешь о чем говоришь сам))

Какого Бля
16.06.2019
22:41:27
парни
какой то гениальный разраб воткнул в значение key/value два разных типа данных. данные всего динамические.
имеют вот такой вид
{'highestBid': 0.0000102100000014 EPICA.BTC/EPICA.HULI}
как можно нормально распарсить такое значение?
по количеству символов не получится, данные динамичские
по строковым ключам тоже. бывают не удачные повторения одного и того же
как распарсить вот это 0.0000102100000014 EPICA.BTC/EPICA.HUL ?
если получить по итогу нужно только строковое значение - EPICA.BTC/EPICA.HUL
хоть какоие нибудь идеи есть?
самое костыльное что пришло в голову, взять строковые цифры 0-9 и тупо через re.sub срезать

Andrey
16.06.2019
22:46:46

Какого Бля
16.06.2019
22:47:21

꧁꧂OGURCHIK꧁꧂
16.06.2019
22:48:40