Skip to content

Commit 1359575

Browse files
committed
needed init!
1 parent a5e0b11 commit 1359575

File tree

1 file changed

+14
-24
lines changed

1 file changed

+14
-24
lines changed

ext/SymPyPythonCallSymbolicsExt.jl

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,104 +3,94 @@ module SymPyPythonCallSymbolicsExt
33
# from https://github.com/JuliaSymbolics/Symbolics.jl/pull/957/
44
# by @jClugstor
55
import SymPyPythonCall
6-
#const sp = SymPyPythonCall.sympy.py
6+
sp = SymPyPythonCall.sympy.py
77
const PythonCall = SymPyPythonCall.PythonCall
8-
import PythonCall: pyconvert
8+
import PythonCall: pyconvert, pyimport, pyisinstance
99

1010
import Symbolics
1111
import Symbolics: @variables
1212

1313
# rule functions
14+
function pyconvert_rule_sympy_symbolX(::Type{Symbolics.Num}, x)
15+
end
1416
function pyconvert_rule_sympy_symbol(::Type{Symbolics.Num}, x)
15-
#=
1617
if !pyisinstance(x,sp.Symbol)
1718
return PythonCall.pyconvert_unconverted()
1819
end
19-
=#
2020
name = PythonCall.pyconvert(Symbol,x.name)
2121
return PythonCall.pyconvert_return(Symbolics.variable(name))
2222
end
2323

2424
function pyconvert_rule_sympy_pow(::Type{Symbolics.Num}, x)
25-
#=
2625
if !pyisinstance(x,sp.Pow)
2726
return PythonCall.pyconvert_unconverted()
2827
end
29-
=#
3028
expbase = pyconvert(Symbolics.Num,x.base)
3129
exp = pyconvert(Symbolics.Num,x.exp)
3230
return PythonCall.pyconvert_return(expbase^exp)
3331
end
3432

3533
function pyconvert_rule_sympy_mul(::Type{Symbolics.Num}, x)
36-
#=
3734
if !pyisinstance(x,sp.Mul)
3835
return PythonCall.pyconvert_unconverted()
3936
end
40-
=#
4137
mult = reduce(*,PythonCall.pyconvert.(Symbolics.Num,x.args))
4238
return PythonCall.pyconvert_return(mult)
4339
end
4440

4541
function pyconvert_rule_sympy_add(::Type{Symbolics.Num}, x)
46-
#=
4742
if !pyisinstance(x,sp.Add)
4843
return PythonCall.pyconvert_unconverted()
4944
end
50-
=#
5145
sum = reduce(+, PythonCall.pyconvert.(Symbolics.Num,x.args))
5246
return PythonCall.pyconvert_return(sum)
5347
end
5448

5549
function pyconvert_rule_sympy_equality(::Type{Symbolics.Equation}, x)
56-
#=
5750
if !pyisinstance(x,sp.Equality)
5851
return PythonCall.pyconvert_unconverted()
5952
end
60-
=#
6153
rhs = pyconvert(Symbolics.Num,x.rhs)
6254
lhs = pyconvert(Symbolics.Num,x.lhs)
6355
return PythonCall.pyconvert_return(rhs ~ lhs)
6456
end
6557
function pyconvert_rule_sympy_derivative(::Type{Symbolics.Num}, x)
66-
#=
6758
if !pyisinstance(x,sp.Derivative)
6859
return PythonCall.pyconvert_unconverted()
6960
end
70-
=#
7161
variables = pyconvert.(Symbolics.Num,x.variables)
7262
derivatives = prod(var -> Differential(var), variables)
7363
expr = pyconvert(Symbolics.Num, x.expr)
7464
return PythonCall.pyconvert_return(derivatives(expr))
7565
end
7666

7767
function pyconvert_rule_sympy_function(::Type{Symbolics.Num}, x)
78-
#=
7968
if !pyisinstance(x,sp.Function)
8069
return PythonCall.pyconvert_unconverted()
8170
end
82-
=#
8371
name = pyconvert(Symbol,x.name)
8472
args = pyconvert.(Symbolics.Num,x.args)
8573
func = @variables $name(..)
8674
return PythonCall.pyconvert_return(first(func)(args...))
8775
end
8876

89-
# added rules
90-
PythonCall.pyconvert_add_rule("sympy.core.symbol:Symbol", Symbolics.Num, pyconvert_rule_sympy_symbol)
9177

92-
PythonCall.pyconvert_add_rule("sympy.core.power:Pow", Symbolics.Num, pyconvert_rule_sympy_pow)
78+
function __init__()
79+
# added rules
80+
PythonCall.pyconvert_add_rule("sympy.core.symbol:Symbol", Symbolics.Num, pyconvert_rule_sympy_symbol)
9381

94-
PythonCall.pyconvert_add_rule("sympy.core.mul:Mul", Symbolics.Num, pyconvert_rule_sympy_mul)
82+
PythonCall.pyconvert_add_rule("sympy.core.power:Pow", Symbolics.Num, pyconvert_rule_sympy_pow)
9583

96-
PythonCall.pyconvert_add_rule("sympy.core.add:Add", Symbolics.Num, pyconvert_rule_sympy_add)
84+
PythonCall.pyconvert_add_rule("sympy.core.mul:Mul", Symbolics.Num, pyconvert_rule_sympy_mul)
9785

98-
PythonCall.pyconvert_add_rule("sympy.core.relational:Equality", Symbolics.Equation, pyconvert_rule_sympy_equality)
86+
PythonCall.pyconvert_add_rule("sympy.core.add:Add", Symbolics.Num, pyconvert_rule_sympy_add)
9987

100-
PythonCall.pyconvert_add_rule("sympy.core.function:Derivative",Symbolics.Num, pyconvert_rule_sympy_derivative)
88+
PythonCall.pyconvert_add_rule("sympy.core.relational:Equality", Symbolics.Equation, pyconvert_rule_sympy_equality)
10189

102-
PythonCall.pyconvert_add_rule("sympy.core.function:Function",Symbolics.Num, pyconvert_rule_sympy_function)
90+
PythonCall.pyconvert_add_rule("sympy.core.function:Derivative",Symbolics.Num, pyconvert_rule_sympy_derivative)
10391

92+
PythonCall.pyconvert_add_rule("sympy.core.function:Function",Symbolics.Num, pyconvert_rule_sympy_function)
93+
end
10494

10595

10696
end

0 commit comments

Comments
 (0)