From 45a816c46cca1004bd586ea4c16496d92c84991a Mon Sep 17 00:00:00 2001 From: tsb1995 <47466105+tsb1995@users.noreply.github.com> Date: Fri, 20 Dec 2019 12:58:38 -0800 Subject: [PATCH] create and implement the setup_symbols function, symbols are preset at start --- __pycache__/app.cpython-37.pyc | Bin 4557 -> 4830 bytes app.py | 19 +++++++++++-------- helpers.py | 8 ++++++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/__pycache__/app.cpython-37.pyc b/__pycache__/app.cpython-37.pyc index 5382b4606cbfeff6d76b25d51869c81503b213fc..a81c4b681e39cccb89fb902403f56beaea9b79f6 100644 GIT binary patch delta 1548 zcmZuxO>7%Q6y7)X+PjW_^XoWq;;28^6s5FK5}-g63aW(qLlR1|YGmBZI&AAdX2+6a zIm#hL;!=rfE*zUP7oOacyE@39I~tV_Pu#C@Bi&j=YF|R zUQVSF20pvj{@yGX4dXXrjvot&8@T)!JS#8kC3tin9$3zhlXOx}+Q~RsC+7^i_VW>L z9srN=_!DCvoKe?)G{P-z^TameLr)n`@|2d0X-WE&B*U{>GOi`LQ<7mmq9qerGRp0> z6Ln*JT#NErG;!)uo=~^aDPV-^A;Rj}; zCf!~TgVW)+K6O}DRO8S!C(oNgajm+6-k2yX(kHltH=+N zd6e}tUQ4>$0+sUl&tV>VM?X03)4lz z;%(AtZ`E4dl)*J1b)S-m_+oAu&iLg+V-vD+3=m#JJSYHcZBLF9WHC-v<0ki;oFb z2v!N!2tFaWj}VvwyVw;&v{4|KAy^<-BDh6Bxe2XBM7JeuD)hW{z1im7hWjoh&8Gt9 Z(J}l-usj=%7IOG56s{J^R?M;!@Gp$NMJoUR delta 1114 zcmZvc&rcIU6vy}NZrk1d-twbmOQi@%EB;C)fEr>!2?rBm)Kitz;%v!ce~{U&DJKrX zQ4=#qJ;2eM35h3f7!wcPJnaEZ^iS}DUYs}OM-ObWpMAUEnfIMH^V);4ZzH++NF*rn z>rw8{ayBDLzwqVwQh8A1xAR+ilbhbucY;LS1>z(AE$JncLYBT3BmtrkeN`sGS278a zuu#H6iF7GZ5)(>9DDf`EAPJ#Fh0@cd^pZZI#Dvmc=#r8oC8RhRAm)}-GAxaxpUd>8 zrSBwmC6LJALn)tO1(;{s;6Q*KLXqt&+w7y9Q#@$11Nq5hz}cv;G;5BB!Ma`D@O-t3 zYqdR<*wrdkclh$avQvz3vd5N=8@ha?B(Fa#kS&_Gk7pg~loY4%>(hd8UN zNif*9np^0>sW_hYAp(egL=utWDCu^?wN@#&Kk}s}YQlLCBZK`_hu}OjeHqB?&G-&w zZc)%i{06F7_E>v5dWMgu@WkC_?1wgSU*yi>#8Jc;;sQeWjbkLz=6K|RP4oEl*^Tv< z>#43)U#A!Gi@(`&`6oKTN_rZuvlsd@OznNwzW|(LZ$nuaVxL08e4PiObXp|DP4sl9 zS!=m=v*8@sv)=IR>=}#i?2p)~0X~slMqEW)!#qm8(&n%mG{s(r`|F~r(}GS3RiVtmzFv*L3})3pGTb5a|d7VA{G#0 zt=-FHm*P6SV^i@tSY++^hvCnBnB(W*4GVstOFZ(la=Biy8|Cs+zK8uYZjXCD$`90{ s*xoda;Qt5`okA25i-;x05)*^iv?<>2VOf(Cs+lwmbJ{GJIZe~xKgE&b6#xJL diff --git a/app.py b/app.py index a0cfe9e..f2a466a 100644 --- a/app.py +++ b/app.py @@ -4,6 +4,8 @@ from helpers import apology app = Flask(__name__) +x, y, z, t, X, Y, Z, T = symbols('x y z t X Y Z T') + @app.route('/') def hello(): return render_template('index.html') @@ -15,14 +17,8 @@ def differentiation(): if not request.form.get("function"): return apology("must provide a function", 400) f = request.form.get("function") - """ - TODO: - take Function - analyse to find most common letter (our variable) - set that as the basis for symbols - """ - x = symbols('x') - f = sympify(f) + + f = setup_symbols(f) # Differentiate and return latex expressions fprime = latex(f.diff(x)) @@ -199,6 +195,13 @@ def errorhandler(e): e = InternalServerError() return apology(e.name, e.code) +def setup_symbols(f): + f = sympify(f) + for letter in [x, y, z, t, X, Y, Z, T]: + f = f.subs(letter, x) + + return f + if __name__ == '__main__': diff --git a/helpers.py b/helpers.py index 845a7f4..d1fb3d8 100644 --- a/helpers.py +++ b/helpers.py @@ -2,6 +2,7 @@ import requests from flask import redirect, render_template, request, session from functools import wraps +from sympy import * def apology(message, code=400): @@ -36,3 +37,10 @@ def login_required(f): def usd(value): """Format value as USD.""" return f"${value:,.2f}" + +def setup_symbols(f): + f = sympify(f) + for letter in [x, y, z, t, X, Y, Z, T]: + f = f.subs(letter, x) + + return f