Проблемы с проверкой типов match-case в Jupyter Notebook

Обычно, когда я хочу проверить тип, я делаю так:

for x in ([], {}):
    match x:
        case list(_):
            print('[OUTPUT] Do something with list')
        case dict(_):
            print('[OUTPUT] Do something with dict')

В IDLE Shell все работает, а в Jupyter Notebook лезет ошибка, вот полный output выполнения кода:

[OUTPUT] Do something with list

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [74], in <cell line: 1>()
      1 for x in ([], {}):
      2     match x:
      3         case list(_):
      4             print('[OUTPUT] Do something with list')
----> 5         case dict(_):
      6             print('[OUTPUT] Do something with dict')

TypeError: called match pattern must be a type

Проблем с версиями python и jupyterlab нет, я проверял.

python                       3.10.4

jupyter-client               7.3.1
jupyter-core                 4.10.0
jupyter-server               1.17.0
jupyterlab                   3.4.2
jupyterlab-pygments          0.2.2
jupyterlab-server            2.13.0

Возможно ли пофиксить это?
У меня была еще одна проблема с match-case в Jupyter Notebook, если кому интересно.
Если нужны скриншоты, я отправлю.

UPD: НЕЛЬЗЯ убирать скобки после dict, это приведет к тому, что Python воспримет dict как переменную, и запишет туда текущее значение кейса. Проблема именно в самом Jupyter, что можно понять из вопроса, который был о фиксе jupyter-а, а не о проблемах в моем коде (которых нет).


Ответы (1 шт):

Автор решения: Vladimir Chistov

Вот измененный код:

for x in ([], {}):
    match x:
        case list():
            print('[OUTPUT] Do something with list')
        case dict():
            print('[OUTPUT] Do something with dict')

Проверил, у меня в Jupyter работает и выводит:

[OUTPUT] Do something with list
[OUTPUT] Do something with dict
→ Ссылка