Re: New appletrailers script and kaa.xmlutils

Jason Tackaberry <[email protected]>
Newsgroups gmane.comp.video.freevo.devel
Message-ID <1282408097.5440.8.camel@willow>
On Fri, 2010-08-20 at 14:32 +0200, Hans Meine wrote:
> That does not sound like zen-compatible python to me. :-)
> ("Explicit is better than implicit")
> 
> FWIW, the __setitem__ looks very good to me.

I agree.

Having implicit conversion between dashes and underscores makes the API
cleaner, since you can reference XML attributes the same way you
reference python attributes and you can pass attributes as kwargs.

That is:

        >>> node.add_child('url', 'http://foo', mplayer_options='-demuxer lavf')
        >>> print node.mplayer_options
        
Versus:

        >>> node.add_child('url', 'http://foo')
        >>> node['mplayer-options'] = '-demuxer lavf'
        >>> print node['mplayer-options']

The former is more magical, but perhaps more intuitive.  But it has the
(I think fatal) flaw of conflicting with the Node class namespace, so
you could never have an attribute called, for example, 'save'.  And it
is, as you say, not zen-compatible.

Instead of accepting kwargs for add_child, I'd prefer explicitly
accepting a dict, and always using __getitem__/__setitem__ to avoid the
collision problem with python attributes.

        >>> node.add_child('url', 'http://foo', {'mplayer-options': '-demuxer lavf'})
        >>> print node['mplayer-options']

dischi, can we deprecate __getattr__ and the kwarg support in add_child?
(I'll implement it.)


------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.