From e68a847e58c4197a3ec076f91a0ecbced7012318 Mon Sep 17 00:00:00 2001 From: TonyDann Date: Tue, 1 Oct 2024 22:47:22 -0500 Subject: [PATCH 1/2] Decorated the front end slightly by adding 3 tabs and some short text Wrote a script for performing two api requests (weather and news) Added the blog Need to work on some webscraping --- .gitignore | 7 +- __init__.py | 0 blog.docx | Bin 0 -> 23269 bytes code/__init__.py | 0 code/agriculture_data.json | 1306 +++++++ code/agriculture_data.txt | 1403 +++++++ code/api_test.py | 46 + code/chatui/__main__.py | 4 + code/chatui/assets/kaizen-theme.css | 4 +- code/chatui/pages/__init__.py | 2 +- code/chatui/pages/converse.py | 831 +++-- code/chatui/pages/utils.py | 232 +- code/chatui/remote_data_access.py | 229 ++ code/current_weather_data.json | 2450 +++++++++++++ code/current_weather_data.txt | 2152 +++++++++++ ...lture-Sector-Plan (1-40)-\342\200\246.pdf" | Bin 0 -> 1028916 bytes ...lture-Sector-Plan(41-82)-\342\200\246.pdf" | Bin 0 -> 245208 bytes ...ture-Sector-Plan(83-112)-\342\200\246.pdf" | Bin 0 -> 149143 bytes code/media/anime-ant.jpeg | Bin 0 -> 155090 bytes code/media/doctor-ant.jpeg | Bin 0 -> 161502 bytes code/media/farmer-ant.jpeg | Bin 0 -> 178025 bytes code/weather_forecast.json | 3252 +++++++++++++++++ code/weather_forecast.txt | 2277 ++++++++++++ 23 files changed, 13729 insertions(+), 466 deletions(-) create mode 100644 __init__.py create mode 100644 blog.docx create mode 100644 code/__init__.py create mode 100644 code/agriculture_data.json create mode 100644 code/agriculture_data.txt create mode 100644 code/api_test.py create mode 100644 code/chatui/remote_data_access.py create mode 100644 code/current_weather_data.json create mode 100644 code/current_weather_data.txt create mode 100644 "code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan (1-40)-\342\200\246.pdf" create mode 100644 "code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(41-82)-\342\200\246.pdf" create mode 100644 "code/data_source/agriculture_data/Jamaica-Final-Draft-Agriculture-Sector-Plan(83-112)-\342\200\246.pdf" create mode 100644 code/media/anime-ant.jpeg create mode 100644 code/media/doctor-ant.jpeg create mode 100644 code/media/farmer-ant.jpeg create mode 100644 code/weather_forecast.json create mode 100644 code/weather_forecast.txt diff --git a/.gitignore b/.gitignore index aafce56..3371b4b 100644 --- a/.gitignore +++ b/.gitignore @@ -58,4 +58,9 @@ coverage.xml *.py,cover .hypothesis/ .pytest_cache/ -cover/ \ No newline at end of file +cover/ + + +code/test.py +code/test_2.py +code/api_test.py \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/blog.docx b/blog.docx new file mode 100644 index 0000000000000000000000000000000000000000..d40d4ce4c001720f956e97ccfdd99311ce46d8f1 GIT binary patch literal 23269 zcmeFXWo#x*lP&m|nVFfH-G(+ZGcz-Do0*xJnVIdj+sw?&%-FWq-@AA2&g_gd+Wk8> zr8=pqipZ=AW$0vNguE08C@KIP00{s9hyVwq;nLnf000#@0DuC31lAI=vvoGHb=Fh% zus3nip?9~jCM*C2rpyBXf6M=$_CMGHO-bXH1B{3w&%vL8vn_*?9hAj`qXn@hIOfos z)OVani!c^h!`p5bq$Q{n^fC=hBP`Ebg+P<`UF=*Mf?;E;QE+oVrTQdOX}G6Xh98RE zrW3+`9|>~9V6F2T@6SFi+IQR{qA0GX)q@rI?(mF(VInCV_bV3L_d^yLr8zMiq^5!N zUOr#9IivR*BG4ePWB(K&l8hd`&+xI606rN>7`8D=PG;KeR#hZie4RV$RrKr(N=kB( z)21Y_EAziy3aW7A)GzfaoCQr5Vnzbe3(lwSaU?o!Pb?-f@!Tj0o<|E#m^q>0Ajk^B zv^WwimH7i{^8D8Zw;}3eqI6c9C{4otC%o*Cg)|KxWLaMNZokIL+yo)w$7|@Ux|^Wz zhI!aA#mbxOFbFXeJy4y~m9TpM#fKp(-vqY+^jLO8ddR&I>rytNcqL@Z_Pm~mjT3DG z*ExiECEefswf9Yxa<5N0hFS^I^Tcb2Ma>B!yV0Y^0s?Ok0O0Ej1R(z(ycRzmyY>2e zDaw93CCsN%QNJ2BAz3;&O|{ttH1fA{NE3H{&R3d?^T_z^hUt+3XQSt!e3G_#Jm z3IVAlA&s)WV!8bJ!LzagtaEB0Ha<6>IOFM*CF-)1q;rFvq5>Du4Yl;DJD~O6;1%f!!Rwg9@_{zxt50R2i;Mle)u1z|e3sb89BoPUNQ-UF z$Uv4AZ&(G5ebY62=2_TV`X@Y?7AhYqoZ{ilknL_|PLf~^LBb0(V0dFJ9=1paFyY7oGGOv>6M)pOBn4?O>B}CZN~PQb zY3Tzl(%m8M?40=1xA_--sLy_m+!t*wV!uOe@Un~K-Yoc#>GYY=(iHDcaV(f>O^Har zl7fgS^*)&!q#iV!PnIdaX(+lrI{2#heVZd``K6H!NGlwT-!LrSW+$UP2_I~|;!i^k zq`|vzqma7SDQi+9{hPBt44N6uf2wgue=!3V@c=S%xKy;vn3t%cqgo0azvIOcRKSNX zp?}9$27k+dv_dq3_sQje6=;qR`TO47vZ)WXem;2YH1JaIHg4QeaYz*igzb5tSkv~? z{ce7Yq0kdku5FgwLt}k)nYmKCaEXbSV$m-iY@cGBScW_LNE+^Q5xPF|L8h7%1B!wa zj|OUHTm$-x5eNS@BX%pk>`;3fn9F#eiP4%@8lBYJ*UR)*zBj!6=-KaR(zSH%0!|ad z8LcSmPi6H3Uz;ZgSN_-4qDcEjxypEU|J|I{$KW4-%zM(h&fYGaPT@lL%G+4kuZ{8% z>^2p9qfXH~H4Fk{O4xUaiB)d2JIGyk(`QF00*>7Gmz$_S?TV$%WG)zp^s#BF9`}?^b)fn1o0tR z8$B-{1+f5+s-0)!3JGwpaExp)@H8s*Z~4)UFQj=ZkD0x^l0cCD47kwDUaHfywNBjJ zys6Q|S?FaOs8S1wzT;Yzz&!hFO50p-M+#l0+4zgR+sv@fJ1jT)X4PC^1@VUTt|SbB z@8i|Se%oZzs}J^r5!wDVAzB5o?8ipV;7bq^a5*|bRC2vN-nW;Ktx-rvLM@+g8l>>; z5KI9xp#W7f#$B+S4t!{;(}6|3MNptLN$#u(3kxQO2R?fv=a6;5;>Cd)^TNvgegk7p zV)wfpSf}Hm@#w2E%t812eZ%hVS>PewN@9jSr2AXHcy*VC!j#x|PhZfThimXE)Mo6|?;}(64B(JM1%mkVw)=+pv~}^c z7ER84=kl~=wYj-yW%iWAp?ntO-_OJ#uP_uZz~Vs&4^yR~SsdTb&FY|yd&NCyXPGS8 z%`;KFVAw~`H*f<~Zh}baca3`p4jH~zVdz9hH^TU2yMp(ZllE-LuSjG;D2wJoRU5yF ztK!ho%-)fyDgjsvuRetc!j)B37nre~s9GViJWSDoJnecA%sh=f9N`keTD)3qluAa9 z>|~CyA2O)Rq(_(nV^T6enBfZi$cN9?#sDMLo*;^J;RZI-G53{P(8x4E74E%AG;f!w zgO4~BN-?tZm-1hDTj|=x6KAjXtb1ty#|>~l3G;(KC(MF!t0{=?Zvz^`S~ zYrNUzdTQI+E^#DOr%BR=hFosS1oPD+dlUv!pn9u{O}4tkFRuwG4IvbqtE{PGAo2Wq z`41Yz)B_^|Gi+=0EG=0`*N;^GeeLmELyLSrw1o1g^4g;W&c2`lvP*4I65FC-Maex` zA@N)XS|(K|cV5g6Bz_RBVMve=23Q1X6B03fQg@|d#)!cZdk98!XCeuy2^UiSXGGWs zDs=zw@hG%gw)Z$$gQ6c9^OEy}eRraO8*&6r735Jp6amo}X)q{Rc^`DvngtOs4g<(l zfPLNeY=CY@i|II2V|$ZQ7g~$Lo_c?lLjK<9)jLaL17rRBxIfo0 zve#18TupyR_(JymPGeA_$4A?k=G0pqsc-%mc+9p}x^cfAa2qlk08y|~0~R-A0q>AR zh~qrT!m12e%fm|X&=?ob+nxko*U@{&5$qm53n!7iFEOKYBy&5w0pqj z(pXqSecb58Ceiz(FLK5pCtl0H_SBX0c<}4c5MLb4X*!cNJ5{;ah|t#hNea>zsEI8w z5zX{sRfMa&d_~rSV`vQ*aI^cB5bc$a21BCT;b%!X?dJKMGY!$i?U3#u)X%M+kW9Q0 z`*Qqx0NhP%wRmh>gT#bHWvkbRUxuje!U{;835*$G z8j__*C~nqyMO98TxphVlK`7RQwf{U!dXT2jYNdQA_;Y;_3d2G=4E&@FaRuTsJtFi- z2j?u>|1%1S30ZdXYsh4$=>;`NBQmTM8nWDf#IcIhBWf!a?gtQdf!wTf+<7=eNC40# z-T~)F4^=PTv1WI)HDNy+51P{*xj&Fm5-fk-jb9WzY=x0A&tANkDEO+5IUgiK%E}BK zzW}2Wb}q&U;vY20+HvL3z6V=*wkq^^yR27oe4}DI5g=B8fYabSHG3xe75-iM1I?w+ zx%AI%kXO)~0ykh8x7}W_#YTv=DG*+ByZ5rS4I|AV%r*`M)U-XKv_<>^OlJK8M!v;l z#Y7%KSy=N>J6ZWmuza*3#%f=T1E?&~{<>aEJ^@ffV#w;r8mHIdgr_h@k@BcL$h^F^uXkb$#OHYFO{FOPriH+ff53 ziMkFx`Uic*!+D{=B(406RGHDi_0nXnLCP+uPBtzXlah_i$@31P0|5oQ+|IfIRnIyN z8}GsO#KN>)q_xC(;E|w=^2R=ST_;Iuz(zvanbMHHJ6@0@SRi^MHYUM!QzB9V z6y&Bw6PzJ1Vdc(Y6(ZnJE|w9}{dJ&u)Db=<$@f45ZqBlnbQHET>hL=h{*1$Qv!cC= zwn?1>ET29YFYov6QTSG_H zw5%AE_5up!0w|(<5fIDs6ydPISM9%)5yqvMA4*VX#aE0lEj(7v)!qWv!VzzyWaaV` zBZY`8Asf~ll>CW+`G^s4MCUA)y(!fERZPH3tx~K*>>0@_4|rh_ogNrTxGaec>QA{453uCR>cOVJ9V9*DYJF z+3RaHZI`S**!PTOSM({at?RU_pFOvk8<-uxo+g(e9~}zB=Gp*f>I3dI!v4G!9HE6# zm4n+Tjxn+6jngXZlm#owvJyW}JLvMnJG5~l!+e+oA^v3Wq4 zu!2Pb3zZ#p0Pc?AS@L`3V-+}SAQYXmgmaXdi*@3lWk;dr0&7F(FYfCZ^6I26I0&CA z^tJ$nV>*PheNhR-CCUWIyVS39Ki??gx!dg#2W2&7^UTT#t7QghbZ=hC^wIz zQ?NmPnUwQXxX9J4*|^-Za#P6G`Ka2iP)(mcj6&boNMK_`bax{5jy0g5A?lMNt_R@i z>^9(wWs=c0+Umt6Dcr{v@gC!rnBr!Dii3}jFbZ%$1|9m7G0guHUAAM+3KoK* zHtFr7^^1-kAq&IM{|o!#5$eb{oGPYU@Pw5qgWI{+)DHPt032oxnlaRKQGY0T8I^GQ zi@#=J-U>LkP9aPr92z-#GRRB-wPq2v{muwE>j8EsuPz$0Mt4v+i9K+ps5GC-pa#oS zPDIuLhEXxug+zef6LMTDTeEfT2U`jQTIinPn@|!PA53z+`Kv{8UP@E^dHV!ENfJfv zSU}hy8OyP6>Dkt)gMS_8^Zl9i#7QN^E~G_#&M zrQ;1pS$gDka;9_&>x@2qb--_^Ok#aku#0=;8?2=XQw!W02*eWMjts4Bv>QJl=mI1k zSbuNHs_4iMrY>$o`hJ}N@A6x>euEj|ZyGh_rVYUzUz+V!qLjlt7EsTT2d zkLq9znfNV~va!g2?8t#omKsyU+*p0uhA>OPuc9l%bh?0LS315Gf z5i2!os6zCJZ)&kE^1`WMk-y3A^mx7j14t^Nq_;r=CQIaP1temf7P9PIKNR-xCzWsk zm@12ZoCK{kWP8#q3LObkA|_0KPguE8FgnrTo|g4=AKN6#57K_^r=m8{8)GxaGk0u% zaNx|Cj3Lk$Tji1CPdwZt3N}4x33q1*0U9H19Vk8 zCeyw}OtD$$;7pyCh3b8|lWwVwAUs^}TrFD%g&iIlzEM%&?;2;I6wDl5Tx=5%Qv2%# z^s}7BVtD$wb=G032!npz*!Z~a+B5Cs$kD`P6#$inIx>Ic9!*BTp&_ytI>F%bCq0_S zTwPr}N;zib6y?;N*7q#rg7Tos^^`y@oHBWcgv_Zck{4I zgT@r4Y@+J-=`Y~k=?~y-%`0A9T$94Bvg4-AW&bJOAHzGqJ6CcdCh+$IGNpI*9eFOO z&fW+VWyk7-zC5@{_zzZx4};Apdtht>QV1yyQ@w#)Itq`us>Q37SsRw1A6SWTQ!sz! z@HiG#j+GG!z1UR)Fm!FT+)I;x zEjak5MFdO1OT9~8vQPNxnwb7{zoKYVg1XH@p3p|Y4nCnO9>Dt@C788$pY(grN7S+? z2m#jlQfTsba0$-hS>Eh6vL-=0YONBz=z1{I<0@$@4V_l#G<~Nbw@P z$cXx2T2l@wDw~T5_7Jli1wMI-F_6+(TgG9MHR?y$NH$J84-2v!V}IOL(lwo5f4kdz zvnyNaB6nJpU7Z0f_%E1#?-d4TRNz0?n^Xbp{pf8qaeXGJ>)oYphu(bdxDZ}Ok*^5a z1`kBfQrC)%sTweUbS~kpSdlN349nyaVe1{}N>UB|fkfrXShjZWneXb^!0$hL57*y38&?$i)wSEY;jve#AUUEC_On3cHDS=o;)!IDro}iVT0?3%rjZE~@<(tV>i#p-C<_3qXdleUO+eq>0P4;vmb= z7troBU;N7oQr@ElboU+T`PxAY>x`k^3-UR*su=|V{+JArA>I}|bSIDF zXH;A&IO{Hfyx2om%8TK1jM0cAKyrKIS<6#;lBL6n{F0&MnKgqwA~nbP8|I#mR>Vwy z!=~GmQ0idWkWc)Bz3OzK+(@;k5TG=Qb}cI zIdxni{ouBfRII|XaM&CWuze>o1YX;s>+}o%xIU+qlG(L;E>}HPV*Xq=&-{tW3O+FD zDz`#p;5RINA-*-KCw^CwdJVKFtWVYaNHef2k2LpVc;!vgz|!Ja z@3Ga;k7$~nGMDVMJ%1rD_rAzNQHnRW0c5?IhPyTz>&otmL*~3e;;U)nwU`Wek%ZiM zlGz{PFjT-iCU`vJ)>N@wU#?mJ}enovjgHn=(*U@z(PgP?e#Vt<*q<7NYK$oG)d zsej$v3_XI74@(+AP%;4VnpT#d%uCnlcAjs;RcJ}qDd2BBW(YNDPfOo$8wA)b$8b+! zP;3}_x~t>o^qf@O*8Y;o=apYMG`7@P2XYIGIk!JD2Zeccn-&)-aQxAT!!&njyUv-ZUUTRW2+{X$I%I*4HAgv5e9*dz$sr zjLH#FBu{U8hFBX)Zw6N1>|r_#LD( z`0%)y%3V+Q{zWMKMWBtP0`B0o36K`BQPnA{C@%I?hjHMxFepfGX1A^A^=nChg5u&`}*0otVb~y@u+>5bE ziI9j4POI&c>!fVUHCQ?r?6={rK5zFQJ3Zqa&liPr2qgaAS#=+AINxqmw4RrFi`fFx zA=U|k?3{R+GhNI>W%Ko6Cw8HIZo6XPEbA)x;&H6o<&Ei9l2{ANBf!^IWb9m&fOjU zfqA)TnO)ISa??IrQySvU^BPYgTxr;*>(*-S99Gp6lhjPD?L7=QIa^n@pHXG}2;O$6OcsAc90C6itF1R7=}U=sr>W-90q>Gr?K<5Te}#FA!^&>` zg7~iz6w61DIXK^`3t>K;6{W2#d)(+&GobC-CU?)-+BCSG&K0o-D)5palG%bmq(M6f#G`Cqv$M|tM?hQIbeOD1$`l~a$WLqV)nYg(!TQm#K zKKt4Y|iHvz(b+hKa#sbr5nW_YtPjoM5-)?1b3!6aWgMvo9 z#6-PcnvjSi$dfsOEN>;2h%6)vsS@8^*)tS01KJRvZlm8hNbi)=KBm*#Kpioh#Xc2q zlSzR2RzDsv{;S1h=J&U0>bss}k`Mqu`(88uEG}nr6B`qTe~{^)44B4bBn}5^FUA{R zSUWdEa7M;6Onv^5<{?{rYF_Ik`NUf>&%SQS6Xlo z`v(cNh4u8vlJk9ie*Oja63OXvj*sW{>8Xa(<62;xAIczSiNZLQjsu=w0aNzQh}{pj z&_KZfAniVLV5n&MaSg&N?e&j`#7cWHP)cF`F|l6|Em{0w?xpGnMyqhIXxN3~F)~yz z`EfEw7!;iz><3Q+!7kyX}w7H>O8-J>jnY`6t1#& zsM@hwN*IU2uf&O)N%%J!2Iow;0 z0bXsF+wJ*zap1w62}7`l=wJ_%9l*_+1k)t#Cwg&78Ui$^5$<~6gegE~ zB=9VvpJzu$=#Q=qk?z_xY}`=?R689D_gf4o6UG{73sw-souBGd-c)B^hD~h=`hKKU zZt6&50}oQp+R2ThYa@4<`Kn&Vgo7V^Qixaw-W!z&XaO^u$QY?Jw%%YFgvT^#z8vt( zbi!}VHi{Sbn- zaqtt>Kl)%cAQ~>viHP@-L{PvtfU|XU!xSd)N`~@2W$_Zi7%4-X{AMC#BQ(i0o|o$! zoH438%K_E6KKC{qRsj;eye=W{2wuVF6aw?G;~if#q;qR2{6;6J4ETVs@eE?$Hdpew)(ZCVaDUSaHwbzJgCeBQh%3=&+ zYI6d$Ep5!74ailJgL&Ma5RuV?jeZJ{8aYQ=EG))vB;*{0bh@MNrbUVq3nk5oZIePq z-tC$QAm%~ImQG$>^l7`j9IHl(M=yBBGg{*#gP%h!Sb~Pqao`h(hIMvQt%`&8zSIRR ziRhVHhb2cPGMn-nl%9gP*-Ahk9LcdFdxnm8v6&k>@=D5CMbVzG1z%I zW8vd@q-bZxJB}J^UbmOoJlOwGAvDgq*!wySI2P0Gm=wlsOWA$2O3>GbqkY9J|BTZ!V+CrA}q z;>v2drit>^T#0Bi(9z+Ff2Ib1YI=&`%K|E_ZY{|SNC#v>9)w@1;`Kb9fAeOWNjt6P zn0Uzic{Jp)i5m&Zlpsb4@#o=T?_^k6o?Ivf=QWA2!G0VHy=j&t#%cE#HigL=<5jDX zWHZ8S%_{%9N=h)Gezs4oB(Nt&XGWV6;*&ao%tG%O2LUCGKz5E$&ku`;JElI};V(?p znxLj;^;dk9Z8LV-@r~x(m^Hhge&kdl(~(xe5YJn#&T^)m)EiY=wm)oQ6^{~5r8+eU zh$1brnT;aNB!IhlPqahRR%9PezC(m49Hfm$p<$HA|NNLOdxDE~eo`g<^3YJU$8pXp zx8oS5++TWb;s^gixy3XA!ByOJo#cH_KefbWW_wNhn2Sg0;5z{%mgT82INP5ULApz} zavgnvxO7{*3=gwGkzDXhg-ZA^6`gV|Er!<96LnD^In_!h;(_0#ReD)k1_Vz-kYaSU);;@cS%2v#qVY|D``_&MzsoGnhOOP`qai&j3m@*eJop~J zKJJB7=&zb>V3hReMrq92XIxD03VOOVKOGWl{vH-wDrZ;DExcL2maQL7+xh(6eYBWA zs|mEY1QuSnEE%gw39YeWKX=K*b1q&}E16~U^D?4Y>@V%sQ5)OB%TzI~5Ow)eLm7GH zAcH4HOTlzx>CyCPidEGI{*{9Atny=;8|fJ9Dko|(movvmcX~!W@w6ovtYU1nuiz(*YcJwM z(L35njyA3^5Vu3fZ1Le=6W|jJVBr!1UGjlk<0}7qMcMdX=@|C}r7RGsL0^_5L4KcK z@sMMt+;6=(AA+ixZm+v0dq-@V&s`Nt5Q{%ej2RSqCj>r8uj;vmJLz&0{Yf5rRy0h8 zKX{Avl5Ms&mxd~IppN*l=?N3j16@8CXvM!cU>^tgulHvV2)XR?&itrE|- z8Vc!hdYO3#^0IHFl5=U8<>zhU&oh6{tY6hHP+|7cea;zVe|cJW0+YfoUi+%w(1AE_ zT73e_9qw07lq;_w4c=tOLXySD3)<^4Ryp4g){cl{iLD?4E!Z*k-PW4fO&KM9Cv1 z)bKPM;WEDX;XuS@x_~}1^QuC`D1MtrWF%--t~mpVh?>}W(YT5#+*)OST)rq9uFNhjbd(oZdgf>7&ZLaJHYRs0*??_|$C!gF zuV7&TFu($VIvju*WVu{RJVC8-y_+EO@-xD*^KrX<%q7_cT_S9 zuC_21rR`!nFDF!le7%71&i@W{v zCG9lL`g8szo!m6z!~){vj<#vTZN_I}Ag71J#6p(K*K4SkFj~MIpK+4E%Gmn$j5!nGWKvi{xJHufXpOhF``2-xY`eqVL!p1waWfa&dCDvr)IPX0UKJvH2$qBP<{VQ09FHYX42EiW7hj z_%6P#74!r|(5oZ%#hs|iWVAUdjR9oVu;yaG?d%p$ptNO=K2l$mu2ruaxP#20aOy{4 z;zgD?&BY+2`H?$Yu4qJB^$AVGhtwaV)6!EV$IMM{xQ?0tC7a^?Rf%zT4lPXx)p5FrNgf9+2%tlX}WbUc2-rYJSeYuO8$A>FZcpt}2u zU7}>E$LsVkP>N`c>+L>4{a5yQJtU>w{r*vvZ+l?=Cws^{+Sxn(e=j-cLU4Bqy65Cj8Bn4)vebCP^_IBYx{=%f$H2rh%i*ci^obHzZIwaY zHkn@$Qj40Y@y(~}5NaI4#>1}`QD#PT*~NRM)pw(5kmr6b4=BaL75REyP4HIw$;_&s z2W?vfTv;wQAr`u3oP6^oB^FAkVBH`QmMGKi;7X9=@rVrMdmbFMG|*{gV>L6Leug#9zLylhdTrgku6-0dgCfOW+r08si!#NDhYfQ(FD2* zAKym$&)XVfVx^D1@8cvf8vp?LTjHO%-qyv&(8Te3WAjf?pS@|j&W<{K4RL`73({## zn()S&0Uv{hfY)KD&V8Yoa-v?=LpbW{xSqO7a#8;VO;V2FJCY!xA+Zq65l<5Ddz&>N z^jWn(Xy@zm&^?Pj9F7CtYGh9mE5=zTGz^DtJM8PD+r>0gNZJfMeD@o$9g}O%{Q0^W z%h$Cj6A;}y$YjAuj4i;tD)Myco?S94oPg{V?M>5utHTYSXrH{blFtxanQUcbfiV;V zYC_nkrhvP~DG@d`0o|g?Jau?6>}n}%eJO56T_*mt7NPXFZ5gmZTwyFJssibXNQ^Eh zpDehcm?12tf~3d=6|bO@v|uY~7B$~N)nAdYB?G0B9Azt+e0rcp;f}fMr>z}aZ&!S< z{338y{W4DODHKFPVc4%g$1iFB$${W7wvIzz_iTo;-pNY;gCx2K=* z?5p%tDwJ#dz0+F-@w&8?vNe-@VR}qxI>BkZ)mie!U&A4Qpt{dMHHv*PjBA-f(l$moVVI`XsTe2*&bqi-I#gSMmJwEGg=_%ve9iMFwS=4%m@KI z6(R*(V2Jy`-$`IjCVN)(dJusr(NvqPX+=Yo7(#9M6J$~GYLxHB?ZIA0@dG(D)4cXb zxAe)Ux9f`X)ZYAX)T2$G^t+06el238;(R^v89@M3ODZ-htY|IFcsxwR?~^n!27g8B z@5t1=`aH&zsjyo0EjO^`60?NSxGbOT-`QEa>rrcpJ~37bCh{bV`9!RF88xbyYeQ@A ze3>%IxS39w7W7qMzj{D}PiZWf=bvr&@^>J+`sY`w-y)fh^USW<+b3+Xy5nmlJ_l%Y z&S;}!hOW6fw=E9=Qt+#Jdjc!-_^)6!!XXTDnninJGzKvB1$GWfFzOT5YH*^{}!KrfH zrrIk%gatCmDRbHuq?hY3hqO88#ah51!*BZ#EWSL8yJ_;2E2ih#0`3V{WbTHoDA}3< zGt!1$(@)F-DZThEVhtww2s5cZZ-}iB9k-4*Ona{=AAL6 z-nzRvRlXI9--{jN(STm)yW*b#$r45O$+~7PvK^HYXQI0=QzmSsvE7p3h*`Rd;~80m zylu(>M&W{jC05|{? z^zg`05K*V&m1smBc2k>GaORNsBr6XU5T@aPOR50Mdql1PiY6kj0P39{h4QZ+O=Ko@ zg7cq#nKEE5xd-I!Og#6jouspXA#0NDQg;;Sjj>8dK##EZO_oRgi7liX1tG^fG1YGw4RtNBE;Ufztoa7@NO4bJ*UNlZfM>uG|F@| z%I#%P=zvvd%5+cz@s5ALD~pEk*Hj$8m+5egop;|UCR5~DFXDb5tn!#sX)7?Da}Wf; zVe^4*2#I7?s(pgdDj%l*0Bf8>Ga&>A0a8PK4;cffp+0qU|jH2XcS2L*xWBK3wPF8bS8Dl# zXedpBE3o%l39lLzDJg&e-H}5HDA$&=n=@1ME-nzo$q1=oo1(mHYebXhl`A!Gv5u^T zj@X~8BnvHGq$%8W`hIVS{xjcqU$+vNBLV<{)c^p(zwy13vxl|GKZh6xI_r+>qR8Ic z6(10&xvm7bI^qfqG?J1D)y*_5g=u$39+0pi!h|6(eksYd+wDN0tC)zq<}^u4H4Wm3 z-i&EZveRIxueZmwk)$ub8+p)AUw2MI2L$@&<%JzQ-G09O^7`1bMmzwMB1s8L%0ifAr9IEDVn|8w!2eA0GM9M)p5~=^?Vjmak)T953U^uGux-V@EqdHQ%y4fFK z@?3csDNmbH6;|qij1dbl92&asA3WNT7q&_Z|7wL)gU&TWUm<3`#gD8mc%FD7N|s!@1(eEWxW3<#c7Rr zQ0;3}bpo-PUSsBjPxJOeu2np`$IVT|p#kppnBkZaouS7{D~1I=!U03p;U5wF#`}H| z^hRNujLL0nH~9O4mRIJOy?%eLDc)(t*L#eVEQFZJlE2fILd}PgXeLHlzvns~apd%V zn4?yTzkXO_ydo%M@kwpp2|J(73PtBbgJk@!F>v`l?k~ zboj)fGe!nuq*F$!`fBa$S_Ylh^GlPeVxdUmL{jjf}$EU|xV&|8=I_E_u z96^T3W77lk^{P?{VsmWROpx#%w{=aQFL$~E&+4)6S?48i490b-G6=aI)5ZOoGY z92yE#)@hGxE4fw)LN z$l~N>^pIkBF~l&dd&TTN)~Ez>U)qEz&fbjd12dFE7JF8zW+)KKgdKfb4a^ z{R52LU;+ef1Svj|{?H-ggaXOWjH#C>Gak4f#dW9ri{gypYLQg_?5P(qu#u%m4v)!U zq!RhaO}Kp1$r6UZ3JmIL;h!QXQM7zrvG<=Y#ry%|Dhc+)Rk5td^XebN;MgT!GyDS& z1X$*2pCEzQX38qYvtgEF1xPAsA|w?Yg>n_1jpo9Srn6yZlLe2pt?O;#&JnfGTrnNf zn>u8II#VY)F%rL0&pcMP#9gOY+YGQe$5$Nj%T~`#SKfXY#X3fSsQL{XBR3`N1Ir#Be~!=}pSD z4pVSS1m}u|!paOTAuKH3kcm~wB!N?L>$4lH)ZY*Weo4N6v{e{@LL|FlXu*XCx|QH@ zD{w>*uoXA-&M_~!iuN;W&0ak z`-?unREZryvKN%16KMI%m}93*_KDiS1D~5A-*aCf+csRxyXOPK7hR5&II|kL1DY0S z)Upngv{Ep>3f)51V+cF;CWsCH@fBH8bRS82)S~Ol*g;q{1ia8tFi>GOufL3QM!yL3 zp;xFBeCdll8(aO$%LNuw0V5Aww3ub?DEEX~4lYX44Ex_*1Is|Ulg1QjHR0s~iWW8C z63a71V0yG7Lk(iYBOFk@MxZD~-v&Tod6bV3pOo1EjkAp5BD%1~;iOLRJyvQcprRdf zM4AX|AVmr=x3$^aIT@MsT6PUSHRJQd*d;e0%8ex5OW)7hsCVq*VL~vp#?ZqkoNqdQ zf3ejCP4r+}*9*lWxQe2MxWF;!L|9Qi-oJB5EvZA`iBOAd$h$F!xUKW5Q+*J!|f+wV*t#*1}`#{n~<;E*)aYbRQReG2ytR~e6y z$ar&K+(aR~K9_Yaop@cBO!Ih;hLPPQIP;|7mbI7)6wNYthEc=O7}AN&o{z>UaN2SZ za+c+{4Uj`ZOnWP}lma0Gmy;g<@Y@-b6&rW^ew;Kh$?;sj{`%^TS@?V#Eq2T{g z`Cl>>X4_j>S0>6~0qoR4{5WWWdC?W`k-Yz%+P5qgT96kOT0vekG|`M`Frs;3h8WyO z^nWwmf2DU88T|iaKAX3uR7#!JRf1hJ-fXuEw_axxn8)%@N;f>q6}$@CWSq+PM#xmb z4Txw2eE3KALL6}(8N>Y2GQ8Bq^R~AX$c5l(z1p?hoAScvU#AJ)=z@AIU^|61@%pkR z3*@h!q?iZMYe~AXpxsjnT2Iwt0jBl~DbCFd2*)mFQ85$lf5 zbcjp#TBbE%zoBi%hnxEn`N@tiPZDDuS!=Esz#wfLtBA5Xkk*W$+NtN6zH1HVHXwCY zok*OEXQTc0=Ai;9mf(U-SKtoC*qX3XEPV?*km{6$Kp854qWBgO$1*J;zu!nlsaFsI zr&xX+T!`KjVE4T!!R2?AhsgUV50t=4u?hDn!hLH!TgPQHeku!5+EoxG5iHg@g%)EI z>z9W>ek%uHECPmdzXy|H3%V=Bj!KyQo`iN05$Id{-;Zdce6EoMSD^sA{M#YBPLr@k zpayI&!HI6hs7X2U372jWkw;7_t}?-C!@OKJ11F!x%QmQnwF6217ni}!U`PH8Y-j%8 zvZ3gdjIt+=3Y_oZZJQ2?usJj>i~kKAm7;Oz*cASO%iOF@NL}T9QK{8m&qadFAoM%OjRr9N_ey7GQTUA$e z@%*XF>uc1tS<7mREbE>T$17C$Qs~j{G2CHh*+vsSI9NwG{bIyn8&}?$MH0DQX~B=Tm4;8G^=KscW|x7Bk_~5u~ogpP3A>fL*moZxlFIG zcOApk47-}d?vR6?{$0c5)IbX>XDtJ3kVe~OX>yk5K}xO z?YPc*cW<%m#{AHG9tsQ9|JBZwzeByZ;i-viQ!%7S60#**revH+Sz;!}zGbYDeczW7 z8OvBoqOoKdhOrdc%N}J5XT}!7;UL+WY~h{G+j}sl_dhuE!(20SUH3iL_xpW5&-Hme z&;8u9zqiER67W2mgc5i|T4Z;bPi-4M`mqC15V^w4Jmu-?bN?znMQ!_Qp&Rc2M2c{! zOg*f>EUxZ8H+lh7Yc)x1T1X5tku})5ID|P%D_1RrrkT zoIm7hJ{Y)u1&yUD(5m>5d&==hp*jJ~O@ZvQ#d-eB}?14iM*&H#pLjoA#=|7o=4$)XNGE z;)N(O1m}XS#o{=jI~Z zH-6eh)-5UAG19xkD-)2SXVKq5U+gfyhCIf@xYY~RW4G*sLmgIfxnqrX-?n+g7N*N_ zKYe5#uyn_GQ}?A^sRyYyoO0$mgPW5@DzJPeI2&=V&2#Ow8JpFd*7Zgf8x|1b8W8CUvrQj_VLC^rDj+Ez6gP{Ut)YmZ z*NQ(vTE6OOyt##12pX>lQfy-rj#KZ@5M``H__webX}T2m)QdTVj}W?-wRVWRzdV$< zu&BKzLb07Oq#R7J{_jx2>#n)hK6%A#;_aBEAAOnlP3{wGAnrrG3Q75_1!V+n9i2DZ zhoW5`>deZQfuC%Xx#GmCzL0 zw7aqFuk7EcPhc<%`onFvE^4=8eSIwbxwJny*eFt&H-qKdiFam+8v>ZX<21c?_3PkQ1rx1ho7Yzu!qX5! zwr<(d3+d8nk%qwWW>Z-4wPilGnTO#|IAd86!9k@drc(F_L)O;JS5cN8G`MZR66lP#y^xcFH zThfUr=c8W=%Pn7ba?)T6h55#~CdO`$mYS9~*?kFxOl(0G44n@_%If%a!%}3TP*QH$ zO&Ut`arr66@-E)C)}AE|O<#{*ifsGJXfo&qd23l4d3z&am6255!mrP`eEV#k{>e{@ z-v}D(`im~_-&T#^L25OtO9V4GOA`wo@n+0u_o`QJW@ZE$4$r-fxm*DWU>Zqe&L#?l zuWWTk%l8Kb;zAI_?r5I=$9z7|9@{`aNzlpON*os8i(dZmD>FYIsF9Ce85TOGtaRR= z7qi?QW4128I4q1=NyY?z7lTDxY|$JpWz&4SY~2M1MU7R-aTW;Qs|nb4CwcAAT@3uC zuhH{%{v0PtaHTQq>u_079LcoJ%~=x`0i!+(U&w77sC))0)Xbd*-Eb zSv=IS=ZyhBaT+P&p=Tb@xtFCYD%g*agIVoZ$d-G_YIqxE2Z>ZJX39_dAvEJ%D^cqs zC=^xp_eI)45HFY!L5t zN`l32UmfQ~<3&Hdq#+*0B~fC^JFF4XTix`Kg!6$7r7H!I`9mj;EJGfX;m+>w<{tGJ zb#35FwXyjOd}9pD&dlD&>|f+$IowH@OCHWPl}+p~9=L;&PEbhO?W@+$Z5V)`XM075 zF2m`skI^j%mP9(TL>F;A0>fT`ZPYG{x8(>lm&))yWZw$b5s|l)L%QBv2@Zf?E>G{f zS=V>S)W(q!~CLbKawM$gs4e`(e2Mj zi-!#D$-=r(xCD+HSqPISyyLRZP%jlFzk?0^-vftsTcfI7_Z!=-9$aArJWiIQgVV>o<4CtLG<9vYQIwpZ%fKr5Aku znu;sr79sef(V>sx6UYZ8v}pOT&U_l<#7LmS6uSYPkw`_@w~nA4h&dpSz(7!mtlGZ$ zy(ZAt=H(3IfOiuhi{8434T8R0Kh>o;xwt{o?)fK=iv;nyLoQL7VCR%;Cv1chyAryP zUZ~m;#d-Gbv2oMHldVwG@=DgKcN`RFsy^NiJ5_b1 zmIK5b?MeCN=KMF=!ls>G7g2Kr)(+0_R;vFb4~t3Ut83W7eqFMV9%Jl+o=XauZuM> z5ox7T$kkz|Hswl<@q9x@8=r#1-BHgN8Jw6AjC1ixM_O_!erw)kb0|RUG`P9B=Darm zRuj)3-o@^aUiUVqc8A}Min?)yaI~hv*xa09KzEjB(MUv~mxVNq=wfZ4gw4-C6JT7YaBlPHWimq}Jc!kpi^Y5Ic? zX@0eJWku10Tl68cz}`y=ot$jaw(3iOmEtpboG1_t-6ck}>EeU+--n%Vc+W06E^%As z4b6_4m0$;2Qc^nCZ+ckx2{3sks?o`QmxER|f5y{n^fbaHIlo6npi{ss=;F7i!ezD( zn)c|6C0B_yg5dhIiwr0{aM9#7`rDlquk)fkE9+K1rHS$DAS3rlXK?oWclRlo`k#$8 zcbJTC1LesJQdY-V%F5W&W&L*q>u+_|zw=jrt&sn|VLFQ+d-w4L>>*Fu1aFOtX1P6UM_Y;&+{&JryCpD1T zpl}b`OVO?W!>*7TesFwn4@`k_|AhaaVM1yq>RGWpE)vgAChEyCY6@z#{T@Y+;7^ME z+IwpFL6PJh7yvL91N=%dNlkE2Rk)wPL7bXkPh&{ULM^V_}It;qTTxHJG}n-UCah{sdE%*whTvmD3(WG~y@2fjWvBe{gHNhXw#d)d7HiY;>vN x2lpEL;e#6c;6HaB)aZlxct4t~z5faRDmx?LG?W$dLm+V+K%y+VE!`jA{sTQ)^2z`J literal 0 HcmV?d00001 diff --git a/code/__init__.py b/code/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/code/agriculture_data.json b/code/agriculture_data.json new file mode 100644 index 0000000..bb84f7d --- /dev/null +++ b/code/agriculture_data.json @@ -0,0 +1,1306 @@ +{ + "status": "ok", + "totalResults": 5998, + "articles": [ + { + "source": { + "id": null, + "name": "[Removed]" + }, + "author": null, + "title": "[Removed]", + "description": "[Removed]", + "url": "https://removed.com", + "urlToImage": null, + "publishedAt": "2024-09-11T12:30:25Z", + "content": "[Removed]" + }, + { + "source": { + "id": "business-insider", + "name": "Business Insider" + }, + "author": "Erin Greenawald", + "title": "Crop loss is a huge problem for sustainability and food security. I'm using AI and computer vision to help fix it.", + "description": "Fermata's AI tech helps transform agriculture by detecting early signs of pests and diseases, reducing labor needs, and promoting sustainable farming.", + "url": "https://www.businessinsider.com/fermata-artificial-intelligence-technology-for-agriculture-plant-crop-health-2024-9", + "urlToImage": "https://i.insider.com/66d74af41d8d2deb96b843d8?width=1200&format=jpeg", + "publishedAt": "2024-09-03T19:05:12Z", + "content": "Aron Su\u0308veg; Getty Images; Alyssa Powell/BI\r\n