Это хорошо документировано , например, в документации V11
Логические операторы являются префиксами и обращают внимание на арность.
Ваш пример будет:
['|', ('name', 'in', ['a','b']), ('course', 'in', ['x','y'])]
, который читается как имя равно «a» или «b» ИЛИ курс равен «x» или «y»
Где
['|', ('name', 'in', ['a','b']), ('course', 'in', ['x','y']), ('active', '=', True)]
читает (имя равно 'a' или 'b' ИЛИ курс равен 'x' или 'y') И активен