[PEAK] ZConfig and peak naming

Roché Compaan roche at upfrontsystems.co.za
Thu Jul 29 17:24:42 EDT 2004


* Phillip J. Eby <pje at telecommunity.com> [2004-07-29 23:20]:
> At 10:38 PM 7/29/04 +0200, Roché Compaan wrote:
> >I need a key in ZConfig file that needs to set a file object as
> >attribute on a subclass of binding.Component *and* values should be
> >specifiable as peak urls.
> >
> >    <process>
> >        file pkgfile:jack/somefile.txt
> >        ...
> >    </process>
> >
> >The above configuration, must set 'file' in:
> >
> >    class Process(binding.Component):
> >        file = binding.Make(lambda:None)
> >
> >if 'file' is defined as key in my schema file:
> >
> >    <sectiontype name="process" datatype=".Process.fromZConfig">
> >        <key name="file" datatype="some.peak.component.fromZConfig"
> >            attribute="file"/>
> >        ...
> >    </sectiontype>
> >
> >Is there a peak component that can do this for me, or do I have to write
> >one.
> 
> Do something like this:
> 
>     class Process(binding.Component):
>         fileURL = binding.Require("URL needed", 
>         adaptTo=naming.IStreamFactory)
>         file = binding.Obtain(naming.Indirect('fileURL'))
> 
> And make the 'attribute' for 'file' be 'fileURL' instead.
> 
> 'naming.Indirect("some_name")' translates to, "use the object you find at 
> 'some_name' as a name to look up".

Nice! Thanks a lot.

-- 
Roché Compaan
Upfront Systems                 http://www.upfrontsystems.co.za



More information about the PEAK mailing list