
On Wed, Nov 4, 2009 at 6:34 PM, Steve Fisher <dr.s.m.fisher@gmail.com> wrote:
Just a note to remind people that the dictionary syntax in python is just a convenience - you need to implement __setitem__, __getitem__, __delitem__ etc. Our __setitem__ can reject requests to set fields whoch don't already exist for those cases where the set of attributes is not extensible. It just needs a private method called by the implementation to set the attributes with any defalt values and indicate whether or not it is extensible. I think it is best to try it and see if there are any practical problems. Also see: http://docs.python.org/library/userdict.html#module-UserDict which may be useful.
It is certainly doable from the technical point of view. My question is what would be the advantages of having a dict-like interface? Would that be in this form then:
If I rember the discussion from Banff correctly, the proposal was more like
jobDescription.attributes["Executable"] = "/bin/hostname"
Why not: jobDescription["Executable"] = "/bin/hostname"
to decouple the attributes from the object properties. The dictionary seems to offer a reasonable interface for atributes, so why not use it?
not sure if one can then argue why not to use
jobDescription.attributes.Executable = "/bin/hostname"
Not good as we have no way to ensure only proper attributes are accessed. For instance jobDescription.attributes.Executable1 = "/bin/hostname" will go unnoticed as Python simply creates a member Executable1 assigning the string.
One question about both approaches though, and to also about both approaches you list below: how would async ops be realized?
Async ops are separate and have to follow the get_attribute/set_attribute interface (which should be implemented in addition anyways) Regards Hartmut ------------------- Meet me at BoostCon http://boostcon.com