From 285a934d0370ab762a246b0eb58993ce446f27e7 Mon Sep 17 00:00:00 2001
From: wep23441 <elizabeth.mamtsits@stfc.ac.uk>
Date: Thu, 27 Mar 2025 11:39:56 +0100
Subject: [PATCH] new approach to docs

---
 .gitlab-ci.yml                                |   2 +-
 case-5-docs/.gitkeep                          |   0
 case-5-docs/README.rst                        |   5 +
 .../docs/build/doctrees/environment.pickle    | Bin 15016 -> 26320 bytes
 case-5-docs/docs/build/doctrees/index.doctree | Bin 3753 -> 4511 bytes
 .../build/doctrees/math_operations.doctree    | Bin 0 -> 12636 bytes
 .../docs/build/doctrees/modules.doctree       | Bin 0 -> 2836 bytes
 .../build/doctrees/string_operators.doctree   | Bin 0 -> 12022 bytes
 case-5-docs/docs/build/html/.buildinfo        |   2 +-
 case-5-docs/docs/build/html/.buildinfo.bak    |   4 +
 .../docs/build/html/_modules/index.html       | 102 +++
 .../build/html/_modules/math_operations.html  | 172 +++++
 .../build/html/_modules/string_operators.html | 165 ++++
 .../docs/build/html/_sources/index.rst.txt    |  21 +-
 .../html/_sources/math_operations.rst.txt     |   7 +
 .../docs/build/html/_sources/modules.rst.txt  |   8 +
 .../html/_sources/string_operators.rst.txt    |   7 +
 .../docs/build/html/_static/alabaster.css     | 708 ++++++++++++++++++
 .../docs/build/html/_static/custom.css        |   1 +
 .../html/_static/documentation_options.js     |   2 +-
 case-5-docs/docs/build/html/genindex.html     | 111 ++-
 case-5-docs/docs/build/html/index.html        |  46 +-
 .../docs/build/html/math_operations.html      | 167 +++++
 case-5-docs/docs/build/html/modules.html      | 131 ++++
 case-5-docs/docs/build/html/objects.inv       | Bin 266 -> 417 bytes
 case-5-docs/docs/build/html/py-modindex.html  | 132 ++++
 case-5-docs/docs/build/html/search.html       |  17 +-
 case-5-docs/docs/build/html/searchindex.js    |   2 +-
 .../docs/build/html/string_operators.html     | 160 ++++
 case-5-docs/docs/main.py                      |  16 -
 case-5-docs/{ => docs/source}/conf.py         |  34 +-
 case-5-docs/docs/source/index.rst             |  19 +
 case-5-docs/docs/source/math_operations.rst   |   7 +
 case-5-docs/docs/source/modules.rst           |   8 +
 case-5-docs/docs/source/string_operators.rst  |   7 +
 case-5-docs/index.rst                         |  18 -
 case-5-docs/requirements.txt                  |   4 +-
 case-5-docs/solution.txt                      |   0
 .../{docs => wizzard_code}/math_operations.py |   0
 .../string_operators.py                       |   0
 ci-configs/case-5-docs/generate_docs.yml      |  11 +-
 ci-configs/case-5-docs/pages.yml              |   3 +-
 42 files changed, 1994 insertions(+), 105 deletions(-)
 delete mode 100644 case-5-docs/.gitkeep
 create mode 100644 case-5-docs/README.rst
 create mode 100644 case-5-docs/docs/build/doctrees/math_operations.doctree
 create mode 100644 case-5-docs/docs/build/doctrees/modules.doctree
 create mode 100644 case-5-docs/docs/build/doctrees/string_operators.doctree
 create mode 100644 case-5-docs/docs/build/html/.buildinfo.bak
 create mode 100644 case-5-docs/docs/build/html/_modules/index.html
 create mode 100644 case-5-docs/docs/build/html/_modules/math_operations.html
 create mode 100644 case-5-docs/docs/build/html/_modules/string_operators.html
 create mode 100644 case-5-docs/docs/build/html/_sources/math_operations.rst.txt
 create mode 100644 case-5-docs/docs/build/html/_sources/modules.rst.txt
 create mode 100644 case-5-docs/docs/build/html/_sources/string_operators.rst.txt
 create mode 100644 case-5-docs/docs/build/html/_static/alabaster.css
 create mode 100644 case-5-docs/docs/build/html/_static/custom.css
 create mode 100644 case-5-docs/docs/build/html/math_operations.html
 create mode 100644 case-5-docs/docs/build/html/modules.html
 create mode 100644 case-5-docs/docs/build/html/py-modindex.html
 create mode 100644 case-5-docs/docs/build/html/string_operators.html
 delete mode 100644 case-5-docs/docs/main.py
 rename case-5-docs/{ => docs/source}/conf.py (64%)
 create mode 100644 case-5-docs/docs/source/index.rst
 create mode 100644 case-5-docs/docs/source/math_operations.rst
 create mode 100644 case-5-docs/docs/source/modules.rst
 create mode 100644 case-5-docs/docs/source/string_operators.rst
 delete mode 100644 case-5-docs/index.rst
 delete mode 100644 case-5-docs/solution.txt
 rename case-5-docs/{docs => wizzard_code}/math_operations.py (100%)
 rename case-5-docs/{docs => wizzard_code}/string_operators.py (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c0dbd7b..2cad4ec 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -40,7 +40,7 @@ include:
 # # Case 5 Docs
 # # stages: code_quality, build, deploy
 # - local: ci-configs/case-5-docs/lint_docs.yml
-# - local: ci-configs/case-5-docs/generate_docs.yml
+- local: ci-configs/case-5-docs/generate_docs.yml
 - local: ci-configs/case-5-docs/pages.yml
 
 
diff --git a/case-5-docs/.gitkeep b/case-5-docs/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/case-5-docs/README.rst b/case-5-docs/README.rst
new file mode 100644
index 0000000..48bf455
--- /dev/null
+++ b/case-5-docs/README.rst
@@ -0,0 +1,5 @@
+Lumache
+=======
+
+**Lumache** (/lu'make/) is a Python library for cooks and food lovers that
+creates recipes mixing random ingredients.
\ No newline at end of file
diff --git a/case-5-docs/docs/build/doctrees/environment.pickle b/case-5-docs/docs/build/doctrees/environment.pickle
index 98dcfb4e0768d6531ddf1802bb1a4bff88d38cd7..31cb434e6c82ebaecbf14dc576c0dd2829b80a70 100644
GIT binary patch
literal 26320
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
Y7*<16q8benEA7D?Mktw5TAHK>0CO?Iq5uE@

delta 5643
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
D(hVBT

diff --git a/case-5-docs/docs/build/doctrees/index.doctree b/case-5-docs/docs/build/doctrees/index.doctree
index 0cf115738db378511b4680bf9f8043da6d220222..1899c32a5c3b9f9f471520029d5fd9d2f4d27e5e 100644
GIT binary patch
delta 1546
zcmZ1}J71Z#fpzK>!HKMKf>%Q_QWe58tEv)<QWTsMbCM_K+0=(*lq&cp7AY8+D;OGB
z85>%em?{_<7@6vEMdp_(Bq!!6B&H-5lqi&BWELx=W#*(RB<JTA<fN9Q=2R+_<SSI>
zmli4HWM*gPrRyjpm6j-EmM9cw<d^28C?u9B<fJARmvANL=anR8<|&k9q$(8U=a(oX
zl;kIu6s4vnDCneQ7NsVaWR|7sP03)7osz-O!xEBOQ8H!nl%B!pUQW1sCo3|3VPu^w
z#$@6qhaRvBDf!8zxv6<2i6xo&c@U2Y^bk-sc@dKvBm3l+Ow#q69aB;uAqxt+)Vvaf
z(&Eg#bcKY3qSWA$qSEA&(xTK9P&g$dC=^%bl_XZ^DFmmcf<l-JLydw>MoCFQv6a4l
zd3m{BaY06AUWIN-ezIPEQM!I=o_=m(aY<^Cera)Hda8a=YH>*z%!ZQGiW2?Iyp+@m
zy^NCF9J_>gE)<_Bq~#YWq@<Q4X66(_;!h((php~s>nHQDNCaju^swh-mZTOX=1iG9
zMYC~A?G%j+)*caTUV{ak0J^WIv`&F&6wUCOypBmr#v?;C!=W@OL!d_xBRoLX)@LyE
za2BPer52^;C8r`=97B0<;SMdh2W0U0Aa3$HCbjw=mb}E=)G0lfe(hl^N=+**%AC^U
zMq)hTaM+a643&%+XoxZNu$3ehrPrr|vK%}*JV{P7IP9{61c4YRmL+1r-YbSDU{La!
zl9(YCJ0&AY28X0v?34_J*eUQp$jAq|zMzK-9-ApsycwaM5$KV|oj@mZvq(<<%qBJ2
zj)iA38*8(YUk`h3eoARhYVnk|DTzHinR&@Mr75YPLaum9?39doiIZos)(I^ESvVm>
zEkiv+!<#QdG^1y-7Mn3+*W@@hnGCs-j8xrnNSUgeoS2gg%2-HQAL2WZ=RhhIpehwW
zD$xpw#0;ocLDp$zh-NTnsAe!jt!3Z*ku9Bx@!94`&U?&y8W}q?wq;ajRFw8`f>KRM
iWkG5&I3w-s%&6`t&5!^E_qGh}jEan+(#_$#L5u)p13cOQ

delta 891
zcmbQQyi%66fpzLUzKN`H++n$u@dZWsS*gh-lcO1Jbiz|p6nqnl6ch{<j0}uS^`>O7
z$4<#$=wS&-ttgo?c}fqO27WXRljWJdFfvaTVK#|S3s22S&d*I%D9Kkq*rHynkdmKV
znwy$el30?NpQi}1L7+zitMW$;Gto6n?qhbVXDv<2VCdm2NGwWBFG?)Pm@;{aX5*CF
zDH<89J@p|OnZ*j3#R`cE#hJMUIjIUzA1ah*mSiX-B^GBUE954YWGE!&r6?4a6lLb6
zE94iX7J(g9tfvr?k&5a_h4Rdt9EGG*g~Za5{M^Kn%=+ZSoSaI9^wd0%uGAET(qfPy
z!37zac@@w=6QH3(RN*ec=a9*3*(E1ivC7rkWvFGSXJ~k{XNYEKXQ*Z{mnLP{!^2D8
zIX|x?HLs-Dic43)7Zfi3@W9~GRS1Rz5JC(VV?^r{hKB5v)+vxU63y_NtjDS~`3ZZs
zU=L4bUUE)pN@`kWPHOR#*eR1Ia?}ZxlxC=8Btf0cn<1JJH(8O>xIPBv0f>xWX;Ny2
z7%0{yVyE<|mO~PpZb`mwZlx|X(she<Q4-vg#0;s}DH$@cQ+m{(8VIG(#0<IEDH#f}
zQzjqb6k%a4O-h~Yz#+N$E2lRT<F?I?JolItGCDKbihDTo5_3~aDhpDJr_@f#=<F=c
Skf@!K(UzfIyxCVEh!Fr@??STx

diff --git a/case-5-docs/docs/build/doctrees/math_operations.doctree b/case-5-docs/docs/build/doctrees/math_operations.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..820f9716290b4c30ef7c03905d57460e1fdac4e6
GIT binary patch
literal 12636
zcmZo*of>G!00upLDf!8zC7C(JdU^RNsl`)zI6wlqsd*(+CQs39oKibQqldF7vAj6H
zv?w`sN)N-79**RU%$$^>)VwLNQ!*HO*o#w>OEUBG;OaA2GuSfNW2b0jF!ZpNWR~Ql
zB1!d#=O&h9#Kh+pq!uNDv=uAl=BJeAq)q{8$zbSV2}!L0*$q+1fJI^J6o|9f3KEMz
z?#vMA;f#m7I)k}~4eD6G9+sTUywoXvrAdiBT!|$mMVU#ZC8@<=Pcdhv6i<nr(!-vd
zlUQ7w3TCtBCFVj{94Vy*2u@OBa&}Q_8c0oP4|_>sI!J0t2499$26u*Z26Ki?Pndp2
zer~FMQff(tZf;_(esX4VN@_)7Zb43Jv3_!<ZgPq)f}2>Js%xs7lAm0x4<;b))dz(P
zl7IDzic6+s$a*uCCiU<a7i47SRp=$Aq(I||H8U?IwE`(*A%UJDS35-`Lm_rbhEnX5
z43*d^8EUapGBiLQP0cGQ$^?5)qlcv+F|%k&k2oaktrgI$p3)-*k<mq$$YAp;nUYwV
zp_QSF<ojYWeP5ngRh3wj5}%x(l8WK|f=Vk;=#&&?=A|p-r(w7;L)Nb}DTAShvmmi3
zF}*0UAOk5hdW=IdGGS>;Avr&<Br!9uSRpB~I5Qb+Qfh8uNoI0ljshYj>Os<=D0zCJ
z$udJK!x54u{J;)O#2F)?K(x=0$*{|i^=5<xW@%D}9wghrvJp=GJ?zLa%2u42m!6Y4
zrAIL_B}GG1K_fE{nzO*(MM_tiQ+kBaq7{^`reKfS@&Slih;zWvtJA}hl3JXM6tj?Y
zu92bB!v~UyFV0NQODriZLMdf9L4lB{qmZNtj#H3o9<XXq21?9DQ7eER7+@_KqCJ=r
zh&ax{9mg6y+{Kycx&=k4;9{bO7i2NGlmYWoQF0|`MQ)B&aX})eY~?5@N-a(;DodRL
zN*Y-iQW<FwTY3gC61*8plQMLAI6<C>2YUckFJ!RxFej#@z(NbmMg&kJ#Oc^FfkqDp
zD1g9*^>Ba;1~X9tCZi^!78DBgh)~F=17#GjYlJ|W;z9X7H?<_SC?~TRRAs>OO%Dqw
z=E3d)MLZ;#z!f7Ur5?sau&N9lNF;&M5{4gPYD7V*5&oNx+kZWbc~cURV;SU;xfxO!
zGfR_j7Y8sOPtTCbm|U8aF$3-$#w3U<=V6G5_An+*LAYrLZZ~DD!s?<eB)BLQXGsKd
zdXHpoX--LIJgCM+#7sOmYC2IQONtURb29VN<CF7qa}%d@fI?>?W;FK*L+iZMiW0rD
z%+zvFB{8LkAI6MN%uCM5FG7k=NXdZHl|7tAsc9vNMd_&}Q+g!gAr)LPdbKm9hqWj*
zEi+|GMsp8aQEFOBe)5zaezYP2oI$T5+zd(ONC6a+2&#WIdYFqd)2H-sfs%WEQdVkm
z$rO}S-oplQ1r{56Siwcclnk~Wj<nL89B>xNXzt;PFUd~^1#n66l#F*7&23Y9IKe_-
z1wE{wf=?6dzLX3ZNS4Wv%18vI3~<(g6oa4&5!7}<<Yh?UX=FIS6Pci6N=mUpNqN3P
zUTJPpYEdz~e#9b!NQA#YR%OUQf&_PR2gN$5_KO2$>I|uj?;vfZNl5kw1SA$Eg7bH=
z6;~ptLMzcxNXyAjEYY-52+2rQNXslLE`d5uk1Gj_isIDd{Ja#H5=br*?V-NGaNlQf
zFfuTJd_r0PFk=k>gP_!s(xSX#E3V8unAagbFD}gmwTMbGQnAJl=^7Cp5F^V2><AAa
z<pQ)OC@9Lm!V+VKOhz2IfrP4Fqlc-WatbKP=RtZEX!#{2KQ}QmZ%URfBLhPZdwx<@
zNo7Imlq@|E7hIJf^Yij`A+6-j9`?L^7?TestP5&CRZi*b;ekrR_=0))y3ia_3|GXT
zmk$$zsRNk=vadL`q$D#heM%?Dhw<R(2lWhKJ|wS2ml4&Yl9E}LnUYGVH7ABvI_W{Q
z;b_oR4Mc+u<|1&LE&*1=z{;Fdm_QE?M4<+#0*5u-vf;9r4Ki@25pPQ^D+q6b*2pN&
zs6a_$pvnvsk69T~S$=T6Jp&tT;8s`zJRsO0!2~PNU|d8lPJ}xgTRE(e(UZ}O)zkGT
zp3X`D86yj}d=lJp<kl5ZBL&)&LTaQyMNk_~S>+%z!JTGoPQ%_#$tq@KU?8%ol9dlu
zOGf)CtDhXFb%U+LUD3hP)AS4}sMAnOJmiKVNNvWY&Wy{jMiEj9M2?JWu*iVqAZj&v
zvXVi?D6G|!@dT6&uA-y}NR%NwkmbS1zyN9MWW30DiJGR~Vz!$y-e<67d;r^%@iA);
zBLf4N-8LoTa}Nh3QER|kFK{1cNM(6Lqoy<|;~T2yk((^)F5m*QSOHWsA~z2dk}APs
zkOl#~Aw#r!M9w+{bqLWFe3lnT2e^x$wI9Tk&R|Aq=Xeup=j4^<f(Fa-i?BCxQd0Bs
zb2IZ2OY)209;2$62+v=Dx}RjvGiOL)_q;B=jRS7kL7F#(rTHb9sd*)^HV!CZ6ldn=
z!M#VKE`$f}k?R3=TprL5O3W-yEw<tcOUx-vbuB8&FS1hbOarGjq?l32ELNyWEy{;`
zfn<FMPrM=56I>{sK;&XjUj?}s0_FR!NSQ7}2AYWdN|R7^;cu>G8G$l5GZO<tmNAIM
z0%DoKS*DB(44qkKVA32+T7XGQFlhxQtwAKnJxI+egk#8VS*d|Ls|7iggxXdT=xr;Q
zMjWlHnt^CtA>2f$eZ>b;O3fCQ9234i5B?UG6kKo5KnESTnS*F!alnEK*2+Q%AhMz^
z-1(525w#hBznz8fdX^5z7%I23oIz%i+Rn0PBEFqv4OUA|J1d$Tr-g&9Lk(c$LJQP(
z0u>aXb{52Gs6`dJTGVzH_Q;@BJ4>I5fdM|cglK0W905s92oGe5Fp<;F0@;)CF{=Yq
z?t<9hb`}>bVI#G)U<oioDoY$1Irv*z;=Z8KzJi?0RO~}UIOP#}rw?io@r?;FkPb*o
zsvE>aZ%I*qU<ca2q`tw3V3-5-3CY0#YExki1`~Lj3VqzDpeR43G#TEm!Zx-?o@Ru1
zR*~x+Pzwv;9YoT{)i{Br(+rs`NV*`aadHrpHNcINLm(EoaRO$M-8g|ehWy4!acNRX
zQDSll$&C}3#=+D$LAZ%v;{>LZnvIh?c+(^P#>ox1-hpYHz`_Hx3IH?>htxPhNU_IG
z$q?<~fD0h9;%m6`A=L?L-HE?(g7A9QE08f%Zk#YO<7+bF7zFxDLJQz0SS>k?6G?KM
zCdy2Fy9wen+yxw{A%ogD!5$g3YMi{q-Z()x0+N~#9>}^xR^tR@PsYbAH)aNgED#&g
zIDw^Oq{ay>0cJ>LT?M5@NVSh=7)U!9T7W_Zf*^xF&{-gbw4(f6aPJ&EJ_PTNlcWcc
z$9(Xo7Ni9@pth-fhD_EKkQX407*D8Xl;I%iw>9X{h>3#wg!o1bG#EgQ7_7lygR>En
zl9`s4T9lfXoT`wNT2h{xng@<fY>gSp3_-+l2D#n?HEIyvLu46TjT%_`hNly<8a4Hx
zECp`VG=Ny(Mh%!ncB2LoTPTjv$gt@F&phcOR#53er?XRG{)4DMT6_dulQbm}wk{2n
zEjTlzGMK^BW-=MtkQHyJbro{o4ZgfDL%T<$q$n}3I0w9tFutHDKfNfm7_z*NwIshJ
zF=vW5Lk|~BO=`*%Z-!EkeT+SP$)!c0#e?yXrFT>OdU#+Wpal$5{CYT`lX}HddIUj>
z3&Cq7(~9!*N>cMuru49Zhx>}*s}FkE@=Hq!N=v5rW$^j+aHgl`L56In`1Nq6B$lKW
zmn7yEO!4dCF3Qg@i7x;xF{qf*!>B){ha2Jq(87uADSka%P;O~a&J@2MUeIJeX!&7I
zW?pvjlpa>d)MJlOT7G^>UVcexJVLUghZnRIGp{r^z9KEZD0fOn4_|RfQDy;np+#z5
zN%0iF9%+b3YECL>jc0Lud1gsQJb0x+DoC0aB8?E>DM~HKFDi-8Ni9pwnc~gV!<CVk
z1Lv~#2&PtKmc$pAB$kvG!xXXhu%@IYm8MVe>)|U;EXo6|^(ZbWN=?iKg$Af)n+kF@
z$bFf41*IkNsd>ryDWD0|9?sH|G+hf_@Tv(JRLS^M(Aa8xMq*w{PHNGV9yX9ulS`)b
z@Iyi#$rM(wDN}l6(PYq!$lAutz|g}7F&E(mm~I(V2{g?;0w6yW=Oh+q6r~pAfERG_
z<|O8&mnNpCf)_MS>0wIEo6;j(l$xAhloFqkT9BHTlA4zcT7&7=!<L+%mzD_%BhJhe
zSc1r4>)}f*Ey<5Z2=y>!rcCMKO)1SSh=(UhzaBoYKxSS^YEfQd4k+sQ!6M+q4vKw*
zP(g8OX-a;4MJ^~o38YpO<QJ#LBkKgGlH`*3vdrSllKi46em(s0DVfEINjV^oKwZfW
z%PJY#Jv{L#sl_FrDF@KHU%wvSc!+1>(=v0w3ru^&K&<%8yyDa%&?4XX)I5-BDN{On
zxQi0Y;aqRV9zjrki_b~TOE1ZY&&kZqEScgfpx(n*kXjI5lnO2AL7w3Oi6kW!r^bV_
zMvp{BNl8JmmA-yKYC*AHL1jrsex6=_QM&$=9#N1=umehqa^g!;a|?13OH!xwa1^8#
z=&Bl+q)h4ID@sd7Gae*@FkTI2d`e<TA}GmbrxxjDrk13E?MTT_*3T%(&C#FI!&#D;
z6knd1Qj#&no1;gzq$o2t9-cYj9*Bo5@$2jnD6Y&aNvw#^$V|`3$xP2EnbO0Olb@G9
zrH7|DH?gQB9yIrnT0EtrM;Oe9aN~3GlM|sqE1R5=2<jZB7D4h`d}bav2y+vQvP%o5
zbb^<3gO^=Hi-FD_-jw|0%)GRGs6a=L5U8L4wX{I1v!SA$J-nH@ptPHlp9sl}pw-ja
zQ+fnabCXh2;)_cvb5e^lQd3K&boPiQ=j115$EW5dX6D2vrlf$%U9hVKK_+MB=fxMN
z=A=Q&w9X#p)Vwm#D(oH(NNJJ^N@D_<c`2DismUerkTqGwpw-xd#idEbC7C6q;8c^6
zng%M(dxTI#K?|M0!W>1ZX>bl`))KU&yLL(sJ4g`1&gukJfNjhS48=X1AYt%wjVZNL
zz!IIs849&iG_pYQ8Qd8*84Nva5XZpFb<9<`HsI+_lp2XOvp6?D1-z0i>kp`@Ak#BI
zE22>r631kuf#+wzlgQu^#4IV$AP1<qo&{>om-g@?CslBu@+N1NK<ZQQiuc+nJ-nb2
z38oGbOUNRiYy=h+D6Y&+%FltPez2ejnjl;?CyI%jFk8Wzgiy>cE=epZnc~gZBZ_Vo
zRED94D-*PaycAR#PU+!J&d<q#>`5q|(!=hY4-ua{rFKf|l%Od+d<BU`#i{YRsl~;K
w>5$?|2wrTW2y?@Q!6}wIGcP%(G$l1YCqEsOSh-R_B|A8<ruc!HFQrL(0B{lB$p8QV

literal 0
HcmV?d00001

diff --git a/case-5-docs/docs/build/doctrees/modules.doctree b/case-5-docs/docs/build/doctrees/modules.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..1dc285c99019a04b7d4339df4534f8adfd60e120
GIT binary patch
literal 2836
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

literal 0
HcmV?d00001

diff --git a/case-5-docs/docs/build/doctrees/string_operators.doctree b/case-5-docs/docs/build/doctrees/string_operators.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..6590a64b2a52d22337b41617f4251c6a879b3969
GIT binary patch
literal 12022
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
A^8f$<

literal 0
HcmV?d00001

diff --git a/case-5-docs/docs/build/html/.buildinfo b/case-5-docs/docs/build/html/.buildinfo
index 9ea9b07..1a23297 100644
--- a/case-5-docs/docs/build/html/.buildinfo
+++ b/case-5-docs/docs/build/html/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: a32352b8faa430ed85cf93d934744f43
+config: 19961433baf824ad1a6e7275ddd2b28b
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/case-5-docs/docs/build/html/.buildinfo.bak b/case-5-docs/docs/build/html/.buildinfo.bak
new file mode 100644
index 0000000..5b21876
--- /dev/null
+++ b/case-5-docs/docs/build/html/.buildinfo.bak
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 54d05628686093d9220e7209dab122b4
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/case-5-docs/docs/build/html/_modules/index.html b/case-5-docs/docs/build/html/_modules/index.html
new file mode 100644
index 0000000..8dff246
--- /dev/null
+++ b/case-5-docs/docs/build/html/_modules/index.html
@@ -0,0 +1,102 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="../">
+<head>
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>Overview: module code &mdash; The Wizzard Calc o.1 documentation</title>
+      <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
+      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />
+
+  
+      <script src="../_static/jquery.js?v=5d32c60e"></script>
+      <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="../_static/documentation_options.js?v=f8b91ae0"></script>
+      <script src="../_static/doctools.js?v=9bcbadda"></script>
+      <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="../_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="../index.html" class="icon icon-home">
+            The Wizzard Calc
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../modules.html">wizzard_code</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../index.html">The Wizzard Calc</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active">Overview: module code</li>
+      <li class="wy-breadcrumbs-aside">
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <h1>All modules for which code is available</h1>
+<ul><li><a href="math_operations.html">math_operations</a></li>
+<li><a href="string_operators.html">string_operators</a></li>
+</ul>
+
+           </div>
+          </div>
+          <footer>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, The Author.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/_modules/math_operations.html b/case-5-docs/docs/build/html/_modules/math_operations.html
new file mode 100644
index 0000000..c9e8dbc
--- /dev/null
+++ b/case-5-docs/docs/build/html/_modules/math_operations.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+
+<html lang="en" data-content_root="../">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>math_operations &#8212; The Wizzard Calc o.1 documentation</title>
+    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
+    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
+    <script src="../_static/documentation_options.js?v=f8b91ae0"></script>
+    <script src="../_static/doctools.js?v=9bcbadda"></script>
+    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+
+  
+  
+
+  </head><body>
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          
+
+          <div class="body" role="main">
+            
+  <h1>Source code for math_operations</h1><div class="highlight"><pre>
+<span></span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">This module contains basic mathematical operations.</span>
+<span class="sd">&quot;&quot;&quot;</span>
+
+<div class="viewcode-block" id="add">
+<a class="viewcode-back" href="../math_operations.html#math_operations.add">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Adds two numbers.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    a (int, float): The first number.</span>
+<span class="sd">    b (int, float): The second number.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    int, float: The sum of the two numbers.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span></div>
+
+
+<div class="viewcode-block" id="subtract">
+<a class="viewcode-back" href="../math_operations.html#math_operations.subtract">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">subtract</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Subtracts the second number from the first.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    a (int, float): The first number.</span>
+<span class="sd">    b (int, float): The second number.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    int, float: The difference between the two numbers.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">a</span> <span class="o">-</span> <span class="n">b</span></div>
+
+
+<div class="viewcode-block" id="multiply">
+<a class="viewcode-back" href="../math_operations.html#math_operations.multiply">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">multiply</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Multiplies two numbers.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    a (int, float): The first number.</span>
+<span class="sd">    b (int, float): The second number.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    int, float: The product of the two numbers.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">a</span> <span class="o">*</span> <span class="n">b</span></div>
+
+
+<div class="viewcode-block" id="divide">
+<a class="viewcode-back" href="../math_operations.html#math_operations.divide">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">divide</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Divides the first number by the second.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    a (int, float): The numerator.</span>
+<span class="sd">    b (int, float): The denominator.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    float: The quotient of the division.</span>
+
+<span class="sd">    Raises:</span>
+<span class="sd">    ValueError: If the denominator is zero.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">b</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;The denominator cannot be zero.&quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">a</span> <span class="o">/</span> <span class="n">b</span></div>
+
+</pre></div>
+
+          </div>
+          
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="Main">
+        <div class="sphinxsidebarwrapper">
+<h1 class="logo"><a href="../index.html">The Wizzard Calc</a></h1>
+
+
+
+
+
+
+
+
+<h3>Navigation</h3>
+<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../modules.html">wizzard_code</a></li>
+</ul>
+
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+  <li><a href="index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<search id="searchbox" style="display: none" role="search">
+  <h3 id="searchlabel">Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
+      <input type="submit" value="Go" />
+    </form>
+    </div>
+</search>
+<script>document.getElementById('searchbox').style.display = "block"</script>
+
+
+
+
+
+
+
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &#169;2025, The Author.
+      
+      |
+      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.2.3</a>
+      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/_modules/string_operators.html b/case-5-docs/docs/build/html/_modules/string_operators.html
new file mode 100644
index 0000000..8b8f917
--- /dev/null
+++ b/case-5-docs/docs/build/html/_modules/string_operators.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+
+<html lang="en" data-content_root="../">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>string_operators &#8212; The Wizzard Calc o.1 documentation</title>
+    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
+    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
+    <script src="../_static/documentation_options.js?v=f8b91ae0"></script>
+    <script src="../_static/doctools.js?v=9bcbadda"></script>
+    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+   
+  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
+  
+
+  
+  
+
+  </head><body>
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          
+
+          <div class="body" role="main">
+            
+  <h1>Source code for string_operators</h1><div class="highlight"><pre>
+<span></span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">This module contains basic string operations.</span>
+<span class="sd">&quot;&quot;&quot;</span>
+
+<div class="viewcode-block" id="concatenate">
+<a class="viewcode-back" href="../string_operators.html#string_operators.concatenate">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">concatenate</span><span class="p">(</span><span class="n">str1</span><span class="p">,</span> <span class="n">str2</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Concatenates two strings.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    str1 (str): The first string.</span>
+<span class="sd">    str2 (str): The second string.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    str: The concatenation of the two strings.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">str1</span> <span class="o">+</span> <span class="n">str2</span></div>
+
+
+<div class="viewcode-block" id="reverse_string">
+<a class="viewcode-back" href="../string_operators.html#string_operators.reverse_string">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">reverse_string</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Reverses a given string.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    string (str): The string to reverse.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    str: The reversed string.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">string</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span></div>
+
+
+<div class="viewcode-block" id="count_vowels">
+<a class="viewcode-back" href="../string_operators.html#string_operators.count_vowels">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">count_vowels</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Counts the number of vowels in a string.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    string (str): The string to check.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    int: The number of vowels in the string.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">vowels</span> <span class="o">=</span> <span class="s2">&quot;aeiouAEIOU&quot;</span>
+    <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="mi">1</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">string</span> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">vowels</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="to_uppercase">
+<a class="viewcode-back" href="../string_operators.html#string_operators.to_uppercase">[docs]</a>
+<span class="k">def</span><span class="w"> </span><span class="nf">to_uppercase</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Converts the string to uppercase.</span>
+
+<span class="sd">    Parameters:</span>
+<span class="sd">    string (str): The string to convert.</span>
+
+<span class="sd">    Returns:</span>
+<span class="sd">    str: The string in uppercase.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">string</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span></div>
+
+</pre></div>
+
+          </div>
+          
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="Main">
+        <div class="sphinxsidebarwrapper">
+<h1 class="logo"><a href="../index.html">The Wizzard Calc</a></h1>
+
+
+
+
+
+
+
+
+<h3>Navigation</h3>
+<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../modules.html">wizzard_code</a></li>
+</ul>
+
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+  <li><a href="../index.html">Documentation overview</a><ul>
+  <li><a href="index.html">Module code</a><ul>
+  </ul></li>
+  </ul></li>
+</ul>
+</div>
+<search id="searchbox" style="display: none" role="search">
+  <h3 id="searchlabel">Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
+      <input type="submit" value="Go" />
+    </form>
+    </div>
+</search>
+<script>document.getElementById('searchbox').style.display = "block"</script>
+
+
+
+
+
+
+
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &#169;2025, The Author.
+      
+      |
+      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.2.3</a>
+      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/_sources/index.rst.txt b/case-5-docs/docs/build/html/_sources/index.rst.txt
index b028898..b4c95dc 100644
--- a/case-5-docs/docs/build/html/_sources/index.rst.txt
+++ b/case-5-docs/docs/build/html/_sources/index.rst.txt
@@ -1,18 +1,19 @@
-.. my_project documentation master file, created by
-   sphinx-quickstart on Wed Mar  1 2025.
+.. The Wizzard Calc documentation master file, created by
+   sphinx-quickstart on Thu Mar 27 10:31:45 2025.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
 
-Welcome to my_project's documentation!
-======================================
+The Wizzard Calc documentation
+==============================
 
-This is a simple project with basic math and string operations. The documentation will be automatically generated using Sphinx.
+Add your content using ``reStructuredText`` syntax. See the
+`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
+documentation for details.
 
-Contents:
-- Math Operations
-- String Operations
 
 .. toctree::
    :maxdepth: 2
    :caption: Contents:
 
-   math_operations
-   string_operations
+   modules
+
diff --git a/case-5-docs/docs/build/html/_sources/math_operations.rst.txt b/case-5-docs/docs/build/html/_sources/math_operations.rst.txt
new file mode 100644
index 0000000..b3139aa
--- /dev/null
+++ b/case-5-docs/docs/build/html/_sources/math_operations.rst.txt
@@ -0,0 +1,7 @@
+math\_operations module
+=======================
+
+.. automodule:: math_operations
+   :members:
+   :show-inheritance:
+   :undoc-members:
diff --git a/case-5-docs/docs/build/html/_sources/modules.rst.txt b/case-5-docs/docs/build/html/_sources/modules.rst.txt
new file mode 100644
index 0000000..1751ce5
--- /dev/null
+++ b/case-5-docs/docs/build/html/_sources/modules.rst.txt
@@ -0,0 +1,8 @@
+wizzard_code
+============
+
+.. toctree::
+   :maxdepth: 4
+
+   math_operations
+   string_operators
diff --git a/case-5-docs/docs/build/html/_sources/string_operators.rst.txt b/case-5-docs/docs/build/html/_sources/string_operators.rst.txt
new file mode 100644
index 0000000..8ce0f05
--- /dev/null
+++ b/case-5-docs/docs/build/html/_sources/string_operators.rst.txt
@@ -0,0 +1,7 @@
+string\_operators module
+========================
+
+.. automodule:: string_operators
+   :members:
+   :show-inheritance:
+   :undoc-members:
diff --git a/case-5-docs/docs/build/html/_static/alabaster.css b/case-5-docs/docs/build/html/_static/alabaster.css
new file mode 100644
index 0000000..e3174bf
--- /dev/null
+++ b/case-5-docs/docs/build/html/_static/alabaster.css
@@ -0,0 +1,708 @@
+@import url("basic.css");
+
+/* -- page layout ----------------------------------------------------------- */
+
+body {
+    font-family: Georgia, serif;
+    font-size: 17px;
+    background-color: #fff;
+    color: #000;
+    margin: 0;
+    padding: 0;
+}
+
+
+div.document {
+    width: 940px;
+    margin: 30px auto 0 auto;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 220px;
+}
+
+div.sphinxsidebar {
+    width: 220px;
+    font-size: 14px;
+    line-height: 1.5;
+}
+
+hr {
+    border: 1px solid #B1B4B6;
+}
+
+div.body {
+    background-color: #fff;
+    color: #3E4349;
+    padding: 0 30px 0 30px;
+}
+
+div.body > .section {
+    text-align: left;
+}
+
+div.footer {
+    width: 940px;
+    margin: 20px auto 30px auto;
+    font-size: 14px;
+    color: #888;
+    text-align: right;
+}
+
+div.footer a {
+    color: #888;
+}
+
+p.caption {
+    font-family: inherit;
+    font-size: inherit;
+}
+
+
+div.relations {
+    display: none;
+}
+
+
+div.sphinxsidebar {
+    max-height: 100%;
+    overflow-y: auto;
+}
+
+div.sphinxsidebar a {
+    color: #444;
+    text-decoration: none;
+    border-bottom: 1px dotted #999;
+}
+
+div.sphinxsidebar a:hover {
+    border-bottom: 1px solid #999;
+}
+
+div.sphinxsidebarwrapper {
+    padding: 18px 10px;
+}
+
+div.sphinxsidebarwrapper p.logo {
+    padding: 0;
+    margin: -10px 0 0 0px;
+    text-align: center;
+}
+
+div.sphinxsidebarwrapper h1.logo {
+    margin-top: -10px;
+    text-align: center;
+    margin-bottom: 5px;
+    text-align: left;
+}
+
+div.sphinxsidebarwrapper h1.logo-name {
+    margin-top: 0px;
+}
+
+div.sphinxsidebarwrapper p.blurb {
+    margin-top: 0;
+    font-style: normal;
+}
+
+div.sphinxsidebar h3,
+div.sphinxsidebar h4 {
+    font-family: Georgia, serif;
+    color: #444;
+    font-size: 24px;
+    font-weight: normal;
+    margin: 0 0 5px 0;
+    padding: 0;
+}
+
+div.sphinxsidebar h4 {
+    font-size: 20px;
+}
+
+div.sphinxsidebar h3 a {
+    color: #444;
+}
+
+div.sphinxsidebar p.logo a,
+div.sphinxsidebar h3 a,
+div.sphinxsidebar p.logo a:hover,
+div.sphinxsidebar h3 a:hover {
+    border: none;
+}
+
+div.sphinxsidebar p {
+    color: #555;
+    margin: 10px 0;
+}
+
+div.sphinxsidebar ul {
+    margin: 10px 0;
+    padding: 0;
+    color: #000;
+}
+
+div.sphinxsidebar ul li.toctree-l1 > a {
+    font-size: 120%;
+}
+
+div.sphinxsidebar ul li.toctree-l2 > a {
+    font-size: 110%;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #CCC;
+    font-family: Georgia, serif;
+    font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+    width: 160px;
+}
+
+div.sphinxsidebar .search > div {
+    display: table-cell;
+}
+
+div.sphinxsidebar hr {
+    border: none;
+    height: 1px;
+    color: #AAA;
+    background: #AAA;
+
+    text-align: left;
+    margin-left: 0;
+    width: 50%;
+}
+
+div.sphinxsidebar .badge {
+    border-bottom: none;
+}
+
+div.sphinxsidebar .badge:hover {
+    border-bottom: none;
+}
+
+/* To address an issue with donation coming after search */
+div.sphinxsidebar h3.donation {
+    margin-top: 10px;
+}
+
+/* -- body styles ----------------------------------------------------------- */
+
+a {
+    color: #004B6B;
+    text-decoration: underline;
+}
+
+a:hover {
+    color: #6D4100;
+    text-decoration: underline;
+}
+
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: Georgia, serif;
+    font-weight: normal;
+    margin: 30px 0px 10px 0px;
+    padding: 0;
+}
+
+div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
+div.body h2 { font-size: 180%; }
+div.body h3 { font-size: 150%; }
+div.body h4 { font-size: 130%; }
+div.body h5 { font-size: 100%; }
+div.body h6 { font-size: 100%; }
+
+a.headerlink {
+    color: #DDD;
+    padding: 0 4px;
+    text-decoration: none;
+}
+
+a.headerlink:hover {
+    color: #444;
+    background: #EAEAEA;
+}
+
+div.body p, div.body dd, div.body li {
+    line-height: 1.4em;
+}
+
+div.admonition {
+    margin: 20px 0px;
+    padding: 10px 30px;
+    background-color: #EEE;
+    border: 1px solid #CCC;
+}
+
+div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
+    background-color: #FBFBFB;
+    border-bottom: 1px solid #fafafa;
+}
+
+div.admonition p.admonition-title {
+    font-family: Georgia, serif;
+    font-weight: normal;
+    font-size: 24px;
+    margin: 0 0 10px 0;
+    padding: 0;
+    line-height: 1;
+}
+
+div.admonition p.last {
+    margin-bottom: 0;
+}
+
+div.highlight {
+    background-color: #fff;
+}
+
+dt:target, .highlight {
+    background: #FAF3E8;
+}
+
+div.warning {
+    background-color: #FCC;
+    border: 1px solid #FAA;
+}
+
+div.danger {
+    background-color: #FCC;
+    border: 1px solid #FAA;
+    -moz-box-shadow: 2px 2px 4px #D52C2C;
+    -webkit-box-shadow: 2px 2px 4px #D52C2C;
+    box-shadow: 2px 2px 4px #D52C2C;
+}
+
+div.error {
+    background-color: #FCC;
+    border: 1px solid #FAA;
+    -moz-box-shadow: 2px 2px 4px #D52C2C;
+    -webkit-box-shadow: 2px 2px 4px #D52C2C;
+    box-shadow: 2px 2px 4px #D52C2C;
+}
+
+div.caution {
+    background-color: #FCC;
+    border: 1px solid #FAA;
+}
+
+div.attention {
+    background-color: #FCC;
+    border: 1px solid #FAA;
+}
+
+div.important {
+    background-color: #EEE;
+    border: 1px solid #CCC;
+}
+
+div.note {
+    background-color: #EEE;
+    border: 1px solid #CCC;
+}
+
+div.tip {
+    background-color: #EEE;
+    border: 1px solid #CCC;
+}
+
+div.hint {
+    background-color: #EEE;
+    border: 1px solid #CCC;
+}
+
+div.seealso {
+    background-color: #EEE;
+    border: 1px solid #CCC;
+}
+
+div.topic {
+    background-color: #EEE;
+}
+
+p.admonition-title {
+    display: inline;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+pre, tt, code {
+    font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
+    font-size: 0.9em;
+}
+
+.hll {
+    background-color: #FFC;
+    margin: 0 -12px;
+    padding: 0 12px;
+    display: block;
+}
+
+img.screenshot {
+}
+
+tt.descname, tt.descclassname, code.descname, code.descclassname {
+    font-size: 0.95em;
+}
+
+tt.descname, code.descname {
+    padding-right: 0.08em;
+}
+
+img.screenshot {
+    -moz-box-shadow: 2px 2px 4px #EEE;
+    -webkit-box-shadow: 2px 2px 4px #EEE;
+    box-shadow: 2px 2px 4px #EEE;
+}
+
+table.docutils {
+    border: 1px solid #888;
+    -moz-box-shadow: 2px 2px 4px #EEE;
+    -webkit-box-shadow: 2px 2px 4px #EEE;
+    box-shadow: 2px 2px 4px #EEE;
+}
+
+table.docutils td, table.docutils th {
+    border: 1px solid #888;
+    padding: 0.25em 0.7em;
+}
+
+table.field-list, table.footnote {
+    border: none;
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+}
+
+table.footnote {
+    margin: 15px 0;
+    width: 100%;
+    border: 1px solid #EEE;
+    background: #FDFDFD;
+    font-size: 0.9em;
+}
+
+table.footnote + table.footnote {
+    margin-top: -15px;
+    border-top: none;
+}
+
+table.field-list th {
+    padding: 0 0.8em 0 0;
+}
+
+table.field-list td {
+    padding: 0;
+}
+
+table.field-list p {
+    margin-bottom: 0.8em;
+}
+
+/* Cloned from
+ * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
+ */
+.field-name {
+    -moz-hyphens: manual;
+    -ms-hyphens: manual;
+    -webkit-hyphens: manual;
+    hyphens: manual;
+}
+
+table.footnote td.label {
+    width: .1px;
+    padding: 0.3em 0 0.3em 0.5em;
+}
+
+table.footnote td {
+    padding: 0.3em 0.5em;
+}
+
+dl {
+    margin-left: 0;
+    margin-right: 0;
+    margin-top: 0;
+    padding: 0;
+}
+
+dl dd {
+    margin-left: 30px;
+}
+
+blockquote {
+    margin: 0 0 0 30px;
+    padding: 0;
+}
+
+ul, ol {
+    /* Matches the 30px from the narrow-screen "li > ul" selector below */
+    margin: 10px 0 10px 30px;
+    padding: 0;
+}
+
+pre {
+    background: #EEE;
+    padding: 7px 30px;
+    margin: 15px 0px;
+    line-height: 1.3em;
+}
+
+div.viewcode-block:target {
+    background: #ffd;
+}
+
+dl pre, blockquote pre, li pre {
+    margin-left: 0;
+    padding-left: 30px;
+}
+
+tt, code {
+    background-color: #ecf0f3;
+    color: #222;
+    /* padding: 1px 2px; */
+}
+
+tt.xref, code.xref, a tt {
+    background-color: #FBFBFB;
+    border-bottom: 1px solid #fff;
+}
+
+a.reference {
+    text-decoration: none;
+    border-bottom: 1px dotted #004B6B;
+}
+
+/* Don't put an underline on images */
+a.image-reference, a.image-reference:hover {
+    border-bottom: none;
+}
+
+a.reference:hover {
+    border-bottom: 1px solid #6D4100;
+}
+
+a.footnote-reference {
+    text-decoration: none;
+    font-size: 0.7em;
+    vertical-align: top;
+    border-bottom: 1px dotted #004B6B;
+}
+
+a.footnote-reference:hover {
+    border-bottom: 1px solid #6D4100;
+}
+
+a:hover tt, a:hover code {
+    background: #EEE;
+}
+
+
+@media screen and (max-width: 870px) {
+
+    div.sphinxsidebar {
+    	display: none;
+    }
+
+    div.document {
+       width: 100%;
+
+    }
+
+    div.documentwrapper {
+    	margin-left: 0;
+    	margin-top: 0;
+    	margin-right: 0;
+    	margin-bottom: 0;
+    }
+
+    div.bodywrapper {
+    	margin-top: 0;
+    	margin-right: 0;
+    	margin-bottom: 0;
+    	margin-left: 0;
+    }
+
+    ul {
+    	margin-left: 0;
+    }
+
+	li > ul {
+        /* Matches the 30px from the "ul, ol" selector above */
+		margin-left: 30px;
+	}
+
+    .document {
+    	width: auto;
+    }
+
+    .footer {
+    	width: auto;
+    }
+
+    .bodywrapper {
+    	margin: 0;
+    }
+
+    .footer {
+    	width: auto;
+    }
+
+    .github {
+        display: none;
+    }
+
+
+
+}
+
+
+
+@media screen and (max-width: 875px) {
+
+    body {
+        margin: 0;
+        padding: 20px 30px;
+    }
+
+    div.documentwrapper {
+        float: none;
+        background: #fff;
+    }
+
+    div.sphinxsidebar {
+        display: block;
+        float: none;
+        width: 102.5%;
+        margin: 50px -30px -20px -30px;
+        padding: 10px 20px;
+        background: #333;
+        color: #FFF;
+    }
+
+    div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
+    div.sphinxsidebar h3 a {
+        color: #fff;
+    }
+
+    div.sphinxsidebar a {
+        color: #AAA;
+    }
+
+    div.sphinxsidebar p.logo {
+        display: none;
+    }
+
+    div.document {
+        width: 100%;
+        margin: 0;
+    }
+
+    div.footer {
+        display: none;
+    }
+
+    div.bodywrapper {
+        margin: 0;
+    }
+
+    div.body {
+        min-height: 0;
+        padding: 0;
+    }
+
+    .rtd_doc_footer {
+        display: none;
+    }
+
+    .document {
+        width: auto;
+    }
+
+    .footer {
+        width: auto;
+    }
+
+    .footer {
+        width: auto;
+    }
+
+    .github {
+        display: none;
+    }
+}
+
+
+/* misc. */
+
+.revsys-inline {
+    display: none!important;
+}
+
+/* Hide ugly table cell borders in ..bibliography:: directive output */
+table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
+  border: none;
+  /* Below needed in some edge cases; if not applied, bottom shadows appear */
+  -moz-box-shadow: none;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+
+
+/* relbar */
+
+.related {
+    line-height: 30px;
+    width: 100%;
+    font-size: 0.9rem;
+}
+
+.related.top {
+    border-bottom: 1px solid #EEE;
+    margin-bottom: 20px;
+}
+
+.related.bottom {
+    border-top: 1px solid #EEE;
+}
+
+.related ul {
+    padding: 0;
+    margin: 0;
+    list-style: none;
+}
+
+.related li {
+    display: inline;
+}
+
+nav#rellinks {
+    float: right;
+}
+
+nav#rellinks li+li:before {
+    content: "|";
+}
+
+nav#breadcrumbs li+li:before {
+    content: "\00BB";
+}
+
+/* Hide certain items when printing */
+@media print {
+    div.related {
+        display: none;
+    }
+}
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/_static/custom.css b/case-5-docs/docs/build/html/_static/custom.css
new file mode 100644
index 0000000..2a924f1
--- /dev/null
+++ b/case-5-docs/docs/build/html/_static/custom.css
@@ -0,0 +1 @@
+/* This file intentionally left blank. */
diff --git a/case-5-docs/docs/build/html/_static/documentation_options.js b/case-5-docs/docs/build/html/_static/documentation_options.js
index 13d90ff..6e7e2d0 100644
--- a/case-5-docs/docs/build/html/_static/documentation_options.js
+++ b/case-5-docs/docs/build/html/_static/documentation_options.js
@@ -1,5 +1,5 @@
 const DOCUMENTATION_OPTIONS = {
-    VERSION: '0.1.0',
+    VERSION: 'o.1',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
     BUILDER: 'html',
diff --git a/case-5-docs/docs/build/html/genindex.html b/case-5-docs/docs/build/html/genindex.html
index 0f0d398..00dba22 100644
--- a/case-5-docs/docs/build/html/genindex.html
+++ b/case-5-docs/docs/build/html/genindex.html
@@ -5,14 +5,14 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Index &mdash; case10-docs 0.1.0 documentation</title>
+  <title>Index &mdash; The Wizzard Calc o.1 documentation</title>
       <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
       <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
 
   
       <script src="_static/jquery.js?v=5d32c60e"></script>
       <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="_static/documentation_options.js?v=01f34227"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
       <script src="_static/doctools.js?v=9bcbadda"></script>
       <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="_static/js/theme.js"></script>
@@ -29,7 +29,7 @@
           
           
           <a href="index.html" class="icon icon-home">
-            case10-docs
+            The Wizzard Calc
           </a>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -39,15 +39,18 @@
   </form>
 </div>
         </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="modules.html">wizzard_code</a></li>
+</ul>
+
         </div>
       </div>
     </nav>
 
     <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">case10-docs</a>
+          <a href="index.html">The Wizzard Calc</a>
       </nav>
 
       <div class="wy-nav-content">
@@ -68,8 +71,102 @@
 <h1 id="index">Index</h1>
 
 <div class="genindex-jumpbox">
+ <a href="#A"><strong>A</strong></a>
+ | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
  
 </div>
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="math_operations.html#math_operations.add">add() (in module math_operations)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="string_operators.html#string_operators.concatenate">concatenate() (in module string_operators)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="string_operators.html#string_operators.count_vowels">count_vowels() (in module string_operators)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="math_operations.html#math_operations.divide">divide() (in module math_operations)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li>
+    math_operations
+
+      <ul>
+        <li><a href="math_operations.html#module-math_operations">module</a>
+</li>
+      </ul></li>
+      <li>
+    module
+
+      <ul>
+        <li><a href="math_operations.html#module-math_operations">math_operations</a>
+</li>
+        <li><a href="string_operators.html#module-string_operators">string_operators</a>
+</li>
+      </ul></li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="math_operations.html#math_operations.multiply">multiply() (in module math_operations)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="string_operators.html#string_operators.reverse_string">reverse_string() (in module string_operators)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li>
+    string_operators
+
+      <ul>
+        <li><a href="string_operators.html#module-string_operators">module</a>
+</li>
+      </ul></li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="math_operations.html#math_operations.subtract">subtract() (in module math_operations)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="string_operators.html#string_operators.to_uppercase">to_uppercase() (in module string_operators)</a>
+</li>
+  </ul></td>
+</tr></table>
+
 
 
            </div>
@@ -79,7 +176,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2025, Elizabeth.</p>
+    <p>&#169; Copyright 2025, The Author.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/case-5-docs/docs/build/html/index.html b/case-5-docs/docs/build/html/index.html
index 728e99a..f9c8268 100644
--- a/case-5-docs/docs/build/html/index.html
+++ b/case-5-docs/docs/build/html/index.html
@@ -6,19 +6,20 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Welcome to my_project’s documentation! &mdash; case10-docs 0.1.0 documentation</title>
+  <title>The Wizzard Calc documentation &mdash; The Wizzard Calc o.1 documentation</title>
       <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
       <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
 
   
       <script src="_static/jquery.js?v=5d32c60e"></script>
       <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="_static/documentation_options.js?v=01f34227"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
       <script src="_static/doctools.js?v=9bcbadda"></script>
       <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
-    <link rel="search" title="Search" href="search.html" /> 
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="wizzard_code" href="modules.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -30,7 +31,7 @@
           
           
           <a href="#" class="icon icon-home">
-            case10-docs
+            The Wizzard Calc
           </a>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -40,18 +41,18 @@
   </form>
 </div>
         </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
-              <!-- Local TOC -->
-              <div class="local-toc"><ul>
-<li><a class="reference internal" href="#">Welcome to my_project’s documentation!</a></li>
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="modules.html">wizzard_code</a></li>
 </ul>
-</div>
+
         </div>
       </div>
     </nav>
 
     <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="#">case10-docs</a>
+          <a href="#">The Wizzard Calc</a>
       </nav>
 
       <div class="wy-nav-content">
@@ -59,7 +60,7 @@
           <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
       <li><a href="#" class="icon icon-home" aria-label="Home"></a></li>
-      <li class="breadcrumb-item active">Welcome to my_project’s documentation!</li>
+      <li class="breadcrumb-item active">The Wizzard Calc documentation</li>
       <li class="wy-breadcrumbs-aside">
             <a href="_sources/index.rst.txt" rel="nofollow"> View page source</a>
       </li>
@@ -69,25 +70,34 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
              
-  <section id="welcome-to-my-project-s-documentation">
-<h1>Welcome to my_project’s documentation!<a class="headerlink" href="#welcome-to-my-project-s-documentation" title="Link to this heading"></a></h1>
-<p>This is a simple project with basic math and string operations. The documentation will be automatically generated using Sphinx.</p>
-<p>Contents:
-- Math Operations
-- String Operations</p>
+  <section id="the-wizzard-calc-documentation">
+<h1>The Wizzard Calc documentation<a class="headerlink" href="#the-wizzard-calc-documentation" title="Link to this heading"></a></h1>
+<p>Add your content using <code class="docutils literal notranslate"><span class="pre">reStructuredText</span></code> syntax. See the
+<a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html">reStructuredText</a>
+documentation for details.</p>
 <div class="toctree-wrapper compound">
+<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="modules.html">wizzard_code</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html">math_operations module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html">string_operators module</a></li>
+</ul>
+</li>
+</ul>
 </div>
 </section>
 
 
            </div>
           </div>
-          <footer>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="modules.html" class="btn btn-neutral float-right" title="wizzard_code" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2025, Elizabeth.</p>
+    <p>&#169; Copyright 2025, The Author.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/case-5-docs/docs/build/html/math_operations.html b/case-5-docs/docs/build/html/math_operations.html
new file mode 100644
index 0000000..72050cf
--- /dev/null
+++ b/case-5-docs/docs/build/html/math_operations.html
@@ -0,0 +1,167 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="./">
+<head>
+  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>math_operations module &mdash; The Wizzard Calc o.1 documentation</title>
+      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
+      <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
+
+  
+      <script src="_static/jquery.js?v=5d32c60e"></script>
+      <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
+      <script src="_static/doctools.js?v=9bcbadda"></script>
+      <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="string_operators module" href="string_operators.html" />
+    <link rel="prev" title="wizzard_code" href="modules.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            The Wizzard Calc
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="modules.html">wizzard_code</a><ul class="current">
+<li class="toctree-l2 current"><a class="current reference internal" href="#">math_operations module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#math_operations.add"><code class="docutils literal notranslate"><span class="pre">add()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="#math_operations.divide"><code class="docutils literal notranslate"><span class="pre">divide()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="#math_operations.multiply"><code class="docutils literal notranslate"><span class="pre">multiply()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="#math_operations.subtract"><code class="docutils literal notranslate"><span class="pre">subtract()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html">string_operators module</a></li>
+</ul>
+</li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">The Wizzard Calc</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+          <li class="breadcrumb-item"><a href="modules.html">wizzard_code</a></li>
+      <li class="breadcrumb-item active">math_operations module</li>
+      <li class="wy-breadcrumbs-aside">
+            <a href="_sources/math_operations.rst.txt" rel="nofollow"> View page source</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="module-math_operations">
+<span id="math-operations-module"></span><h1>math_operations module<a class="headerlink" href="#module-math_operations" title="Link to this heading"></a></h1>
+<p>This module contains basic mathematical operations.</p>
+<dl class="py function">
+<dt class="sig sig-object py" id="math_operations.add">
+<span class="sig-prename descclassname"><span class="pre">math_operations.</span></span><span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">b</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/math_operations.html#add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#math_operations.add" title="Link to this definition"></a></dt>
+<dd><p>Adds two numbers.</p>
+<p>Parameters:
+a (int, float): The first number.
+b (int, float): The second number.</p>
+<p>Returns:
+int, float: The sum of the two numbers.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="math_operations.divide">
+<span class="sig-prename descclassname"><span class="pre">math_operations.</span></span><span class="sig-name descname"><span class="pre">divide</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">b</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/math_operations.html#divide"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#math_operations.divide" title="Link to this definition"></a></dt>
+<dd><p>Divides the first number by the second.</p>
+<p>Parameters:
+a (int, float): The numerator.
+b (int, float): The denominator.</p>
+<p>Returns:
+float: The quotient of the division.</p>
+<p>Raises:
+ValueError: If the denominator is zero.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="math_operations.multiply">
+<span class="sig-prename descclassname"><span class="pre">math_operations.</span></span><span class="sig-name descname"><span class="pre">multiply</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">b</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/math_operations.html#multiply"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#math_operations.multiply" title="Link to this definition"></a></dt>
+<dd><p>Multiplies two numbers.</p>
+<p>Parameters:
+a (int, float): The first number.
+b (int, float): The second number.</p>
+<p>Returns:
+int, float: The product of the two numbers.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="math_operations.subtract">
+<span class="sig-prename descclassname"><span class="pre">math_operations.</span></span><span class="sig-name descname"><span class="pre">subtract</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">b</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/math_operations.html#subtract"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#math_operations.subtract" title="Link to this definition"></a></dt>
+<dd><p>Subtracts the second number from the first.</p>
+<p>Parameters:
+a (int, float): The first number.
+b (int, float): The second number.</p>
+<p>Returns:
+int, float: The difference between the two numbers.</p>
+</dd></dl>
+
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="modules.html" class="btn btn-neutral float-left" title="wizzard_code" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="string_operators.html" class="btn btn-neutral float-right" title="string_operators module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, The Author.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/modules.html b/case-5-docs/docs/build/html/modules.html
new file mode 100644
index 0000000..a5e10d2
--- /dev/null
+++ b/case-5-docs/docs/build/html/modules.html
@@ -0,0 +1,131 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="./">
+<head>
+  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>wizzard_code &mdash; The Wizzard Calc o.1 documentation</title>
+      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
+      <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
+
+  
+      <script src="_static/jquery.js?v=5d32c60e"></script>
+      <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
+      <script src="_static/doctools.js?v=9bcbadda"></script>
+      <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="math_operations module" href="math_operations.html" />
+    <link rel="prev" title="The Wizzard Calc documentation" href="index.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            The Wizzard Calc
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1 current"><a class="current reference internal" href="#">wizzard_code</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html">math_operations module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html">string_operators module</a></li>
+</ul>
+</li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">The Wizzard Calc</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active">wizzard_code</li>
+      <li class="wy-breadcrumbs-aside">
+            <a href="_sources/modules.rst.txt" rel="nofollow"> View page source</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="wizzard-code">
+<h1>wizzard_code<a class="headerlink" href="#wizzard-code" title="Link to this heading"></a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="math_operations.html">math_operations module</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html#math_operations.add"><code class="docutils literal notranslate"><span class="pre">add()</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html#math_operations.divide"><code class="docutils literal notranslate"><span class="pre">divide()</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html#math_operations.multiply"><code class="docutils literal notranslate"><span class="pre">multiply()</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html#math_operations.subtract"><code class="docutils literal notranslate"><span class="pre">subtract()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="string_operators.html">string_operators module</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html#string_operators.concatenate"><code class="docutils literal notranslate"><span class="pre">concatenate()</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html#string_operators.count_vowels"><code class="docutils literal notranslate"><span class="pre">count_vowels()</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html#string_operators.reverse_string"><code class="docutils literal notranslate"><span class="pre">reverse_string()</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="string_operators.html#string_operators.to_uppercase"><code class="docutils literal notranslate"><span class="pre">to_uppercase()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</div>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="index.html" class="btn btn-neutral float-left" title="The Wizzard Calc documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="math_operations.html" class="btn btn-neutral float-right" title="math_operations module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, The Author.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/objects.inv b/case-5-docs/docs/build/html/objects.inv
index f3adc9d617ecf3544aaf1c8d3ccf924ad6bb56b5..f2b343eb6b43c047c76e4dba302e233738f5d845 100644
GIT binary patch
delta 332
zcmeBTTF5*>Lnb66RUtgHsw%N4MZq~SCz(rGAuP41I5R)bN@1dtRsGx`>+Hh@0{8xE
z^WD0-G;(v<s{oEI6E138G8H>9X`-Ls-1vCQ@L>B8DI1CC`>)THXR%zJnthS`(mA$_
z-?fiJOgPS8IJ0y4EUC{2a(;58ZhX=j)coH#%93HjY4s;-yvm~<hLsERzP$D&`mf@=
z6WpHPe=%3)p0}U!`SVKMlUHwq)ib?ZBhq4K+s*eWvcAQ|JM_6;#-VQ_{j$FrM1^k`
zp9tOPtFC$I@Bb3F)oTx}R|%|E_RCms=U~UZk`GojV*8DrK2eyZVVBjicwby=_y?t)
z7L`uks9m{*JAY?-<lXlcsF>(lm0FeiyGZ56-(%aGcBj4GqvEWyui*OB60UB~EB30U
re709JH*F4LY@Pn~&IyU?do%4jjMwFVUb6qqrmz<lQ}QeQrvCx}^}3;8

delta 180
zcmZ3;+{H9OLn=A3IMvWVHzhy0m`hn9EVZaOGe6Ht!9dS&qKj3%xBuDGXS_Yv259Jc
zZan4b<8?Ohf@z3Hd)KSfDNmkhR5Z<q;Yii|c~ZgEL+em*@ubhi!J=NDM2oZ^b9a5(
z95mTm&h(5<7{e;vv%Y7wJ#|i=IUoGw)LH+7NwJPg^?aC;=H=IUW%_AdNm7Yqy2YgB
lZS?7LK&kk0H8Iun1z9Z}{ElB(oS!fYT@K#Ku)Q>q4FHtZN!tJb

diff --git a/case-5-docs/docs/build/html/py-modindex.html b/case-5-docs/docs/build/html/py-modindex.html
new file mode 100644
index 0000000..68d86e6
--- /dev/null
+++ b/case-5-docs/docs/build/html/py-modindex.html
@@ -0,0 +1,132 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="./">
+<head>
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>Python Module Index &mdash; The Wizzard Calc o.1 documentation</title>
+      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
+      <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
+
+  
+      <script src="_static/jquery.js?v=5d32c60e"></script>
+      <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
+      <script src="_static/doctools.js?v=9bcbadda"></script>
+      <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+ 
+
+    <script>
+      DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
+    </script>
+
+
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            The Wizzard Calc
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="modules.html">wizzard_code</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">The Wizzard Calc</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active">Python Module Index</li>
+      <li class="wy-breadcrumbs-aside">
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+
+   <h1>Python Module Index</h1>
+
+   <div class="modindex-jumpbox">
+   <a href="#cap-m"><strong>m</strong></a> | 
+   <a href="#cap-s"><strong>s</strong></a>
+   </div>
+
+   <table class="indextable modindextable">
+     <tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
+     <tr class="cap" id="cap-m"><td></td><td>
+       <strong>m</strong></td><td></td></tr>
+     <tr>
+       <td></td>
+       <td>
+       <a href="math_operations.html#module-math_operations"><code class="xref">math_operations</code></a></td><td>
+       <em></em></td></tr>
+     <tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
+     <tr class="cap" id="cap-s"><td></td><td>
+       <strong>s</strong></td><td></td></tr>
+     <tr>
+       <td></td>
+       <td>
+       <a href="string_operators.html#module-string_operators"><code class="xref">string_operators</code></a></td><td>
+       <em></em></td></tr>
+   </table>
+
+
+           </div>
+          </div>
+          <footer>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, The Author.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/search.html b/case-5-docs/docs/build/html/search.html
index 87d33c7..bc20107 100644
--- a/case-5-docs/docs/build/html/search.html
+++ b/case-5-docs/docs/build/html/search.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Search &mdash; case10-docs 0.1.0 documentation</title>
+  <title>Search &mdash; The Wizzard Calc o.1 documentation</title>
       <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
       <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
 
@@ -13,7 +13,7 @@
     
       <script src="_static/jquery.js?v=5d32c60e"></script>
       <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="_static/documentation_options.js?v=01f34227"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
       <script src="_static/doctools.js?v=9bcbadda"></script>
       <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="_static/js/theme.js"></script>
@@ -32,7 +32,7 @@
           
           
           <a href="index.html" class="icon icon-home">
-            case10-docs
+            The Wizzard Calc
           </a>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="#" method="get">
@@ -42,15 +42,18 @@
   </form>
 </div>
         </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="modules.html">wizzard_code</a></li>
+</ul>
+
         </div>
       </div>
     </nav>
 
     <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="index.html">case10-docs</a>
+          <a href="index.html">The Wizzard Calc</a>
       </nav>
 
       <div class="wy-nav-content">
@@ -87,7 +90,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2025, Elizabeth.</p>
+    <p>&#169; Copyright 2025, The Author.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/case-5-docs/docs/build/html/searchindex.js b/case-5-docs/docs/build/html/searchindex.js
index 584e9f1..1ca38aa 100644
--- a/case-5-docs/docs/build/html/searchindex.js
+++ b/case-5-docs/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"Welcome to my_project\u2019s documentation!":[[0,null]]},"docnames":["index"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"The":0,"automat":0,"basic":0,"content":0,"gener":0,"i":0,"math":0,"oper":0,"project":0,"simpl":0,"sphinx":0,"string":0,"thi":0,"us":0},"titles":["Welcome to my_project\u2019s documentation!"],"titleterms":{"":0,"document":0,"my_project":0,"welcom":0}})
\ No newline at end of file
+Search.setIndex({"alltitles":{"Contents:":[[0,null]],"The Wizzard Calc documentation":[[0,null]],"math_operations module":[[1,null]],"string_operators module":[[3,null]],"wizzard_code":[[2,null]]},"docnames":["index","math_operations","modules","string_operators"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1},"filenames":["index.rst","math_operations.rst","modules.rst","string_operators.rst"],"indexentries":{"add() (in module math_operations)":[[1,"math_operations.add",false]],"concatenate() (in module string_operators)":[[3,"string_operators.concatenate",false]],"count_vowels() (in module string_operators)":[[3,"string_operators.count_vowels",false]],"divide() (in module math_operations)":[[1,"math_operations.divide",false]],"math_operations":[[1,"module-math_operations",false]],"module":[[1,"module-math_operations",false],[3,"module-string_operators",false]],"multiply() (in module math_operations)":[[1,"math_operations.multiply",false]],"reverse_string() (in module string_operators)":[[3,"string_operators.reverse_string",false]],"string_operators":[[3,"module-string_operators",false]],"subtract() (in module math_operations)":[[1,"math_operations.subtract",false]],"to_uppercase() (in module string_operators)":[[3,"string_operators.to_uppercase",false]]},"objects":{"":[[1,0,0,"-","math_operations"],[3,0,0,"-","string_operators"]],"math_operations":[[1,1,1,"","add"],[1,1,1,"","divide"],[1,1,1,"","multiply"],[1,1,1,"","subtract"]],"string_operators":[[3,1,1,"","concatenate"],[3,1,1,"","count_vowels"],[3,1,1,"","reverse_string"],[3,1,1,"","to_uppercase"]]},"objnames":{"0":["py","module","Python module"],"1":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:function"},"terms":{"If":1,"The":[1,3],"add":[0,1,2],"b":1,"basic":[1,3],"between":1,"check":3,"concaten":[2,3],"contain":[1,3],"convert":3,"count":3,"count_vowel":[2,3],"denomin":1,"detail":0,"differ":1,"divid":[1,2],"divis":1,"first":[1,3],"float":1,"from":1,"given":3,"i":1,"int":[1,3],"math_oper":[0,2],"mathemat":1,"modul":[0,2],"multipli":[1,2],"number":[1,3],"numer":1,"oper":[1,3],"paramet":[1,3],"product":1,"quotient":1,"rais":1,"restructuredtext":0,"return":[1,3],"revers":3,"reverse_str":[2,3],"second":[1,3],"see":0,"sourc":[1,3],"str":3,"str1":3,"str2":3,"string":3,"string_oper":[0,2],"subtract":[1,2],"sum":1,"syntax":0,"thi":[1,3],"to_uppercas":[2,3],"two":[1,3],"uppercas":3,"us":0,"valueerror":1,"vowel":3,"wizzard_cod":0,"your":0,"zero":1},"titles":["The Wizzard Calc documentation","math_operations module","wizzard_code","string_operators module"],"titleterms":{"The":0,"calc":0,"content":0,"document":0,"math_oper":1,"modul":[1,3],"string_oper":3,"wizzard":0,"wizzard_cod":2}})
\ No newline at end of file
diff --git a/case-5-docs/docs/build/html/string_operators.html b/case-5-docs/docs/build/html/string_operators.html
new file mode 100644
index 0000000..d17740e
--- /dev/null
+++ b/case-5-docs/docs/build/html/string_operators.html
@@ -0,0 +1,160 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="./">
+<head>
+  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>string_operators module &mdash; The Wizzard Calc o.1 documentation</title>
+      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
+      <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
+
+  
+      <script src="_static/jquery.js?v=5d32c60e"></script>
+      <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="_static/documentation_options.js?v=f8b91ae0"></script>
+      <script src="_static/doctools.js?v=9bcbadda"></script>
+      <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="prev" title="math_operations module" href="math_operations.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="index.html" class="icon icon-home">
+            The Wizzard Calc
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" href="modules.html">wizzard_code</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="math_operations.html">math_operations module</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">string_operators module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#string_operators.concatenate"><code class="docutils literal notranslate"><span class="pre">concatenate()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="#string_operators.count_vowels"><code class="docutils literal notranslate"><span class="pre">count_vowels()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="#string_operators.reverse_string"><code class="docutils literal notranslate"><span class="pre">reverse_string()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="#string_operators.to_uppercase"><code class="docutils literal notranslate"><span class="pre">to_uppercase()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">The Wizzard Calc</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
+          <li class="breadcrumb-item"><a href="modules.html">wizzard_code</a></li>
+      <li class="breadcrumb-item active">string_operators module</li>
+      <li class="wy-breadcrumbs-aside">
+            <a href="_sources/string_operators.rst.txt" rel="nofollow"> View page source</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="module-string_operators">
+<span id="string-operators-module"></span><h1>string_operators module<a class="headerlink" href="#module-string_operators" title="Link to this heading"></a></h1>
+<p>This module contains basic string operations.</p>
+<dl class="py function">
+<dt class="sig sig-object py" id="string_operators.concatenate">
+<span class="sig-prename descclassname"><span class="pre">string_operators.</span></span><span class="sig-name descname"><span class="pre">concatenate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">str1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">str2</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/string_operators.html#concatenate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#string_operators.concatenate" title="Link to this definition"></a></dt>
+<dd><p>Concatenates two strings.</p>
+<p>Parameters:
+str1 (str): The first string.
+str2 (str): The second string.</p>
+<p>Returns:
+str: The concatenation of the two strings.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="string_operators.count_vowels">
+<span class="sig-prename descclassname"><span class="pre">string_operators.</span></span><span class="sig-name descname"><span class="pre">count_vowels</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/string_operators.html#count_vowels"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#string_operators.count_vowels" title="Link to this definition"></a></dt>
+<dd><p>Counts the number of vowels in a string.</p>
+<p>Parameters:
+string (str): The string to check.</p>
+<p>Returns:
+int: The number of vowels in the string.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="string_operators.reverse_string">
+<span class="sig-prename descclassname"><span class="pre">string_operators.</span></span><span class="sig-name descname"><span class="pre">reverse_string</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/string_operators.html#reverse_string"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#string_operators.reverse_string" title="Link to this definition"></a></dt>
+<dd><p>Reverses a given string.</p>
+<p>Parameters:
+string (str): The string to reverse.</p>
+<p>Returns:
+str: The reversed string.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="string_operators.to_uppercase">
+<span class="sig-prename descclassname"><span class="pre">string_operators.</span></span><span class="sig-name descname"><span class="pre">to_uppercase</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/string_operators.html#to_uppercase"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#string_operators.to_uppercase" title="Link to this definition"></a></dt>
+<dd><p>Converts the string to uppercase.</p>
+<p>Parameters:
+string (str): The string to convert.</p>
+<p>Returns:
+str: The string in uppercase.</p>
+</dd></dl>
+
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="math_operations.html" class="btn btn-neutral float-left" title="math_operations module" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, The Author.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/case-5-docs/docs/main.py b/case-5-docs/docs/main.py
deleted file mode 100644
index 6f881ca..0000000
--- a/case-5-docs/docs/main.py
+++ /dev/null
@@ -1,16 +0,0 @@
-def add(a: int, b: int) -> int:
-    """
-    Add two numbers.
-
-    Args:
-        a (int): The first number.
-        b (int): The second number.
-
-    Returns:
-        int: The sum of a and b.
-    """
-    return a + b
-
-if __name__ == "__main__":
-    result = add(3, 5)
-    print(f"Result: {result}")
diff --git a/case-5-docs/conf.py b/case-5-docs/docs/source/conf.py
similarity index 64%
rename from case-5-docs/conf.py
rename to case-5-docs/docs/source/conf.py
index 8003a0c..534bf12 100644
--- a/case-5-docs/conf.py
+++ b/case-5-docs/docs/source/conf.py
@@ -8,31 +8,33 @@
 
 import os
 import sys
-sys.path.insert(0, os.path.abspath('./case-5-docs/'))
 
-project = 'Case 5: Automated Docs'
-copyright = '2025, The Author'
-author = 'Bew York Best Selling Author'
-version = '0.1'
-release = '0.1.0'
+sys.path.insert(
+    0, os.path.abspath("../../wizzard_code")
+)  # Adjust the path to your package
 
-# -- General configuration ---------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
 
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon']
+project = "The Wizzard Calc"
+copyright = "2025, The Author"
+author = "The Author"
+release = "o.1"
 
-templates_path = ['_templates']
-exclude_patterns = ['_build']
+# -- General configuration ---------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
 
-master_doc = 'index'
-source_suffix = '.rst'
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.napoleon', 
+    'sphinx.ext.viewcode',
+]
 
+templates_path = ["_templates"]
+exclude_patterns = []
 
 
 # -- Options for HTML output -------------------------------------------------
 # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
-
 import sphinx_rtd_theme
 
-html_theme = 'sphinx_rtd_theme'
-html_static_path = ['_static']
+html_theme = "sphinx_rtd_theme"
+html_static_path = ["_static"]
diff --git a/case-5-docs/docs/source/index.rst b/case-5-docs/docs/source/index.rst
new file mode 100644
index 0000000..b4c95dc
--- /dev/null
+++ b/case-5-docs/docs/source/index.rst
@@ -0,0 +1,19 @@
+.. The Wizzard Calc documentation master file, created by
+   sphinx-quickstart on Thu Mar 27 10:31:45 2025.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+The Wizzard Calc documentation
+==============================
+
+Add your content using ``reStructuredText`` syntax. See the
+`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
+documentation for details.
+
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+
+   modules
+
diff --git a/case-5-docs/docs/source/math_operations.rst b/case-5-docs/docs/source/math_operations.rst
new file mode 100644
index 0000000..b3139aa
--- /dev/null
+++ b/case-5-docs/docs/source/math_operations.rst
@@ -0,0 +1,7 @@
+math\_operations module
+=======================
+
+.. automodule:: math_operations
+   :members:
+   :show-inheritance:
+   :undoc-members:
diff --git a/case-5-docs/docs/source/modules.rst b/case-5-docs/docs/source/modules.rst
new file mode 100644
index 0000000..1751ce5
--- /dev/null
+++ b/case-5-docs/docs/source/modules.rst
@@ -0,0 +1,8 @@
+wizzard_code
+============
+
+.. toctree::
+   :maxdepth: 4
+
+   math_operations
+   string_operators
diff --git a/case-5-docs/docs/source/string_operators.rst b/case-5-docs/docs/source/string_operators.rst
new file mode 100644
index 0000000..8ce0f05
--- /dev/null
+++ b/case-5-docs/docs/source/string_operators.rst
@@ -0,0 +1,7 @@
+string\_operators module
+========================
+
+.. automodule:: string_operators
+   :members:
+   :show-inheritance:
+   :undoc-members:
diff --git a/case-5-docs/index.rst b/case-5-docs/index.rst
deleted file mode 100644
index 9ce5c1a..0000000
--- a/case-5-docs/index.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-.. my_project documentation master file, created by
-   sphinx-quickstart on Wed Mar  1 2025.
-
-Welcome to Wizzard's documentation!
-======================================
-
-This is a simple project with basic math and string operations. The documentation will be automatically generated using Sphinx.
-
-Contents:
-- Math Operations
-- String Operations
-
-.. toctree::
-   :maxdepth: 2
-   :caption: Contents:
-
-   docs/math_operations.py
-   docs/string_operations.py
diff --git a/case-5-docs/requirements.txt b/case-5-docs/requirements.txt
index 63f9d90..1c950e1 100644
--- a/case-5-docs/requirements.txt
+++ b/case-5-docs/requirements.txt
@@ -1,3 +1,3 @@
-sphinx==5.0.0
-sphinx-rtd-theme==1.0.0
+sphinx==8.2.3
+sphinx-rtd-theme==3.0.2
 sphinx-lint==1.0.0
\ No newline at end of file
diff --git a/case-5-docs/solution.txt b/case-5-docs/solution.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/case-5-docs/docs/math_operations.py b/case-5-docs/wizzard_code/math_operations.py
similarity index 100%
rename from case-5-docs/docs/math_operations.py
rename to case-5-docs/wizzard_code/math_operations.py
diff --git a/case-5-docs/docs/string_operators.py b/case-5-docs/wizzard_code/string_operators.py
similarity index 100%
rename from case-5-docs/docs/string_operators.py
rename to case-5-docs/wizzard_code/string_operators.py
diff --git a/ci-configs/case-5-docs/generate_docs.yml b/ci-configs/case-5-docs/generate_docs.yml
index e50d7f3..638f8c9 100644
--- a/ci-configs/case-5-docs/generate_docs.yml
+++ b/ci-configs/case-5-docs/generate_docs.yml
@@ -1,11 +1,12 @@
 generate_docs:
   stage: build
-  image: python:3.11
-  script:
-    - pip install --upgrade pip
+  image: python:3.11-slim
+  before_script:
     - pip install -r case-5-docs/requirements.txt
-    - sphinx-build -b html case-5-docs/docs/source case-5-docs/docs/_build
+  script:
+    - sphinx-apidoc -o case-5-docs/docs/source ../  
+    - sphinx-build -b html case-5-docs/docs/source case-5-docs/docs/_build/html
   artifacts:
     paths:
-      - case-5-docs/build
+      - case-5-docs/docs/_build/html
     expire_in: 1 week
\ No newline at end of file
diff --git a/ci-configs/case-5-docs/pages.yml b/ci-configs/case-5-docs/pages.yml
index 7784d41..72e451f 100644
--- a/ci-configs/case-5-docs/pages.yml
+++ b/ci-configs/case-5-docs/pages.yml
@@ -2,8 +2,7 @@ pages:
   stage: deploy
   image: python:3.11-slim
   script:
-    - pip install -r case-5-docs/requirements.txt
-    - sphinx-build -b html case-5-docs/ public
+    - mv case-5-docs/docs/_build/html public
   artifacts:
     paths:
       - public
-- 
GitLab