From 409a27fd38d83d2b7d6ee2354dd184f119026618 Mon Sep 17 00:00:00 2001 From: Kunnal-chawla Date: Sun, 28 Dec 2025 10:54:11 +0530 Subject: [PATCH] Refactoring to Improve code --- .coverage | Bin 53248 -> 53248 bytes python/gilded_rose.py | 53 +++++++++++++++++++++++------------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/.coverage b/.coverage index 1fb750d55a4ce683364a935d8675b1f840103c0a..cb7cf9a9094ed0ca4bac6c4c407be36d615b6185 100644 GIT binary patch delta 2746 zcmX}tZBU%m6$kLMyU*@D_uh4dumlJo5RgK62U!7esVk7c5EsaX3?0Xpm>0#E#Ax2o zlnK+J4GLBB1kq^$aVWbz%p3Z*x zJ^%aPyK`sno*f$Y4GsHFI>WvR3?2}}XWiR^4Z+G_QE*W(B^b~%dRl+2KiB`%7xY!BeRzg8>&! zo8Kcn9=|9+(@Jy%n%jv5vuI*OuY=|`;;a|VPv_}`ZJ~uI!f2vIzuntCk^g6;c&C!*P-Jo$k^{tGfX&@$6qPdyaZ_@~|uOCf4ag|MPN~WvO)DaVXXljYQ z2{bjt6}DTQOjn?(B6jzpsdUNl5i}LV9$PL?HhR#MB@5kXmJpZQLMd@%Ihqn;*EpJ= z5IaZF6ca}~(cDPv=t5IOjM*a>65XX8Xcm*(m!c^kwzZ?lC$_es$s@*E(cC~BkDFq5L?cp$tFfy&@3W0HlxWRHrZ}wGHpVW;dkf0d*As+Gz%%NkDy5>HcX=l6Km?x zq!A-iXciFbY&VryTZbkk*{wx$J+ZO|O^8@+yVnt`s?h|K1-A-~CYM#BQN#*cmc;T3 zG?*-uqY=c?Ni+fCWGNayv7`)*L!2r><0BR~pz#umE}`)dFBPEyzrBC<_=Uxoya##t zxSQ4sF5@mzegQsC%E`mWNV)kqn9Oo;10=kL50C`n{UkMm z>q+eaf$NCZ0=Smsgm6t#e!P$5SGbxqhpyAPTIdDpikea1 ztBYzvols+HzdEK4sVCHcy35YRO0`)2s1_YRVS61o$DZ}V$4T2k z31`_N3}@JW0po1P4<9M}S<>Tmyzn8%uHEy4x!fbY&Mb^2b2~5LeRg6c{F&V!hf#K4 zKb&T-io>7SeXC%Eo#=y8?A`?Yk-Z`g@6Fk@XZQ84fRnt?-3uq!@ez2J-4lmDu)BNU zI6K}Azh^Ix!#nJe;WhSn3=XrKqwp%b05~%$&T(lXQK#`H%fS&K+c4&e_S#F5JP)$lT7%y1I>- znYEP}&UloWp7{tfoW6y5HT*C$Eqk*H%>PMxe4*GTj#JY%GE-6?Vun&SFsDNgGV$5~ zQ{V$kHFG~RAl5Ul1=ca0&{}4><6pz}tNWNU&T2V7EbJt{cTVW=zVT~}9CyE>s-)n2t-ZB#94 zfofJ0Rimm^6>6l)RVm7+qzuUi@-O+j?2*^y6?sk`lLzH4xkav#i{x}UQ8vgLStbi) zhD?x=(k=cKe~Y`~mbf80#CdU|S{xF4#5S>BEETiFB+(@5M1?34*&<0q3lksXeY}Ua z@g`owi+CE3;C|eJo3I7v<5YYD>#?dWCi-H8jXG$$gv(`GX{ZB4kA?abVp<4wCDH9c zT|o@FQNKJykIyM6Ct5z#Wkl22VKmWWTDsJsaCw}&Mp5YYSo)(P%@Mn;{vFQ ziDMm(B-V^YT|{hbLp_4n(1^N_*wl`?fH-;`k=idEsKAQt zdp+u0V(mE8Im9~WM`VZ7I@DRjnp)JE#OfN<8N@M8ZF)EzgF1~EtVW$m40NJ?fmr3# zrV#C573$=0MG*BcVx?1&MC`0Y{XDU}3w0u~q8oJrv8x>QbHuU=)bYgbQq*z8Ql~jz zm}RJ+B^DK6wV0So^;w=gj;bfzKKCBaR!=c{bN0{{;+OY zKUr6;bJkI7hqci_WW)zcL}#A1n0xKGw`6DJvIPs?3%G~j@{S>XW0#n zaE9H~4&SmTG{9+g+XOhpt`EV@ zcfkR6MK|ncca_5@?6L~jN4DKYcPZ@Uh0=QX_^Hca54)%scC$-*;3IZ%3G8AQ6v0k* zVKIEjE+~W@?4APnfSu=u?aHRt&&YoQ@AE=-9=yl)_rW%Ht{=9tb8_Kbc6JVIVP|B+ zJM1h!Y-VR>!6tS_CTwKesTrX8BHa%ghTcVI@TaBQ%+$2?%#_}B%-)o>%;eNH%)aE+ z%%uEP%*6f{W`E*JW8 0: depreciation = -1 else: @@ -13,7 +24,7 @@ class Updater(object): item.quality = max((item.quality + depreciation), self.MIN_QUALITY) item.sell_in += -1 - def aged_brie(self, item): + def aged_brie(self, item:Item): if item.sell_in > 0: appreciation = 1 else: @@ -21,10 +32,10 @@ class Updater(object): item.quality = min((item.quality + appreciation), self.MAX_QUALITY) item.sell_in += -1 - def sulfuras(self, item): + def sulfuras(self, item:Item): pass - def backstage_passes(self, item): + def backstage_passes(self, item:Item): def get_quality(item, appreciation): item.quality = min(item.quality + appreciation , self.MAX_QUALITY) @@ -42,7 +53,7 @@ class Updater(object): item.quality = 0 item.sell_in += -1 - def conjured(self, item): + def conjured(self, item:Item): if item.sell_in > 0: depreciation = -2 else: @@ -54,31 +65,25 @@ class Updater(object): class GildedRose(object): - def __init__(self, items): + AGED_BRIE: Final[str] = "Aged Brie" + BACKSTAGE_PASSES: Final[str] = "Backstage passes to a TAFKAL80ETC concert" + SULFURAS: Final[str] = "Sulfuras, Hand of Ragnaros" + CONJURED: Final[str] = "Conjured Mana Cake" + + def __init__(self, items:Item): self.items = items def update_quality(self): updater = Updater() for item in self.items: - if item.name == 'Aged Brie': + if item.name == self.AGED_BRIE: updater.aged_brie(item) - elif item.name == 'Backstage passes to a TAFKAL80ETC concert': + elif item.name == self.BACKSTAGE_PASSES: updater.backstage_passes(item) - elif item.name == 'Sulfuras, Hand of Ragnaros': + elif item.name == self.SULFURAS: updater.sulfuras(item) - elif item.name == 'Conjured Mana Cake': + elif item.name == self.CONJURED: updater.conjured(item) else: updater.normal_item(item) - - -class Item: - def __init__(self, name, sell_in, quality): - self.name = name - self.sell_in = sell_in - self.quality = quality - - def __repr__(self): - return "%s, %s, %s" % (self.name, self.sell_in, self.quality) - \ No newline at end of file