Misalignment of first line in multiline show of PyObject
- 主要言語
- Julia
- スター
- 1.5k
- フォーク
- 186
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
PyObjects whose pystring method returns a multiline string have their first row misaligned when shown. For example
```julia
using PyCall
qiskit = pyimport("qiskit")
qc = qiskit.QuantumCircuit(1)
qc.x(0)
qc.draw()
```
gives
```
PyObject ┌───┐
q_0: ┤ X ├
└───┘
```
A fix would be to replace
```julia
function show(io::IO, o::PyObject)
print(io, "PyObject $(pystring(o))")
end
```
with
```julia
function show(io::IO, o::PyObject)
str = pystring(o)
sep = contains(str, "\n") ? "\n" : " " # Avoid misaligning the first line for multiline prints
print(io, "PyObject$sep$str")
end
```
which gives the following print instead.
```
PyObject
┌───┐
q_0: ┤ X ├
└───┘
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
show(io::IO, o::PyObject) の実装から始め、提供された qiskit の例を使って、pystring の結果に改行が含まれる PyObject で問題を再現します。1 行の出力ではスペーシングが維持され、複数行の出力では PyObject が独自の行に配置され、先頭行の位置がずれなくなることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- julia, python
- 領域
- tooling
- issue の種類
- バグ
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 68/100