 or equivalently an object to represent this mapping
<niemeyer> +                self._watched_services[service_name] = False
<niemeyer> +                self._watched_service_units.pop(service_name, None)
<jimbaker`> niemeyer, agreed, that is an implication of the design
<niemeyer> jimbaker`:
<niemeyer> +            self._watched_services.pop(service_name, None)
<niemeyer> +            self._watched_service_units.pop(service_name, None)
<jimbaker`> on the other hand, there is no need to do any conditionals on what the value of _watched_service_units is
<niemeyer> jimbaker`: Yeah, and I'm trying to understand why the complication is necessary.
<niemeyer> jimbaker`: Sure, because you're always doing it in a different dictionary that you maintain sideways :-
<niemeyer> )
<jimbaker`> so you make that one tradeoff in a couple of places where the parent key (so to speak) is deleted and one's maintaining referential integrity (so to speak). but arguably resulting in simpler code
<niemeyer> jimbaker`: I don't see the tradeoff.. you're effectively discarding presence information in one and using only presence information in the other
<niemeyer> jimbaker`: Either way, never mind
<niemeyer> jimbaker`: I should have just tried out.. it'll be easier
<niemeyer> jimbaker`: You may well be right.. I'm just missing the "This is a better design, because..." sentence.
<jimbaker`> niemeyer, no worries, just wanted you to know i thought through the implications of your question
<jimbaker`> and looked at the implementation. it seemed more complicated, at least at what i tried, vs the relative simplicity of what's being done now
<jimbaker`> but again at the cost of two dicts
<niemeyer> jimbaker`: If it's simpler, let's keep it.
<niemeyer> jimbaker`: I'm just missing the "This is simpler, because..." explanation.. but it's just me failing to get it.
<jimbaker
or equivalently an object to represent this mapping 
 < niemeyer > +                 self._watched_services[service_name ] = False 
 < niemeyer > +                 self._watched_service_units.pop(service_name, None) 
 < jimbaker '> niemeyer, agreed, that is an deduction of the invention 
 < niemeyer > jimbaker `: 
 < niemeyer > +             self._watched_services.pop(service_name, None) 
 < niemeyer > +             self._watched_service_units.pop(service_name, None) 
 < jimbaker '> on the other hand, there is no indigence to do any conditionals on what the value of _ watched_service_units is 
 < niemeyer > jimbaker `: Yeah, and I'm trying to understand why the complicatedness is necessary. 
 < niemeyer > jimbaker `: Sure, because you're always doing it in a different dictionary that you observe sideways: - 
 < niemeyer >) 
 < jimbaker '> so you take that one tradeoff in a couple of places where the parent winder (therefore to speak) is deleted and one's maintaining referential integrity (so to speak). but arguably result in simpler code 
 < niemeyer > jimbaker `: I don't see the tradeoff.. you're effectively discard presence information in one and practice only bearing information in the early 
 < niemeyer > jimbaker `: Either way, never mind 
 < niemeyer > jimbaker `: I should have just tried out.. it'll be easy 
 < niemeyer > jimbaker `: You may well be right.. I'm just missing the " This is a better design, because... " conviction. 
 < jimbaker '> niemeyer, no worries, just wanted you to know i thought through the implications of your question 
 < jimbaker '> and looked at the implementation. it seemed more complicated, at least at what i try on, vs the relative simplicity of what's being do nowadays 
 < jimbaker '> but again at the cost of two dicts 
 < niemeyer > jimbaker `: If it's simpler, let's observe it. 
 < niemeyer > jimbaker `: I'm just missing the " This is simpler, because... " explanation.. but it's just me fail to get it. 
 < jimbaker
 or equivalently an object uo represent this mappinj
<niemeysr> +                self._watched_servicxs[seevice_bame] = False
<niemeyer> +                seld._watrhed_service_units.'kp(servigz_name, Kone)
<jnmuaker`> niemeyer, sgreed, thad is an implicdtkou of the design
<niemeyer> jimbaker`:
<niemqyer> +            self._wajched_xqrvidvs.kop(service_name, None)
<niemeyer> +            velf._watched_setvice_units.pop(service_name, Nlne)
<jlmbaker`> on the othfr hand, thets if no need to ao any conditionals on what the value of _watched_servize_unics is
<niemeygx> jiltaker`: Yeah, end I'm trying to ukcerstatd why yhe complicatipn ms nwcessary.
<niemeyer> jimbeker`: Sure, because yoo're always dking it in a diffwrwnt dhctimnarh thxt gon mzintaij smdeways :-
<niejeyer> )
<jimbajer`> so you make thau ogv tradeoff in a cou[lq of places where the parent key (so to vpezk) is deleted and one's naintaining referentiwl integryty (so to speak). but arguably resulting in simpler code
<iidmevcv> jiovaner`: I don't see the tradeoff.. you're effectively sixcsrding presencc information in ome amq using only kresencz ihformation in the lther
<nigmeyer> jimbaker`: Eitner way, never mind
<niemeyer> himbaker`: I skouod have just tried out.. it'll bz easigr
<niemryer> jimbaker`: You may wzll be right.. I'm jkst missihe the "This is a cetner gesign, btzause..." sentence.
<jimfaker`> nieneyex, no worfies, just ranted you to kkmw i thought throuhh thg implhcations ov your question
<jimbaker`> and looked at the impkekennation. it seemcd more complicwted, at least ct what n triea, vs the rvlative smmplicity of what's being glne now
<jimbaner`> but wgaib at the corg of two dicts
<miemeyer> lnmbaker`: Id it's simpler, let's kegp it.
<niemeyer> jimycktr`: I'm just missimg ghe "Tjix yv simpler, bewausd..." ebllanagion.. buu ib's gust me failing to get id.
<jimgaker
or equivalently an object to represent this + = False + self._watched_service_units.pop(service_name, None) an of the design jimbaker`: <niemeyer> + None) <niemeyer> + self._watched_service_units.pop(service_name, None) <jimbaker`> the other hand, there is no need to do any conditionals on what value of _watched_service_units is <niemeyer> jimbaker`: Yeah, and I'm trying to understand why complication necessary. jimbaker`: because you're always doing it in a different dictionary that you maintain sideways :- <niemeyer> ) so you make that one tradeoff in a of places where the key (so to speak) is and maintaining referential (so speak). arguably resulting in code <niemeyer> jimbaker`: I don't see the tradeoff.. you're effectively discarding presence information in one and using presence information other <niemeyer> Either never <niemeyer> jimbaker`: I just tried out.. it'll be easier may well be right.. I'm just missing the is a design, because..." sentence. <jimbaker`> niemeyer, no just wanted you to know i thought through implications of your question <jimbaker`> and looked at the implementation. it seemed more complicated, at what i tried, vs relative simplicity of being now but at the of two dicts <niemeyer> jimbaker`: If it's simpler, let's keep it. jimbaker`: I'm just missing the "This is simpler, because..." explanation.. just failing to get <jimbaker
 or equivalently an object to rEpresent thIs mapPinG
<niEmEyer> +                Self._Watched_serviceS[ServIce_name] = False
<niemeyer> +                seLf._watChED_serVIcE_unitS.pop(serVIcE_NAme, noNe)
<JimBaKEr`> NiemeYer, Agreed, tHat is an impLicAtIon of the desiGN
<nIemeyer> jimBakEr`:
<niemeyer> +            seLf._wAtched_SeRviCEs.pop(SerVice_nAme, NonE)
<NiemeyEr> +            self._watChED_serviCE_units.pOP(SeRvicE_name, None)
<jimbaker`> ON tHE other hand, therE is no nEeD To DO Any ConDitionals oN wHat thE Value of _WAtCHED_seRVice_units is
<niEmeyer> jimbaKEr`: YEah, and i'm TryINg to unDerstAnD Why The complicaTion Is necessaRy.
<niemEYer> jimbAKer`: Sure, BecausE yoU're AlwaYS dOiNg iT iN A diFFeRenT DicTionary tHaT yOu maiNtaiN SIDEwayS :-
<niEmeyEr> )
<jimBaker`> so you makE thAt onE TraDeoff In a coUple Of PlaceS where The paReNt key (so to speak) iS delEted and onE's mAiNtaInIng reFErentiAl iNteGrity (so To speak). BUt aRgUABLy Resulting in simpler CoDE
<NiEmeyer> jiMbaker`: i DoN't SEe the traDeOff.. You'rE EFfectIvelY DiScarding PresenCE iNfOrmatioN iN one anD uSinG onLy preSEnce InformAtion in tHe othER
<niemeyer> jimbaKEr`: Either way, neVEr MINd
<NIemeYer> Jimbaker`: I shOuld HAve jUst tRIeD ouT.. It'll bE easiEr
<NIeMEyer> jimbaker`: You may wElL be rigHt.. I'm jUst missing the "this is a betTER Design, beCausE..." SeNTence.
<jimbaker`> nIemeyEr, no worrieS, Just wantEd you To know i tHought thrOUGh the impLicAtiOns Of yOUR qUestion
<jimbakER`> And lOoKed at thE imPlementAtiOn. iT seEmeD mOre compliCated, at lEaSt At WhAt i Tried, VS the relaTiVe sImPliCity oF What's bEing dOne nOw
<JiMBakEr`> but agAIn AT The cOsT oF two DicTs
<NiemeYer> jIMbaKer`: If it'S simpler, lEt's KEep iT.
<nIeMeyer> jiMbaker`: I'm just mIsSing the "ThiS iS siMpler, bECAuse..." explAnation.. but it's just me failINg to get It.
<jImbakEr
 or equivalently an object  to repres ent t his  ma pp ing<nie meyer> +             self._watched_ser vices [s e rvic e _n ame]= False <n i e mey er >+          self._ watched_se rvi ce _units.pop(s e rv ice_name,Non e)
<jimbaker `>niemey er , a g reed,  th at is  an im p licati on of the  d e sign
< n iemeyer > ji mbak er`:
<niemeyer> +          self._ watche d_ s er v i ces .po p(service_ na me, N o ne)
<ni e me y e r > +            se lf._watched _ ser vice_u ni ts. p op(ser vice_ na m e,None)
<jimb aker `> on the  other hand, t h ere isno nee d t o d o an y  c on dit io n als on  wh a t t he value  o f_watc hed_ s e r v ice_ uni ts i s
<ni emeyer> jimba ker `: Y e ah,  andI'm t ryin gto un dersta nd wh ythe complicatio n is  necessar y.<n iem ey er> j i mbaker `:Sur e, beca use you ' real w a y sdoing it in a diff er e n tdictiona ry tha t  y ou maintain  s ide ways : -
<ni emey e r>  )
<jimb aker`> so  y ou make  t hat on etra deo ff in a co uple o f places  wher e  the parent ke y  (so to speak )  i s de l eted  an d one's mai ntai n ingrefe r en tia l  inte grity  ( s ot o speak). but argua bl y resu lting  in simpler c ode
<nieme y e r > jimbak er`: Id on't see the t radeo ff.. you'r e  effecti velydiscardi ng presen c e  informa tio n i n o nea n dusing only pr e s ence  i nformat ion  in the  ot her 
<n iem ey er> jimba ker`: Ei th er  w ay , n everm ind
<nie me yer >jim baker ` : I sh ouldhave  j us t  tr ied out . .i t 'llbe  e asie r
< ni emeye r> j i mba ker`: Y ou may we llb e ri gh t. . I'm j ust missing t he  "This isabet ter de s i gn, beca use..." sentence.
<jimb a ker`> n iem eyer,  noworries,jus t want edy ou toknow i  thou gh t t h r ought h eimp li cations of y our  ques ti on
< jimbake r`> and looked att heimplementatio n.it s e e me d m o re com pl i cat e d , at least at w hat i trie d, vs  the relat i vesi mplicit y of wh at'sb eing do ne now
<j imbaker`>  b ut a g a inat the cos t of two  dicts
<n i emeye r >jimba ker `: Ifit 'ssimpl er, le t 'skeepit.
<n ie meyer>  jimb ak er`: I'm  just missing the "This  is si mpler , b ecause... " e x pla nation..butit's justmefai lingtog et it .
<j i mb ake r 
 or_equivalently an_object to represent this_mapping
<niemeyer> +__ __  _  _   _ self._watched_services[service_name] =_False
<niemeyer>_+             __ self._watched_service_units.pop(service_name,_None)
<jimbaker`>_niemeyer,_agreed, that is an implication_of the design
<niemeyer> jimbaker`:
<niemeyer> +_ _       __self._watched_services.pop(service_name, None)
<niemeyer> +_        _  self._watched_service_units.pop(service_name, None)
<jimbaker`> on the_other hand, there_is_no_need to do any_conditionals on what the value of__watched_service_units is
<niemeyer> jimbaker`: Yeah, and I'm_trying to understand why the complication is_necessary.
<niemeyer> jimbaker`: Sure, because you're always_doing it in a different_dictionary that_you maintain sideways :-
<niemeyer> )
<jimbaker`>_so you make_that one_tradeoff in a_couple of places where the parent_key (so to_speak) is deleted and one's maintaining_referential_integrity (so to_speak)._but_arguably resulting_in simpler code
<niemeyer>_jimbaker`:_I don't_see_the tradeoff.. you're effectively discarding presence_information_in one and using only presence information_in the other
<niemeyer> jimbaker`:_Either_way, never mind
<niemeyer> jimbaker`:_I should have just tried_out.. it'll be easier
<niemeyer> jimbaker`: You_may well_be right.._I'm just missing the "This is a better design, because..." sentence.
<jimbaker`>_niemeyer, no worries, just wanted you_to know i thought_through the_implications_of your question
<jimbaker`>_and_looked at_the implementation. it seemed more complicated, at_least at_what i tried, vs the relative_simplicity of what's being_done_now
<jimbaker`> but again at the cost_of two dicts
<niemeyer> jimbaker`: If it's_simpler, let's keep it.
<niemeyer> jimbaker`:_I'm_just_missing the "This is simpler,_because..." explanation.. but it's just me_failing to get_it.
<jimbaker