94670


オブジェクトをキーに持つdictでキーなしエラーが発生したときに、表示されるエラーメッセージが正しく表示されず困っています。

おそらくKeyErrorは `__repr__` を呼び出しているようなのですが、 `__repr__` が戻す文字列に不等号（`<`,
`>`）が含まれると、不等号に挟まれた文字列が表示されないようです。  
回避策などありましたら、教えていただけないでしょうか？（内蔵ブラウザのせいでしょうか。）

実行環境は、WSL2(Ubuntu)、Python3.8、VSCode+JupyterLab(plug-in)です。

[code]

    !python3 --version
    !cat /etc/os-release
    !echo
    
    
    class TestClass():
        message: str
    
        def __init__(self, message: str):
            self.message = message
    
        def __repr__(self):
            text = f"aa=<bb> TestClass(message='{self.message}')"
            print('期待値:', text)
            return text
    
    
    map = {
        TestClass('aa'): 'AA',
        TestClass('bb'): 'BB',
    }
    _ = map[TestClass('cc')]  # ←キーなしExceptionが発生する。エラーメッセージは、'<bb>'の部分が表示されない。
    
[/code]

以下、実行結果です。

[![画像の説明をここに入力](https://i.stack.imgur.com/mKxmV.png)](https://i.stack.imgur.com/mKxmV.png)

### 環境

VSCode 1.77.3  
プラグイン: v2023.3.1201040234  
IPython : 8.8.0  
ipykernel : 6.22.0  
ipywidgets : 8.0.6  
jupyter_client : 7.4.9  
jupyter_core : 5.1.3


CC BY-SA 4.0
2023-04-27T15:34:30.710
94667
2023-04-28T10:29:28.620
2023-04-28T10:29:28.620
19110
35267
question
python vscode jupyter-notebook jupyter-lab
KeyError が発生した際、エラーメッセージの一部が欠損してしまう


以下の環境で再現しました。

  * Windows 11 + Anaconda
  * Python 3.11.3
  * Jupyter (server=6.5.4, IPython=8.12.0)
  * VSCode 1.77.3

ソースコードは以下の１行のみ。

[code]

    print('<bb>')) # SyntaxError: unmatched ')'で<bb>が出力できない
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/jkAIP.png)](https://i.stack.imgur.com/jkAIP.png)

Jupyter単体（ブラウザ上で動作）では再現しないのでVSCodeが怪しいと思って探したら、似たissueが見つかりました。

[Interactive window shows stack trace with bare tags when running code in
unsaved buffer #12532](https://github.com/microsoft/vscode-
jupyter/issues/12532)

たぶんインタラクティブ ウィンドウ上でのTracback表示に不具合があると思います。


CC BY-SA 4.0
2023-04-28T01:18:13.080
94670
2023-04-28T01:28:45.570
2023-04-28T01:28:45.570
3060
25830
94667
answer