cleverdict icon indicating copy to clipboard operation
cleverdict copied to clipboard

More elegant solution for CleverDict.ignore

Open PFython opened this issue 5 years ago • 1 comments

Currently it's possible to set dictionary items with the same (key) names as existing methods e.g.

x=CleverDict() x['save']="What a great save!" x['save'] 'What a great save!'

They don't overwrite the existing method (a good thing!) but there is some potentially confusing behaviour:

x CleverDict({}, _aliases={}, _vars={})

This is because CleverDict.ignore includes {'save_path', 'delete', 'save', '_aliases'}.

Furthermore, although a user is unlikely to import their own data with an existing key of "_aliases", the other three ignored attributes might quite plausibly feature. In this case the solution is just to rename the keys before importing to CleverDict but the danger is that a user might not even know/expect this to be an issue until it becomes one...

PFython avatar Jan 31 '21 04:01 PFython

I think you can close this or??

FelixTheC avatar Feb 15 '22 19:02 FelixTheC