It looks like you have written a recursive descent parser. And a display. If you were running Maxima on a Pi, (see sourceforge for download) you would have a parser and a display without writing it yourself.
Just looking at the code briefly, I think you have to decide if you actually meet your own specs. I don't know what sympy will provide, so maybe it is really OK. For example, a*b*c*d*e = a*g*c*d*f divide by b*d do you get a*c*e = a*g*c*f/b ? or more seriously, (x^2-1)/(x+1) to get (x-1) ? I would be surprised if you were the first person to write a parser like this in Python, but it is a learning experience. Good luck. On Monday, May 25, 2020 at 12:49:09 PM UTC-7, Jonathan wrote: > > As promised here is a git repository > <https://github.com/gutow/Algebra_with_Sympy> with a myBinder > demonstration of what I have so far. Once I extend it to handling > inequalities, it will more than meet my use case needs. > > Some have asked for more specifics. Here is a list of some of the more > important requirements: > > 1) Can be installed in a plain vanilla python3 virtual environment via pip > or simply as a python file to be loaded. > 2) Does not conflict with SymPy or NumPy. > 3) Will load and run fast enough to avoid user complaints on a Raspberry > Pi. One initial use case is being combined with Pi data acquisition > hardware and python tools for controlling them. > 4) Makes sense to scientists in the fields of Physics, Chemistry and > Biology. > > Thanks, > Jonathan > > On Thursday, May 21, 2020 at 8:30:42 AM UTC-5, Jonathan wrote: >> >> Dear All, >> >> I have a use case where I need something lighter weight than the whole of >> Sagemath. I think SymPy + the ability to handle math on symbolic equations >> as Sagemath does it might be enough. Thus I wanted to see if I could >> extract from Sagemath the code supporting math on symbolic expressions and >> overlay that on SymPy or at least use that as a template. Can somebody >> please point me to the place to start looking in the codebase? >> >> To make sure people understand what I am interested in, here is a simple >> example of the ability I would like to extract: >> >>>eq1 = p*V==n*R*T >> >>>eq1 >> p*V=n*R*T >> >>>eq2=eq1/V >> >>>eq2 >> p=n*R*T/V >> >> Thanks, >> Jonathan >> > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/579775eb-c74a-4dcc-a76c-8a8ebe6a5ca6%40googlegroups.com.