JuliaPy / JuliaPy/PyCall.jl

Misalignment of first line in multiline show of PyObject

オープン 初心者向け
#888 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。