[Zope3-Users] Adapting a builtin?

Michael Howitz mh at gocept.com
Wed Dec 7 02:58:51 EST 2005


On Tue, 2005-12-06 at 18:44 -0500, Paul Winkler wrote:
> Hi,
> 
> Is it possible to register an adapter for a builtin type
> such as str?  All the adapter examples I see use an interface for the
> "for" attribute.
> 
> Something like:
> 
>   <adapter for="str"
>     provides=".interfaces.IHTTPConnection"
>     factory="httplib.HTTPConnection"
>   />

Hi,

in plain Zope3 (I'm not using Five, but it may be similar there.) you
can declare an interface for the buitin: (e.g. in interfaces.py)

class interface IStr(Interface):
   # define the methods here which you need to access
   def upper():
       "upper ... as an example"

In configure.zcml, you declare the interface for the builtin:

<class class="str">
   <implements interface=".interfaces.IStr" />
</class>

<adapter
   for=".interfaces.IStr"
   provides=".interfaces.IHTTPConnection"
   factory="httplib.HTTPConnection"
   />

Then you can do:
  IHTTPConnection('string') to get the adapter.

HTH,
 mac



More information about the Zope3-users mailing list