sorting hybrid_properties getting NotImplementedError: Operator 'getitem' is not supported on this expression

30 views
Skip to first unread message

gvv

unread,
Nov 18, 2021, 7:13:08 AM11/18/21
to sqlalchemy
Hi All,

Using Sqlalchemy 1.3.23

I am getting a NotImplementedError: Operator 'getitem' is not supported on this expression
when sorting on some hybrid_properties.

I have attached a sample code to replicate it.

falls over with the following traceback:

Traceback (most recent call last):
  File "testholdings.py", line 526, in <module>
    trans = db_session.query(Transaction).order_by(desc(Transaction.total_cost)).all()
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/ext/hybrid.py", line 898, in __get__
    return self._expr_comparator(owner)
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/ext/hybrid.py", line 1105, in expr_comparator
    comparator(owner),
  File "testholdings.py", line 135, in total_cost
    return TotalCostComparator(cls)
  File "testholdings.py", line 89, in __init__
    expr = case(
  File "<string>", line 2, in case
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 2437, in __init__
    whenlist = [
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 2439, in <listcomp>
    for (c, r) in whens
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/operators.py", line 432, in __getitem__
    return self.operate(getitem, index)
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 762, in operate
    return op(self.comparator, *other, **kwargs)
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/operators.py", line 432, in __getitem__
    return self.operate(getitem, index)
  File "<string>", line 1, in <lambda>
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/type_api.py", line 67, in operate
    return o[0](self.expr, op, *(other + o[1:]), **kwargs)
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/default_comparator.py", line 237, in _getitem_impl
    _unsupported_impl(expr, op, other, **kw)
  File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/default_comparator.py", line 241, in _unsupported_impl
    raise NotImplementedError(
NotImplementedError: Operator 'getitem' is not supported on this expression


Thanks in advance,
George
testholdings.py
Reply all
Reply to author
Forward
0 new messages