pony
pony copied to clipboard
TypeError: FormattedValue constructor takes either 0 or 3 positional arguments
I have 3 tables at below:
class Member(db.Entity):
id = PrimaryKey(int, auto=True)
web_user_ref = Optional('WebUser')
sandik_ref = Required('Sandik')
class WebUser(db.Entity):
id = PrimaryKey(int, auto=True)
name = Required(str)
surname = Required(str)
members_set = Set(Member)
@property
def name_surname(self):
return f"{self.name} {self.surname}"
class Sandik(db.Entity):
id = PrimaryKey(int, auto=True)
members_set = Set(Member)
I can run query at below in pony 0.7.14:
members = Sandik[1].members_set.order_by(lambda m: m.web_user_ref.name_surname.lower())
However I get error at below in 0.7.15rc and after:
Traceback (most recent call last):
File "/home/myilmaz/PycharmProjects/Temp/pony_example/pony_example.py", line 35, in <module>
members = Sandik[1].members_set.order_by(lambda m: m.web_user_ref.name_surname.lower())
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/core.py", line 3601, in order_by
return wrapper.select().order_by(*args)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/core.py", line 6005, in order_by
return query._order_by('order_by', *args)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/core.py", line 6025, in _order_by
return query._process_lambda(func, globals, locals, order_by=True)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/core.py", line 6097, in _process_lambda
new_translator = prev_translator.apply_lambda(func_id, new_filter_num, order_by, func_ast, argnames, original_names, extractors, new_vars, vartypes)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 923, in apply_lambda
translator.dispatch(func_ast)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 107, in dispatch
return ASTTranslator.dispatch(translator, node) # default route
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/asttranslation.py", line 40, in dispatch
translator.dispatch(child)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 107, in dispatch
return ASTTranslator.dispatch(translator, node) # default route
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/asttranslation.py", line 40, in dispatch
translator.dispatch(child)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 107, in dispatch
return ASTTranslator.dispatch(translator, node) # default route
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/asttranslation.py", line 47, in dispatch
translator.call(post_method, node)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 196, in call
reraise(exc_class, exc, tb)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/utils/utils.py", line 94, in reraise
try: raise exc.with_traceback(tb)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 185, in call
monad = method(translator, node)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 1045, in postAttribute
return node.value.monad.getattr(node.attr)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 1451, in wrapper
return method(monad, *args, **kwargs)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 2176, in getattr
return new_monad()
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 1451, in wrapper
return method(monad, *args, **kwargs)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/sqltranslation.py", line 2665, in __call__
func_ast, external_names, cells = decompile(func)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/decompiling.py", line 38, in decompile
decompiler = Decompiler(codeobject)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/decompiling.py", line 156, in __init__
decompiler.decompile()
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/decompiling.py", line 259, in decompile
x = method(*arg)
File "/home/myilmaz/PycharmProjects/Temp/venv/lib/python3.6/site-packages/pony/orm/decompiling.py", line 363, in BUILD_STRING
items[i] = ast.FormattedValue(item, -1)
TypeError: FormattedValue constructor takes either 0 or 3 positional arguments
Process finished with exit code 1
Hello, what python version do you run on?
Hello, it is Python 3.6