[SAGA-RG] SAGA attributes as Python dictionaries?

Hartmut Kaiser hartmut.kaiser at gmail.com
Wed Nov 4 19:18:04 CST 2009


> > On Wed, Nov 4, 2009 at 6:34 PM, Steve Fisher
> <dr.s.m.fisher at 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







More information about the saga-rg mailing list