Re: [PATCH] rteval: Add __contains__ in rtevalConfig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, 29 Jul 2021, Jeff Epler wrote:

> On Thu, Jul 29, 2021 at 06:07:13PM -0400, John Kacur wrote:
> > Add the __contains__ function to the rtevalCfgSection class  to make "in"
> > function correctly.
> 
> Thank you.  A possible correction:
> 
> I believe the correct implementation (to delegate the 'in' operation to
> the dictionary-like object self.__cfgdata) is
> 
>     def __contains__(self, key):
>         return key in self.__cfgdata
> 
> I mocked a bit of rtevalCfgSection with your implementation:
> 	class rtevalCfgSection:
> 	    def __init__(self, cfgdata):
> 		self.__cfgdata = cfgdata
> 
> 	    def __contains__(self, key):
> 		if key in self.__cfgdata.keys():
> 		    return self.__cfgdata[key]
> 		return None
> 
> and then tried it with some carefully chosen values
> 
> >>> d = {1: 'x', 2: 'y', 3: None, 4: False}
> >>> r = rtevalConfig.rtevalCfgSection(d)
> >>> 1 in d, 1 in r
> (True, True)
> >>> 9 in d, 9 in r
> (False, False)
> >>> 3 in d, 3 in r
> (True, False)
> 
> With the corrected implementation, the results would always be the same,
> not different in the '3' case.
> 
> Additionally, my version avoids extra operation on the underlying
> dictionary.
> 
> Jeff
> 

Your version is simpler and correct in the case where the item is None
Integrating your version into the patch and resending, thanks!




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux