
1NF3sted
03.09.2018
14:26:56
/rmkb@remkeybot

Эникиев
03.09.2018
14:50:48
Здрасте. Я сразу с вопросом. Как узнать какая версия питона нужна пакету с pypi.org?

Cykooz
03.09.2018
14:52:42
Там сбоку, в левой колонке ищите

Alex
03.09.2018
14:53:13
Обычно указывают среди Trove classifiers

Google

Cykooz
03.09.2018
14:53:52

Эникиев
03.09.2018
14:54:13
Спасибо

Cykooz
03.09.2018
14:54:34
Или там ниже ещё вот так написано

Stas
03.09.2018
15:03:01
блин
меня щас уже бомбанет от этой алхимии
Object '<Work at 0x10535b978>' is already attached to session '2' (this is '1')
я создаю объект сессии, два раза к нему делаю add
и commit
втф

Cykooz
03.09.2018
15:06:39
Нельзя два раза добавлять один и тот же объект. Добавляй два разных объекта (пусть даже содержимое у них одинаковое)

Stas
03.09.2018
15:07:51
я разные добавляю
но между ними связь

Google

Stas
03.09.2018
15:08:25
base = models.Base(name=request.json['base'], dump_id=dump_id, size="0.")
s.add(base)

Cykooz
03.09.2018
15:08:26
Или, судя по ошибке, у тебя две сессии, и ты пытаешься добавить в сессию '1' объект, который уже добавлен в сессию '2'

Stas
03.09.2018
15:08:38
work = models.Work(base=base, status=request.json['status'])
s.add(work)
s.commit()
да нет же s = db.session()
я сверху ее же сам создаю
как я могу пытаться в другую добавить
и объекты разные

Cykooz
03.09.2018
15:10:09
Если объект связан - просто добавь второй объект в первый, оно помоему автоматом добавится в сессию (если первый был в сессии)
p = Parent(pname, pid)
session.add(p)
p.children.append(Child(loc=cloc, status=cstat))
session.commit()

Stas
03.09.2018
15:12:23
пытался так
не добавлялся почему то
# noinspection PyArgumentList
work = models.Work(base=base, status=request.json['status'])
base.work.append(work)
s.commit()

Cykooz
03.09.2018
15:13:55
Так base не надо передавать в Work

Stas
03.09.2018
15:15:29
убрал
всеравно
ошибок нету
но не создал
# noinspection PyArgumentList
base.work.append(models.Work(status=request.json['status']))
db.session.commit()
чтото я намудрил
если стопнуть сервер и запустить

Google


Stas
03.09.2018
15:24:08
и послать post то он добавит
@app.route('/api/v0.1/dumps/<int:dump_id>', methods=['GET', 'POST'])
def get_bases(dump_id):
with db.session.no_autoflush:
if request.method == 'POST':
if not request.json or 'base' not in request.json or 'status' not in request.json:
abort(400)
base = models.Base.query.filter_by(name=request.json['base'], dump_id=dump_id).first()
if base is None:
query = None
# noinspection PyArgumentList
base = models.Base(name=request.json['base'], dump_id=dump_id, size="0.")
db.session.add(base)
else:
query = db.session.query(models.Work).\
filter_by(status=request.json["status"]).\
join(models.Work.base).\
filter_by(dump_id=dump_id).first()
if query is not None:
query.update(started=datetime.now)
else:
print(base)
# noinspection PyArgumentList
base.work.append(models.Work(status=request.json['status']))
db.session.commit()
return json.dumps(models.Work.query.filter_by(base=dump_id).all(), cls=CustomJSONEncoder)
elif request.method == 'GET':
query = models.Base.query.filter_by(dump_id=dump_id).all()
print(query)
return Response(response=json.dumps(query, cls=CustomJSONEncoder),
status=200,
mimetype="application/json")
блин помогите разобраться что не так
вот мой весь ужасный метод
суть такая, что если запустить сервак заново и послать реквест в котором будет base которого еще нету, он его добавит
и ворк добавит
если потом послать реквест для уже существующего base, то ничего не случится
и после этого если попробовать третий реквест такой же как и первый, вылетет эксепшен что database locked
контекстный менеджер with db.session.no_autoflush:
уже от отчаянья добавил


Tigran
03.09.2018
15:37:19
жестоко

Stas
03.09.2018
15:38:00

Tigran
03.09.2018
15:38:15
я про код в целом

Denis
03.09.2018
15:38:17
какая python ide под убунту есть нормальная?

Stas
03.09.2018
15:38:53

Lizard_King
03.09.2018
16:02:04

Alex
03.09.2018
16:02:34

Сергей
03.09.2018
16:02:54

Jl
03.09.2018
16:02:59
Онли вим

Google

Jl
03.09.2018
16:03:58
Но это не ide

Сергей
03.09.2018
16:04:11
правда к емаксу педали нужны

Alexandr
03.09.2018
16:04:37

Алексей
03.09.2018
16:17:33

Alexandr
03.09.2018
16:19:28
Ну в клавише PrtScr, например

ivanblch R13 [Denis ?? Armavir]
03.09.2018
16:19:56

?? Eugene
03.09.2018
16:20:51
Словарь не насилуй

ivanblch R13 [Denis ?? Armavir]
03.09.2018
16:22:15
если конкретно - b у тебя уже строка

?? Eugene
03.09.2018
16:22:48
Принты расставь да проверь

ivanblch R13 [Denis ?? Armavir]
03.09.2018
16:22:50
а ты думаешь, что у тебя там все еще словарь и пытаешься найти имя по строковому индексу

?? Eugene
03.09.2018
16:24:15
Да, все именно так, как сказал господин выше

ivanblch R13 [Denis ?? Armavir]
03.09.2018
16:28:48
правильно будет
for item in info:
print(item['first_name'])
потому что перебором типа
for a, b in info.items():
ты перебираешь уже содержимое словарей внутри списка, и у тебя a и b идут парой строк, тебе достаточно print(b) сделать, а не print(b['first_name'], т.к. b и так уже равно тому, что в выдаваемом командой info1.items() лежит под индексом a
надеюсь, оп прочитал это

Алексей
03.09.2018
16:29:43
Thank you

Eldar
03.09.2018
16:37:57
Такие вопросы в питон бегинерс задавай

Jl
03.09.2018
17:47:10
Как проверить word ?
Проверка на None не работает
Может есть какой атрибут ?

ivan
03.09.2018
17:48:08
В смысле не работает?

Google

Jl
03.09.2018
17:48:39
word в себе хранит кучу значений

ivan
03.09.2018
17:48:45
Ну, во-первых, в случае с конкретно None лучше не сравнение а is использовать

Jl
03.09.2018
17:49:07
но строк он в себе не хранит

ivan
03.09.2018
17:50:28
И что, заходит в блок if?
Попробуй is использовать
Если не канает, то у тебя рили в word None находится

Jl
03.09.2018
17:50:48
Ебала

ivan
03.09.2018
17:51:11
Блять
Так а тебе что надо???

Alex
03.09.2018
17:51:24
эм... а ничего что filter() возвращает не объект записи, а объект Query?

ivan
03.09.2018
17:51:32
Конечно он будет в сравнении с None давать False

Jl
03.09.2018
17:52:20
Смотри, я делаю select запрос, он нихуя не возвращает, кроме атрибутов. По какому атрибуту можно посмотреть вернул он строки или нет.

Alex
03.09.2018
17:52:38
эм... начнем с того что ты не делаешь запрос