
Kirill ?
06.06.2019
15:21:13
локально это работает?
сейчас попробую посмотреть, думал ошибка очевидная, но походу нет
в pyCharm запущу и подебагаю

Aidar
06.06.2019
15:22:18

Kirill ?
06.06.2019
15:22:44

Артём
06.06.2019
15:23:11
но при этом ошибка есть :D трэйсбэка нет)

Google

Kirill ?
06.06.2019
15:23:25
типо да)))

Danil
06.06.2019
15:23:26


Aidar
06.06.2019
15:24:25
добрый день
пишу тг бота, он на heroku у меня
def exit_graceful(_signo, _stack_frame):
with open('data_cookies.json', 'w') as dmp:
json.dump(data_cookies, dmp)
dmp.close()
with open('data_last_json_response.json', 'w') as dmp:
json.dump(data_last_json_response, dmp)
dmp.close()
printt('EXIT SUCCESS')
sys.exit(0);
вот так делаю дамп json'a
with open('data_cookies.json', 'r') as dmp:
data_cookies = json.load(dmp)
with open('data_last_json_response.json', 'r') as dmp:
data_last_json_response = json.load(dmp)
вот так читаю при старте
ничего не сохраняется, пишет что всё окей, но при перезапуске читаю файл а в нем ничего
нужна помощь
не сохраняется только между рестартом приложения? а если сохранят и считывать не останавливая приложение?

Kirill ?
06.06.2019
15:24:55

Артём
06.06.2019
15:27:16
типо да)))
полностью вас понимаю, коллега.)
Вчера вечером сам с таким столкнулся, мой бот должен был создавать файл базы данных с айдишниками юзеров, но он почему-то не создавал)
но у меня там структура бд сложноватая была.
словарь словарей... хД

Проксимов
06.06.2019
15:31:12

Артём
06.06.2019
15:31:30
?♂️

Tishka17
06.06.2019
15:32:08
добрый день
пишу тг бота, он на heroku у меня
def exit_graceful(_signo, _stack_frame):
with open('data_cookies.json', 'w') as dmp:
json.dump(data_cookies, dmp)
dmp.close()
with open('data_last_json_response.json', 'w') as dmp:
json.dump(data_last_json_response, dmp)
dmp.close()
printt('EXIT SUCCESS')
sys.exit(0);
вот так делаю дамп json'a
with open('data_cookies.json', 'r') as dmp:
data_cookies = json.load(dmp)
with open('data_last_json_response.json', 'r') as dmp:
data_last_json_response = json.load(dmp)
вот так читаю при старте
ничего не сохраняется, пишет что всё окей, но при перезапуске читаю файл а в нем ничего
нужна помощь
на хероку файлы не хранятся
запомните все
на хероку ваша прога может мигрировать между серверами как угодно. Надеяться та то, что файлы останутся нельзя
сейчас она пишет в файл ,через 5 минут её перенесли на менее нагруженный сервер и там файла нет


Kirill ?
06.06.2019
15:33:03
добрый день
пишу тг бота, он на heroku у меня
def exit_graceful(_signo, _stack_frame):
with open('data_cookies.json', 'w') as dmp:
json.dump(data_cookies, dmp)
dmp.close()
with open('data_last_json_response.json', 'w') as dmp:
json.dump(data_last_json_response, dmp)
dmp.close()
printt('EXIT SUCCESS')
sys.exit(0);
вот так делаю дамп json'a
with open('data_cookies.json', 'r') as dmp:
data_cookies = json.load(dmp)
with open('data_last_json_response.json', 'r') as dmp:
data_last_json_response = json.load(dmp)
вот так читаю при старте
ничего не сохраняется, пишет что всё окей, но при перезапуске читаю файл а в нем ничего
нужна помощь
в exit_graceful data_cookies и data_last_json_response сделал их глобальными и все сохранилось...

Google

Артём
06.06.2019
15:33:10
на хероку файлы не хранятся
опа...тогда можно сразу вопрос, как быть, если мне нужно, чтобы бот создавал файл с данными пользователей (время присоединения к серверу, время онлайна и проч)?

Tishka17
06.06.2019
15:33:38
базы данных нормальный юзайте. Постгрес например

Артём
06.06.2019
15:33:51
как насчёт shelve ?

Tishka17
06.06.2019
15:33:52
там на бесплатном аккаунте даже можно подключить

Kirill ?
06.06.2019
15:34:11

Tishka17
06.06.2019
15:34:33
как насчёт shelve ?
shelve - это
1. обертка над pickle, который нельзя юзать ни для чего кроме экспериментов
2. не база данных

Артём
06.06.2019
15:34:54

Проксимов
06.06.2019
15:35:06

Евгений
06.06.2019
15:35:28

Проксимов
06.06.2019
15:35:39

Tishka17
06.06.2019
15:35:45
Pickle плохо, потмоу что:
1. Небезопасно (https://habr.com/ru/company/otus/blog/353480)
2. Формат жёстко привязан к внутренней структуре кода
3. python-only

Kirill ?
06.06.2019
15:40:56

Tishka17
06.06.2019
15:41:08

Alex
06.06.2019
15:41:17
первый год
Эм.. да взять самую дешевую VPS за пару баксов в месяц не?

Kirill ?
06.06.2019
15:41:59
счас посмотрим

Alex
06.06.2019
15:42:24
Digital Ocean - 5$ + VAT (но если ты в VAT зоне, то 5 баксов у тебя уж должны найтись)

Google

Артём
06.06.2019
15:43:22

Tishka17
06.06.2019
15:57:45
а он уже ходит в базу. В следующий рах понадобится другой тип базы - делаешь новый класс с такими же методами и просто переключаешься на использование его

Артём
06.06.2019
15:59:18
т.е. нужно всё равно делать базу, например, на том же постгрес, и ходить туда просто с помощью паттерна репозитория?)

Tishka17
06.06.2019
16:02:08
Ну куда будет ходить репозиторий - чисто его дело.
Один может ходить в базу, другой - в файл. Третий вообще на диск не писать, а просто в памяти держать даннын
А четвертый может всегда одни забитые в коде данные отдавать. Это полезно при тестах, например

Артём
06.06.2019
16:03:16
т.е. я правильно понимаю, что "репозиторий" это просто удобный формат трансфера данных между скриптом и местом хранения, временного или постоянного. Как data class

Tishka17
06.06.2019
16:03:48
Репозитрий - это просто абстракция. Отделение работы с хранилищем от остальной проги

Артём
06.06.2019
16:04:02
спасибо за разъяснения)

Andrew
06.06.2019
16:11:31

Jim Morrison
06.06.2019
16:24:18
Как форматировать инт для вывода с десятичной запятой
?

Alex
06.06.2019
16:25:49

Jim Morrison
06.06.2019
16:26:28

Alex
06.06.2019
16:28:40
эм... ну ты бы формат фикстур штоле в документации открыл.
"model": "appname.modelname"

Des_
06.06.2019
16:28:52
Может немного оффтоп, но в блендер чате большинство об api даже не слышал. Так что
Делаю скрипт на blender api, без знаний blender api) Может кто подсказать как правильно рендерить, а то bpy.ops.render.render() виснит весь графический интерфейс

?? Eugene
06.06.2019
16:29:39

Des_
06.06.2019
16:30:01
Сильно толсто)

Google

Andrew
06.06.2019
16:30:20

Admin
ERROR: S client not available

?? Eugene
06.06.2019
16:30:46
Хз, не встречался с таким

Jim Morrison
06.06.2019
16:31:41

Andrew
06.06.2019
16:31:48
Python API Overview — Blender 2.79.0 855d2955c49 - API documentation
https://docs.blender.org/api/2.79/info_overview.html

Jim Morrison
06.06.2019
16:32:06
Нужно из 1000000 сделать 1,000,000

Alex
06.06.2019
16:32:07

marchwinks
06.06.2019
16:33:03

Andrew
06.06.2019
16:34:02

Des_
06.06.2019
16:35:13

Andrew
06.06.2019
16:35:38

marchwinks
06.06.2019
16:35:44

Des_
06.06.2019
16:35:58

polunin.ai???
06.06.2019
16:36:14
Посылаю такой json-запрос:
{'chat_id': '1001405019571', 'question': 'Какой ты сегодня?', 'options': ['Веселый', 'Мужественный', 'Добрый']}
на что ответ
{"ok":false,"error_code":400,"description":"Bad Request: can\'t parse options JSON object"}
что я делаю/могу делать не так?

DennY.
06.06.2019
16:37:04
А здесь про ИИ можно спрашивать или есть какой-нибудь чат?

Tishka17
06.06.2019
16:37:26

?? Eugene
06.06.2019
16:37:27

Andrew
06.06.2019
16:37:40

Tishka17
06.06.2019
16:37:50

DennY.
06.06.2019
16:37:58

Google

polunin.ai???
06.06.2019
16:38:11
Куда, как?
уже решил, я список не переконвертировал

Tishka17
06.06.2019
16:38:21

?? Eugene
06.06.2019
16:38:21

Des_
06.06.2019
16:38:25

Oleksandr
06.06.2019
16:38:36

Andrew
06.06.2019
16:38:45

Jim Morrison
06.06.2019
16:39:30

DennY.
06.06.2019
16:39:35
Ладно пойду учить английский

polunin.ai???
06.06.2019
16:39:57

DennY.
06.06.2019
16:40:22