[Zope-dev] Two small convenience suggestions for zope.interface and zope.component

Martin Aspeli optilude+lists at gmail.com
Wed Apr 1 10:56:30 EDT 2009


Tres Seaver wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Martin Aspeli wrote:
>> Hi,
>>
>> I'd like to add support for the following:
>>
>> 1) Provider decorator:
>>
>>   @provider(IFoo)
>>   def some_function(context)
>>       pass
>>
>> This is an alternative to doing a separate alsoProvides() on the function.
>>
>> 2) An interfaceProvides directive:
>>
>>
>>   class IFoo(Interface):
>>       interfaceProvides(ISomeMarker)
>>
>> This is alternative to doing alsoProvides() on the interface.
>>
>> The reason for this is that currently, you have to put those 
>> alsoProvides() lines after the function or interface. This makes them 
>> difficult to find if the bodies of the functions or interfaces are long, 
>> and goes against the convention of having the "what is this" information 
>> at the top of the entity.
>>
>> I can probably help implement this. Any thoughts?
> 
> You should probably add a "class decorator" 'interfaceProvider', as
> well, because the "in-suite" versions are problematic for 2to3
> conversion (IIRC what Lennart said yesterday).

I'm not sure I understand what you mean by that. Can you show an example?

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book



More information about the Zope-Dev mailing list