From ed765a96faf79e950051eb3e7f89145d9f70cb56 Mon Sep 17 00:00:00 2001 From: SoladrinHub Date: Sat, 3 Aug 2024 13:20:59 -0700 Subject: [PATCH 1/5] contributors --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 64b26acdc14..f6155437567 100644 --- a/AUTHORS +++ b/AUTHORS @@ -4,3 +4,4 @@ Jennifer Huang <133@holbertonschool.com> Alexa Orrico <210@holbertonschool.com> Joann Vuong <130@holbertonschool.com> +Uzor Solomon From 5918b3af7f025b947c420f1ae209e77f1348e8c2 Mon Sep 17 00:00:00 2001 From: SoladrinHub Date: Sat, 3 Aug 2024 13:24:45 -0700 Subject: [PATCH 2/5] readme file --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f1d72de6355..7cc83428537 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,10 @@ No known bugs at this time. ## Authors Alexa Orrico - [Github](https://github.com/alexaorrico) / [Twitter](https://twitter.com/alexa_orrico) Jennifer Huang - [Github](https://github.com/jhuang10123) / [Twitter](https://twitter.com/earthtojhuang) +Uzor Solomon Second part of Airbnb: Joann Vuong ## License -Public Domain. No copy write protection. +Public Domain. No copy write protection. + + From 82d7dfe1b36ad4c306dbb3d22a71f2dc68a0de25 Mon Sep 17 00:00:00 2001 From: SoladrinHub Date: Sun, 4 Aug 2024 18:16:37 -0700 Subject: [PATCH 3/5] --- __pycache__/console.cpython-310.pyc | Bin 0 -> 4537 bytes console.py | 9 +++++---- models/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 442 bytes models/__pycache__/amenity.cpython-310.pyc | Bin 0 -> 948 bytes models/__pycache__/base_model.cpython-310.pyc | Bin 0 -> 2494 bytes .../engine/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 149 bytes .../__pycache__/file_storage.cpython-310.pyc | Bin 0 -> 2557 bytes models/engine/file_storage.py | 2 +- tests/__pycache__/test_console.cpython-310.pyc | Bin 0 -> 1784 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 153 bytes .../__pycache__/test_amenity.cpython-310.pyc | Bin 0 -> 4554 bytes .../__pycache__/test_base_model.cpython-310.pyc | Bin 0 -> 5891 bytes .../__pycache__/test_city.cpython-310.pyc | Bin 0 -> 4653 bytes .../__pycache__/test_place.cpython-310.pyc | Bin 0 -> 7222 bytes .../__pycache__/test_review.cpython-310.pyc | Bin 0 -> 4957 bytes .../__pycache__/test_state.cpython-310.pyc | Bin 0 -> 4450 bytes .../__pycache__/test_user.cpython-310.pyc | Bin 0 -> 5145 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 165 bytes .../__pycache__/test_db_storage.cpython-310.pyc | Bin 0 -> 4152 bytes .../test_file_storage.cpython-310.pyc | Bin 0 -> 4788 bytes 20 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 __pycache__/console.cpython-310.pyc create mode 100644 models/__pycache__/__init__.cpython-310.pyc create mode 100644 models/__pycache__/amenity.cpython-310.pyc create mode 100644 models/__pycache__/base_model.cpython-310.pyc create mode 100644 models/engine/__pycache__/__init__.cpython-310.pyc create mode 100644 models/engine/__pycache__/file_storage.cpython-310.pyc create mode 100644 tests/__pycache__/test_console.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/__init__.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_amenity.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_base_model.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_city.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_place.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_review.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_state.cpython-310.pyc create mode 100644 tests/test_models/__pycache__/test_user.cpython-310.pyc create mode 100644 tests/test_models/test_engine/__pycache__/__init__.cpython-310.pyc create mode 100644 tests/test_models/test_engine/__pycache__/test_db_storage.cpython-310.pyc create mode 100644 tests/test_models/test_engine/__pycache__/test_file_storage.cpython-310.pyc diff --git a/__pycache__/console.cpython-310.pyc b/__pycache__/console.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..10e2b221ea1d33e2927035d351cb6a992d1cad05 GIT binary patch literal 4537 zcma)ANpBp-74GVNHm(vSI*#2E4B11;QW86h0ok!7OHmGCq)0-biH$~csz^4~%c#1! z4TeYnDaYg(1VLa74PTT?atdBJr=fH=YR0WjOX;;}CZ6rgD!m@f#q*tcrR&i`XF*uP5jD{e zEio(RdE?JcXYnT*Z}QeNjkg5bI`h=%oE1xa=CLln5NDri!*hok=Ii&>)1K|uyl$Fg zX(YTC_!w=q%?g(XxyZvP)1?xJ*fjn`4Syuq6&YrMs0P}cb@pF`Q;^LznilP~f!C|msOeXYGzH16D3 zy>T;*;~?Sv84tBPW1IAy_cqs(wYJx#9gTjZGdwr({F^?EGpwZdTetSYJR41Z@LYSY z7iK1+^}-0`hHPS_5=ZT8n`tbr!R!H-VRG%WP~J#x_}wT?gunB_wF;7}z5T-GsekL| zx6jk7=)I=iUzphN)v~)w+Zp{xA8k)IP{GzNdg+dkyE4qfWW&ohg(u=(z8{5&@M4i~ zrrf)&_SR-{22)NpE9X!xYUAN=Qttvp|Lo*G#{I9g)MzW-z3niEk(9x`JoN;urnc0R z>4psA2j$CKuh@oz&wWDE$D3H3+(gxTY72DI$npeM_78|qJJ1L0bM4EA2O#Ib*wN&p zfiYBsJ=71(0S?%*c3`2@QQ8BW>X7ELW@?58DqZ3h)j^l_` z?Bqh<&W(ZnlpWZ=)RH$$EjRZcFaX0e^jPDby6U-C_B_%aX-~{u$b{`;)qy^+uA^lD z!nWQ1<*pRqR^|mB54(AoCV|}d)@2%_B?`0LOV_Br`={vX%Ue`B)#w#=Q}}2=H<#-iIy|9qUmL)) zENeL(gv$eM2xD`TTfYVPhwQ)rh^l{C<4&jzjBnWQ*@2nZSOMUcE9CmX+_I=PFo(AC zu$BVs!p$*Yu$mVpSso-^K`;egHwv;$!EfoNf3jPVU`h3S5|II1R!noXn8z< zry@(<&51R@du63$ts}pMafJ~HfY!qS$O}iUFEV+Fdi0RP7X>?_ZIuKk@Z<#&7pdPJ z?QI&r8c0)`S^#RUZn8S`)Ba#Q>l8NREDbygn?FFwwILfY*ja}S zN9fGw@be?vR_K^O=TpK$SMxLtq1+qM4tpNmK+ zCprP`{{g3BqWlh-^SdOzN1{Zj{#ume2Q=zK65od?j9%K4?^E>$B*rO08D;Chg$tap zbiae{F*M{5OJL>zP6f@;3v)GT*WyX z2)$Fb=LkjQC6!Mk@8?V~)I>0CAYd9pH?IxMfkkX1e4bpvIQUX-{|=!Nx-+a3auY3+ zoLi|lS5XW>Ns3G)NGB1CGIE+Du9R+5S^xGC`&FSK-82O9H~ort#J*f@H>MFeje}y4 z;!>1|PUz*!ebDvgo8{@f1it@&2r*zJ$mCAP;l}CX8 zr@moRc?MVlR%t5VUh1t0eP%+RozUk-dV8V&*~1=PiB83WS2zp`-B;knuXsU@9BgeH zQ!aTb^J$w!Gue*Ug!E;a##u2})z*T1vuvrw!Jfad4fYo^2;g1eukHIuxUq>t7l8r! zHWx(=H-rtPo`jhbzx0AG2rnqUs!P@e6!q&bBL1j-Oaz$zn`k`Q=v3bEl8b9i6KWiY zrd*tS3-6R~lkgxAo&*S-OXc-mK`lgCu_0tu*ech|3if!~Em8`ytspqSirFU+bxIvo zx;XNTCC?~*B#xmxZt5rcTly%ZsjznH>M~w^wLMd~zE7s`{i5#sh_Krc=}jNkjv%Uf z9N*_@7tJ-tReS_p+|}*7n6Db? z)Y4apNL|Q_M%CV>k(4wS&8kJ+2h=etT2+%&H+*$<9}h!5n+tW3AFs8I6kpxy%M+t= z72_uMNFOQh(Mud`IZ6=;Utx>Fy^i<6?4QuZC8GdK#-NOI1aVoq%*G+Gj~7hs*Y5lb HGmrlZX37eZ literal 0 HcmV?d00001 diff --git a/console.py b/console.py index 4798f9ac76b..e133363e235 100755 --- a/console.py +++ b/console.py @@ -46,10 +46,10 @@ def _key_value_parser(self, args): else: try: value = int(value) - except: + except Exception: try: value = float(value) - except: + except Exception: continue new_dict[key] = value return new_dict @@ -140,12 +140,12 @@ def do_update(self, arg): if args[2] in integers: try: args[3] = int(args[3]) - except: + except Exception: args[3] = 0 elif args[2] in floats: try: args[3] = float(args[3]) - except: + except Exception: args[3] = 0.0 setattr(models.storage.all()[k], args[2], args[3]) models.storage.all()[k].save() @@ -160,5 +160,6 @@ def do_update(self, arg): else: print("** class doesn't exist **") + if __name__ == '__main__': HBNBCommand().cmdloop() diff --git a/models/__pycache__/__init__.cpython-310.pyc b/models/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46c62a7889a4203dce7b1dcc8eea2e1ed93ccca8 GIT binary patch literal 442 zcmY*WyH3L}6t$g~6H+9YP#3y(X@po2f`~$=g4!-*vC`UYqdIZrgi3Tm>JRVCT?hj;7UHydDus`RihCgn5XCWX%8dxQIo$zfLy>T2LK!;h+|G9&PhTr5`6p(R6EvSvvtu_8nZf(Zt?d9g0BlU(b&OYKWhq7Ic>sS}7l zf~5<8kXNSu3rxIs2_=^NY(GEyecsouy4{pOyZ-TOdc+9%jf>sZg2h|tZVW~dK@?TY zP(fh~3@ZW=6kKqMer{StD8gpWOe7-kwMrYJPT>rSxWnQlyAUpXyU_Lp?oc>fPZ9K>6fckKzYh7N#X85i$ z%cAt*X>Idz274W=O;+bs>E`)jf|u+zzFoNYFwq2xB7!L@0O+ix*g3O36^KwrI#&D! zic#S=CX$k=NF;Y;N>!|q+gPM`gcH#Q{M1KV;`QMdy|CKpvTgwS)%0I6eb3a`Cs|Wk zuHC~mr2hc4ak(@m8yoG(gl^ez2%sbDQ|PV-rY1M!j9$^4T(O_@J4IhKrR&!hNKKzeIX$y|-0k_?WnZ5G5Ru(x+0w6-$Hj zj+7V6%xrfeDOEKAceu&n6IWL@n`v45u9P*3v*A~do4M1jERBPr12ko1sT%05_HyNaohqO)At zwJHMvoNIyp1nZbff6!jrOaDSI?KewBmfH&0;m+<1cjudLhN{-qA_u>xzy3Bj!0dNY zmVYjk&oSz!5W-0u!2~Z@$r8qB?iM`ZczT6fdWkn*^AjIye&Lrv5|pi^Rfb7u_kv=j zjFM<>x0f};%yBg^% zAJuWc$m%-2mDTcIC1er(i5ogSWI{Flb^=&WTmg zhTauxqJ!soaZYscTo>no$GTZr#6P+Da95tfF^6ZMsxm&<&HKCYV64YVHtVvE5Avdj zcVsN2LexTqxc;Bp5Dx*!>YmEWOdY0=P+3KckD9fNdPM@xNv7&UDNK=8G6S|`(p=MaMGG$ z@1mo_8J{|-H}bKzGIMBd{XFY;$NEKczdLh3Z{Zg$`9;>xCqLohlpnOOS5MkA=NPw2 z*N9p)&aN(P%~8T+r2c`fyLG4iGhNt(D?53o+XxR%4rFFxLH1 zb)e4CrZ*nv!uTXVQeCX{eB;%!7#J^8k7^S%*`c}dRNZ{xeuhuPE#lK{dgm(;f}J4iLpB5thL$BWY65(6ttsJH z$vq`&iGHx0h{Z7t)hFF=f4)&4eIH+?M=$>Q2;c;RN|l*bYdD6Y8D*tRQwtrbBJU%( z=S;nheT!2gE|YmHO_7T<{QycGKy?(u z=@Aob%Jv<#KE>>!bAq^MSP^X75!~*)2@R#c*x}pcjXsKX7gnCNx(3a==}ZY9fAX1< z=xg{MWHF@;6^XtT_nWT-8hxCh&w=;#mgRl@qF(U{(b=fq6q<#mVZ(Y_XJB`;i9DiU zdx6?OAja!gM1JIUKsBgd#iDgml+PZwbTJ|Dv<&(elBT6AyM7bK^*ThvLlg*&He|p& zwoIbA^%-!fMi$^wp=;E~3F?EWGbhY7v><%+&hX(yJhA;AP`jFE|9;O^SMeUzgD^qk z`oBDQ9|m_ZYD#dIPr9cZXuR(CUa~ltD5Xv@E>KaXou*I5S<%!Nm5!+TC^S0KtjzC_ zYUM#!RQ$FC6;;&|Z>beF8KPFBu8<&Fs`p6H#g?FsNwv&f!HoKdZ6=}Pv50lS-VO_S z_;TonLA$NUrgvU_L{1b~b2DDmieNTT{iMi>{;n(!m+nZ{GnY=cHsw!xbLlUHYSEi6 ylCTu{nCv~m%LLWVQ1-Pw_x~g`kf`$p}(m?cM5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!H8enx(7s(x{P zPGU+?W}d!dW|32#Q+#qxeqL&PnX!IueoAUiv3_b^dS+g#etdjpUS>&ryk0@&Ee;!? RTxm|K9mvFDCLqDW000}vA@~3Q literal 0 HcmV?d00001 diff --git a/models/engine/__pycache__/file_storage.cpython-310.pyc b/models/engine/__pycache__/file_storage.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f4bf6ecea12c4327fc7c1f225c76bbeafb334166 GIT binary patch literal 2557 zcmZ`*-EZ7P5Z_&|?|fhRYTD3(iur15K#5QV0+fEYfDjyr2q7$xac(z_FaAi^zJ#0{ zsZuK*;TegCMB=4S{6G5$Pw*dr1Yu@a(QC1jH2j9q>v1z_ z`7NV6aXabw9iunmnPk?Vr9@iNmUY>XE!mN?qWM$ZpL?H(mS{gFqWy^Z^Mb7ruQPO; zce1nyqcnGmP3gWD#d594RCr&yy*SMC=I?M?()FmW-%4Z}6?>pIZil)2I1@643BOYr z?N8&dC&5trOzuQ-7c_gV2n#gv&vU7~x?-@GvQTgoHi{aGItoOn2V?3%@0&34k3dKQ za1oyg>RW>OJR-g=<^&h^W9rvLP1GL~zb+infVU%>q6O~;c(g?aJep!g%z~vQEC_yH zwGT!ZU8jyC0ED^zxA-Ug)U?NVFTTk`+1gj zdl>EUgP~%~cVOfnfG8pF1FBw#$UZAcpB&Iba+iF4<}0>u?emhBywA2+excI())rG2 zOJ1_lS|tx!C1el3f-u<7Rk9eUQ3gfSE21n7)t(y!*?M30ioEM_eKwc~cD$nPsE|pn z8$n>w9R%75f;3EI5O}ucxr{fo)r)iOq;faF&9${9_q4qe#sm3;s521DU#lydSt3{R zEDnW=(v@40x}DyJEwfYxJ6Bf{R}i8guUNLcy{D}(j-N$b=0G@%(*=5t zI+Q)+v_^-s6X#wA&nZ}u9XJfEuY)pzb+M#<(uV?D0!tqxfJ^}}t7NNCWNT)4*6^)d z7MSi6tV|gIZtiYWY`PGtyNWY|j*GxtUyejq)8!{zwc#JC4hYR6p|Jd)SZW667JQ@T zaT)Qc#G+XM7+(P;N3uI?fzD9=&vcC7(W9_>{2*=6+r;<{C_ovE1?keN$WyZOhCmP_ z#P`51kW!YQkJt~h`&PjZY*?`l86{s3!8kDS5jGnj(HkW9b}1$J_azL|7Oder6C@v# z1(}Xb;-nm|Y=_0>y8xa^DNa01ce`HAfT8O}R#Ap$+cMQl(-a(kqdC@#=3yI2g|St0rI~&n+~gToT3g^<~S^*T}ckeAyy6^l?`w7phrPR zMgXsPZX%1#Ot>4Fn)v02()*_h2@(u}RlS-j4A-Nk5Kf=nhMtp>v0UJz8w!QQ3LqQFM1UPghZP*`0G8|%bD z44lXd)c}Dr!xD#Z$}Olu<}{s}<20LX$9Q-PY6ZPr5PGKiEm($5inj@KCD8LD<2u|c z@W3)Qw*=i9*?Z`TeNeYYmTkOjm;^yMg*3N|@m>RHZRV<>F5{sv hgr~)(omJQukh_i<&o6-B)ZuO5$;n@hIZzM_{9k|$UX1_% literal 0 HcmV?d00001 diff --git a/models/engine/file_storage.py b/models/engine/file_storage.py index c8cb8c1764d..d78a9821e5d 100755 --- a/models/engine/file_storage.py +++ b/models/engine/file_storage.py @@ -55,7 +55,7 @@ def reload(self): jo = json.load(f) for key in jo: self.__objects[key] = classes[jo[key]["__class__"]](**jo[key]) - except: + except Exception: pass def delete(self, obj=None): diff --git a/tests/__pycache__/test_console.cpython-310.pyc b/tests/__pycache__/test_console.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29ef71092ede2c425f133679644ae672be44fbb8 GIT binary patch literal 1784 zcma)7OOF#r5bmCbXEN&r0)f1MOaclRffq;)9HNM4>`C8+oqxN51QWQ6T6f9EJA@_j&M|@IVBU&MSWuaqki7h0Voe zAS;s}z$1TYZv557I_zb2!A z2Rwv6A{9zWrPIq9 zEI-Rs1vk>Y{%{uBU|Ve8vdJSncE2vTuq*kN$RD$DQ3`EWAPqv9yHDz@v|S@jRwgkRmO+UY91+qw)LZ8is2y=ScsP7LLr6!n8s3Z=kt0`e^77 z!X=4NSPISQrN>=96x0tHstBZ7MS%fo#Yq_1pO!;*t9!9IgBo9fXl`zN)_oV1Ke{v$ zgocEbk5JIh%qq4m`z&tZKzsUzZBJss$-ydFn}#< z_Ow|G1ue8t&Vk0eE{MeQXz>07$Rl}kl#L@ps4z2!0`p*fxIU0mATLy*drCf_88#OV z?;eVe`WnrK>Ko|n%7TLW4p!9nD9)n5%N-1dd$ZVr5>y=oavqV3sPqGf=K4}LeL{8E zi*3wUl}!cahwVq3*)C)FNVGdG%v0#+G>Y>menc_nz8hfyD15)MFf?W&lmZtdg`kf`$p}(m?cM5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HGenx(7s(x{P zPGU+?W}d!dW|32#Q+#qxeqL&PnX!IJYH>+1n2gWOPf5)w){l?R%*!l^kJl@xyv1Py R6fDh2wF8-2%mgG@7y!jJBiH}{ literal 0 HcmV?d00001 diff --git a/tests/test_models/__pycache__/test_amenity.cpython-310.pyc b/tests/test_models/__pycache__/test_amenity.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d705b32fda2201ee5751a73cafca6b4bdca7673 GIT binary patch literal 4554 zcmai2U2ojR73GjzE_b!E6-98Pz>b+XioK~Vqe+pvZW{P2cHANxqjn#h@TlwHc#hujjU1^Xs)e{Q5nw@3(z(tXUr@{Wu;y+leb>p#Iqr^$4fCW@+sa?x$|*y>bp%yOR28<(1P8tlx;oc-s!sdb)t|TG~h# z@mo*N!0WU6?3|y)pJ)If)UysUzd3=Nkuoie!DB~ zWOw3DFVA@V{PXMPS;oeFf?e9gfIF6!5`CbQQudZ-v zCd64R3v~ZHL6;UPv;Sr$ya85PaoH8 z=^ToMC_02RKr*C4xox$I^HWzd&QlpBlgmGm8z}UWNDpNzSAr@=SK}Cq#Idehjy(}W zuDu@5j+uBL6XwCQOe&v6r3^P{1?$Ed?)aJDuDdStUoXL)%B9oRI2Aq-VPSys@eC-p zEk~_1P9km<7iX`Wz(jmV%T>fj_z@wQOJqJKLve^t$jou){B)wBZUAi(J*kek0#jTi z7t810130#NMiI~5HWM(ZUJYN8G5I%`J!i+c=lpO9A_isOgQTrGU=QRBGKO7t)j47% zk9<`bT?dyKxHLTnta|39E_hWbzL{f=jsSfCMyA6MUPlA(-}QbNO|gX~qO*`8i=jicojYum*Ux0^JH; z`~Q0j?sLnunhQFN;|ysb{>LLW$GQ>6B(?U6p#}7qa&2Q4XDGA_WG<4qOr}Z3FknI% zb3_6xNCL=Xv$che50S02&=0Hh*QlE79bBLJ5EpLYD{sI|cOteAX`3w!T}GwsLV~gj zsg_+xm^P5@MZGY^#^RhwJ@rmA^>KoP)eH)&)vCm z&z`5gA)YA=yUUIq-zBAz!wmy4QE=RvX}6o|dPi{daA};NJsA$DpQB^6Ev9JolGUw; z@?jW0&yqYiQcopL8|DGv>Z`_vVy01j2V6Qts8Y=cGYEEz`rcw{ejv=_d#2P_GyZC(~XwKmTV=@sNENEQwMf4)-|bek!g8A_F}i2Nycj=< z>snlH3~{Sjvm~tykO4(%L#sh;s^#Mh#@biA1Fn6#Hrk@^Cq1-$l%A$Nt0*tnu#i1NZJJ}oDzjsD7JBr`VX%jueRMy@ zF%#p}$#~hlmpP>F{dv+GaVH)Q6D>D`&+*$}?RJhRRDZeY^30x5crooB_xQ&VQ|oJp34WyZzzDNby0rHs0X z9cU80DcaK7bE$(kFo2s*!7I#bniXu?GZ5dXLP&mSsDv@fhiWjy>(KWlmwt$@yxea_ zFZWx`z`{lk7oU;2L&nIcFbiJV2oVh~UK}N#qM$Bh4!(u)riLyla>v z*2!EabBPRXq=E!q{Dn-5%p)?BbWHZ_-{HcS_)6ODY0nN>7>2d5(O3|4t+{9yrEOY} zM}lVCwz_;NT;ITdGuRhiyDd=_>Trnvub_CWID{0zT}(7xfLZ!Y{^;;a+irhF4VF9y VM|j;@x8ACox6@jB%i$FseD3f-RJ+Ufyw(b8syswZSkyGQ_kq)_ zjb6GgR32STlz2Deq8IIEG7_H+L^~He+7Wxn?G9>^lt(;k5Bnm`lf09qUt{G?lj)Er zxyUphP-X?W35Pu&5^>Hi^~PhIXqrj^n2v?3@k$)jR7a~p};Sqfk=%vAa8{#y8(bX-&l#se+z!fLG zo?e11h0NdlbeQy-o?OBN@)0CD5K?AR8SU9*g{mK;^~3`)xD*$gNYb`Ag(lTN61oky z!5Zw`x9%VOZ%5D2A|_ZNgl`@@eojfWi3%R0q^FUA0-zF5gnIbdC9IpFXjOW2+=;nd(UW81txeNa`?ppM}h2%gq0uUs=UF`1ag4Ac6a% zhbe7gvh8MFhjE-HeG$jH9+Mw{$s)fT$3#!IMViGg8I9X*OClag6eMXal8j3}MG0Bh zOhN=E$tBVNMdAn@pSf~3k9r@;tk1U|zXco^e~&1|`1_#n z_tnDRhkTi@klz>e!zJE0V*C-lY9fVYegcR%saFUQ6I_o@8-NgpP3o*g&H&;9r!Sf+SnUo zLtnUGo;4;>N11h(Xr^-J?$X#hgFt8OQ!QL#We)Uj&Vl|3j9SJF2>psVs8sTH#TdkT zv0u2$Y^RH0BkCylNGXx+?MH1X5SMXXdpqkP{KyfoeTeNMIB`2%*Nf&j0X+`~6vA=J z`-B%Aq(cf>ny&VfJeS(b_Xpd}6-!W|W$<^D_E9b524!i7^baK&G z#)5P?C?&M=PCEy|QFsOFBk!qw1Wa(e^feXJv`St;y?maMDI$$GJ(-g?r2$ErcT6n$ zI=ZRzNCJ121^Bz5KKl>;yINg^b3JX`Yr{LqM$sH_taF{4?g7M1JnKL44GIYn;s7r| z4njjy@}M#3eC&1+>UhpAmOVc9Zn4yL5#k&n+{r742;5C>cD%nZ-k*$rd44?RuhQ&z z!U7Z3F?!=E%Qe%Ex}u%RVcE`IpvD{hWr~{oPBvpIRse0GA_V;K`JLTeArb3GWq4np zOx2^}M<)UktqliRYVn46)(-D*4DGa&9)jc&TqX*i;%+j}?W8vpn>RPM&i&_KFP;4< zD6Ifdn%yywvuyh#h#ru`K|@zmPl$m5kR&?Q4U0(x8#X2@P~~9>fFY1_5g11FVe&65 z0_wB@RJl)>0iyYxAu4}`xfS{0&<{Y=5d-M~T$Eci|24Ki)D}#~O!WYyCL}~BKuba< z1?7z0T^IDyJn+U|ml=X_K`-QSPZ>f%XfpOeRh2@~0a{H+2U?l;rJHlKQa2!CU4p40 z7UNredls;|>~NxyB!W_q9S%F3;$(V{-uUFB=QmzSHg-S0d+A_flK;tf$X|Tn;QV$o zwA!S2%lg%elzV}a7m<`ff^9Dn&Emq*VQ9<__a>WCxui4n&j#beJpHzD=E zF=)%2c@8T_&e)uLP!4bg^3QcYNf-{O_-*P$ z;iqNuw~*UzRu^h?HO~xp>s4!RTiGzR2B-a7VqaNC_bsD`_z;2-(bJ6UMtPrLjO&5( z(XvrqG5e?ZxH^f1^hd@Pvekgh4aRo%7|j*K<_wG!7vM38TPT<2Lr>IKr}aF5QmdoOv_)%ThVM+Q zN(zjm$cHk;Rm-l-`cSJ8ag<0=I`h%m`iC3q{f%{gef{mr>+fD(|6p@{cSdIu6;Dj; z9cKLXmtHjUMl1jiqlBug-S_wg6Q{SQKT$d@#&MkA5_<{*R+)?;bRxy9e7a7-InuK5tFuWy(>MV(6(n=o1C$ zz#h03g%lbgq3sKFQiMPXNC4bZ$H)WSMh#;kYE$KzOm2!cMNj3ARx@FsPf#cU44>cu zWG*~|OAG{`06sscn7Y8QkUtIzP*xC%PT7Zbs|Xhmju>u&SZ%4e)%pdk(h5>h5Kx?u ztP5Asjj1ocVVyZHL#FY-jbamIbzAnlq1%WKd0oEl+cx#{0$`pb6vruQ+rRwR55j8CTGrC z&!FK|JZ4dJ)&c{rg(t&Ccp_X1g9ek-qxp#aAOS{_>FB^h371;9XOeW)C+WIXhr_g! z6E5xN?RBH+YxQ%+bRx}f;Udx;=FAt4TbvGG!$=%3-ym0MysQsV5l7p<&7bs6ZTue+ Czt86Y literal 0 HcmV?d00001 diff --git a/tests/test_models/__pycache__/test_city.cpython-310.pyc b/tests/test_models/__pycache__/test_city.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9af3134bb58487383e9c75ccacd9b3585836a1b GIT binary patch literal 4653 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 literal 0 HcmV?d00001 diff --git a/tests/test_models/__pycache__/test_review.cpython-310.pyc b/tests/test_models/__pycache__/test_review.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..82d91e13f34eb39fd28aeecaeca09b405ee92207 GIT binary patch literal 4957 zcmb7IU2hx572VlgE|(M~%d(nA^+z{x6q~6nw{@Gis+%~rW5;OC8kPgJEQ0NtJF+N~ zTzY0`*K4T=AioyqPp}>Z1pPtt+NV7GEkNO%JF_H3T2fF7yxg6coxS(mb3aDe>}=J+ z=bL~3XZ_m+$N4Ya?Em<*2da|R<}TER%A7^$V+np3al%helM zPbKZ1jMN5?9&oAd^QUe8>}J-IQLB?k$z}CBsOZ$04%0+&)$Z~JZUSKz;;M2zk^F9! z@=l8u?*DkWxrVR23BjEvgQc*l>2W`GQ}3m-!A6WQ^HsWs{#n%8;H}5TkTh!zx*V3NcGioMUK&aDyu+hxJ+k&$+gc22 z4L@{EUb%sq zeZ*ClcOP;gbztAAt8KYH=(R{E9a{L}bpYtKI&#kuHN5lt&n|6bU4BVsog@|Q-lfmm z;(G6T-0EaK9zVT&$-K$PxJ!^rdu?}H=|9(1$<s zMXjs{%(})^_rADyW#z#h)1@baHdp!l^lCxw`2O6jYyjuAU}@n&E<`3|be??rED^nS z?~$ypH1Rj6|>MqpCagES`rtQB)t}ot$jZwyeQ&pZjDu$%fdJLFQyiI*R zAdX>E0DE-|EbUXc{XhyF0JNCLF1e-Y5#%wT3!+U!oPZQdB#4*$aCq-vJItsB;|x7O zBL5|6eSefuR(|x+2^@$5BQk!38<5UXY?Jb$OQa(bDxXGnkTD;ZFzQlP1Qq@K9KCxK zrDGZbvjI{8QiN29ut$yjR-3d+cbGHUmR<)zEjMwUtgS0g|DVpVQO zb}V`uQ$w*pQ2MaI5~ez!WSOWjwsqI=O8Znqj>MQ2j3Jhn2^q=&Rd_BPjZe za?xjmMW0bg=h9=Q-^MUzDwCjW+9KlZ zxVvcgM)&U2y=U)J-%zk_Ufv$HFl|aya`4b#O-vm1VcKn{y4n&P{aP9)=tc&8>fPuX zU5W`@J#W+29eJlG6_qkU-H)N0E^j0I=Yu)U^kaSWSs$51H`Erv`RQrQCZ0GHHSs&_ z1&cpE(Bc7_pQ8;f7fZzNu}?!>rQN1&7JtB~AV*tMKc}mMOg(N)Ep{}P{+X6ugUC-! z+qZw&kD7P+K=Ty;hdRQUKF$9>hEen$XxN-FjJ7jY{bgj;z6RSeeY9r6B#N<7diXnT z3ZAo9Y}YYuwX4ur?=WRpOq@>HmirVn3yA`JM`fGc_O@^)95C@A=F3}HZ|9#-RFqS9 zcyCU5e!faNX zKZ@&0jPnSxM;tfmp-m>`Vs}Fe?W^Z~u6=sluyMMTbR?$&LW6N^(oEgA1&s+^>hWiB zs(p%y>9AR{kX!ZRLT|HA0{l#k2;30)W{#=^r2EYR%ReBV*tjqJali&|xhBAlCUgH2 z7b(s>#ytSkxW@y$E}(apkZ>r;&^_GcQB$$cWp=DIIc8Vk%v5?6Y~c(wd>-RiiShDy zyf{r2j-%7m)1))tro%8!6kH8NkEhYP$hsrfCW52+7Xk;+d~x}&7ni#im(vH!U#>3S zU0q&VSzb5!#^y0<3dC<9hCURxX~bkOs-W6KA{4Yrhqzj&bH79h_Y8|9QIDzss^*DlB(Mhkm$--}Vui#d z5@$(VA@LcB>m;aj3X^Ns=;|vHW3QMi(_;M!6O`gdEmp|FFszurnc9q?`TDGV1$9<} z)U)Z|m~`A0zm`Sl literal 0 HcmV?d00001 diff --git a/tests/test_models/__pycache__/test_state.cpython-310.pyc b/tests/test_models/__pycache__/test_state.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4fff3aabe12d9c32667714ceae8a94d799af92b0 GIT binary patch literal 4450 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 Date: Wed, 7 Aug 2024 08:19:06 -0700 Subject: [PATCH 4/5] updated files --- models/engine/db_storage.py | 24 ++++++++++++++++++++++++ models/engine/file_storage.py | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/models/engine/db_storage.py b/models/engine/db_storage.py index b8e7d291e6f..f24f47afcbc 100755 --- a/models/engine/db_storage.py +++ b/models/engine/db_storage.py @@ -74,3 +74,27 @@ def reload(self): def close(self): """call remove() method on the private session attribute""" self.__session.remove() + + def get(self, cls, id): + """Get method.""" + if cls not in classes.values(): + retuen None + + all_cls = models.storage.all(cls) + for value in all_cls.values(): + if (value.id) == id: + return value + return None + def count(self, cls=None): + """count the number of objects in the storage""" + all_classes = classes.values() + + if not cls: + count = 0 + for class in all_classes: + count += len(models.storage.all(class).values()) + else: + count += len(models.storage.all(cls).values()) + + return count + diff --git a/models/engine/file_storage.py b/models/engine/file_storage.py index d78a9821e5d..2c852739528 100755 --- a/models/engine/file_storage.py +++ b/models/engine/file_storage.py @@ -68,3 +68,27 @@ def delete(self, obj=None): def close(self): """call reload() method for deserializing the JSON file to objects""" self.reload() + + + def get(self, cls, id): + """Get method.""" + if cls not in classes.values(): + retuen None + + all_cls = models.storage.all(cls) + for value in all_cls.values(): + if (value.id) == id: + return value + return None + def count(self, cls=None): + """count the number of objects in the storage""" + all_classes = classes.values() + + if not cls: + count = 0 + for class in all_classes: + count += len(models.storage.all(class).values()) + else: + count += len(models.storage.all(cls).values()) + + return count From a80ce6bf75a6303fa283fb0d96f3046275a63642 Mon Sep 17 00:00:00 2001 From: SoladrinHub Date: Wed, 7 Aug 2024 09:12:40 -0700 Subject: [PATCH 5/5] just updated --- models/engine/db_storage.py | 13 +++++++------ models/engine/file_storage.py | 15 +++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/models/engine/db_storage.py b/models/engine/db_storage.py index f24f47afcbc..58ce350813f 100755 --- a/models/engine/db_storage.py +++ b/models/engine/db_storage.py @@ -77,24 +77,25 @@ def close(self): def get(self, cls, id): """Get method.""" - if cls not in classes.values(): - retuen None + if cls not in classes.values(): + return None all_cls = models.storage.all(cls) for value in all_cls.values(): - if (value.id) == id: + if (value.id == id): return value + return None + def count(self, cls=None): """count the number of objects in the storage""" all_classes = classes.values() if not cls: count = 0 - for class in all_classes: - count += len(models.storage.all(class).values()) + for clas in all_classes: + count += len(models.storage.all(clas).values()) else: count += len(models.storage.all(cls).values()) return count - diff --git a/models/engine/file_storage.py b/models/engine/file_storage.py index 2c852739528..a2d96eee09c 100755 --- a/models/engine/file_storage.py +++ b/models/engine/file_storage.py @@ -3,6 +3,7 @@ Contains the FileStorage class """ +import models import json from models.amenity import Amenity from models.base_model import BaseModel @@ -69,25 +70,27 @@ def close(self): """call reload() method for deserializing the JSON file to objects""" self.reload() - - def get(self, cls, id): + def get(self, cls, id): """Get method.""" - if cls not in classes.values(): - retuen None + + if cls not in classes.values(): + return None all_cls = models.storage.all(cls) for value in all_cls.values(): if (value.id) == id: return value + return None + def count(self, cls=None): """count the number of objects in the storage""" all_classes = classes.values() if not cls: count = 0 - for class in all_classes: - count += len(models.storage.all(class).values()) + for clas in all_classes: + count += len(models.storage.all(clas).values()) else: count += len(models.storage.all(cls).values())