replace error
まだ誰も着手していません。
評価
調査の方向性
Juliaの例を再現し、スタックトレースでreplaceがPyCall経由で呼び出されていることが示されているSymPy/src/patternmatch.jl:94から調査を始めてください。Pythonのreplaceに渡される引数を比較し、pyiterator.jl:150で示されているPyCallの変換を調べてください。例で示されたRuntimeErrorが発生しなくなり、replaceが期待される変換後の式を返すようになれば完了です。
索引モデルが issue の本文から書いたものです。
説明
a = SymPy.Wild("a")
ex = log(sin(x)) + tan(sin(x^2))
replace(ex, (sin(x)).func, a -> sin(2a))
it export errors as following. Do the developers know how to fix it?
PyError ($(Expr(:escape, :(ccall(#= /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyfncall.jl:44 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) <class 'RuntimeError'>
RuntimeError('Julia exception: MethodError: no method matching iterate(::getfield(Main, Symbol("##74#75")))\nClosest candidates are:\n iterate(!Matched::Core.SimpleVector) at essentials.jl:568\n iterate(!Matched::Core.SimpleVector, !Matched::Any) at essentials.jl:568\n iterate(!Matched::ExponentialBackOff) at error.jl:199\n ...\nStacktrace:\n [1] jlwrap_iterator(::Function) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyiterator.jl:150\n [2] pyjlwrap_getiter(::Ptr{PyCall.PyObject_struct}) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyiterator.jl:131\n [3] macro expansion at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/exception.jl:81 [inlined]\n [4] __pycall!(::PyCall.PyObject, ::Ptr{PyCall.PyObject_struct}, ::PyCall.PyObject, ::Ptr{Nothing}) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyfncall.jl:44\n [5] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{PyCall.PyObject,getfield(Main, Symbol("##74#75"))}, ::Int64, ::Ptr{Nothing}) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyfncall.jl:29\n [6] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{PyCall.PyObject,getfield(Main, Symbol("##74#75"))}, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyfncall.jl:11\n [7] #call#111(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::PyCall.PyObject, ::PyCall.PyObject, ::Vararg{Any,N} where N) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyfncall.jl:89\n [8] (::PyCall.PyObject)(::PyCall.PyObject, ::Vararg{Any,N} where N) at /Users/gangchen/.julia/packages/PyCall/ttONZ/src/pyfncall.jl:89\n [9] #replace#91(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::SymPy.Sym, ::PyCall.PyObject, ::Function) at /Users/gangchen/.julia/packages/SymPy/woEOA/src/patternmatch.jl:94\n [10] replace(::SymPy.Sym, ::PyCall.PyObject, ::Function) at /Users/gangchen/.julia/packages/SymPy/woEOA/src/patternmatch.jl:94\n [11] top-level scope at In[181]:3\n [12] eval at ./boot.jl:328 [inlined]\n [13] softscope_include_string(::Module, ::String, ::String) at /Users/gangchen/.julia/packages/SoftGlobalScope/cSbw5/src/SoftGlobalScope.jl:218\n [14] execute_request(::ZMQ.Socket, ::IJulia.Msg) at /Users/gangchen/.julia/packages/IJulia/gI2uA/src/execute_request.jl:67\n [15] #invokelatest#1 at ./essentials.jl:742 [inlined]\n [16] invokelatest at ./essentials.jl:741 [inlined]\n [17] eventloop(::ZMQ.Socket) at /Users/gangchen/.julia/packages/IJulia/gI2uA/src/eventloop.jl:8\n [18] (::getfield(IJulia, Symbol("##15#18")))() at ./task.jl:259')
File "/Users/gangchen/.julia/conda/3/lib/python3.7/site-packages/sympy/core/basic.py", line 1341, in replace
value = sympify(value)
File "/Users/gangchen/.julia/conda/3/lib/python3.7/site-packages/sympy/core/sympify.py", line 325, in sympify
if iterable(a):
File "/Users/gangchen/.julia/conda/3/lib/python3.7/site-packages/sympy/core/compatibility.py", line 288, in iterable
iter(i)
- 主要言語
- Julia
- スター
- 282
- フォーク
- 59
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaPy/SymPy.jl のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaPy/SymPy.jl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Sienna-Platform/PowerSystemCaseBuilder.jl#239 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
JuliaPluto/Malt.jl#114 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
QuantumSavory/QuantumSavory.jl#592 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
JuliaQUBO/QUBOTools.jl#136 ·