[PEAK] ZConfigInterpreter with data from STDIN

Alexey Smishlayev alexey at xtech2.lv
Wed Apr 15 16:42:34 EDT 2015


I looks like it worked. So simple! Great thanks for the advice, PJ!

Alexey


On 15/04/15 20:19, PJ Eby wrote:
> Have you tried just using  "fd.file:stdin" as the cfgName?
>
> On Wed, Apr 15, 2015 at 8:49 AM, Alexey Smishlayev <alexey at xtech2.lv> wrote:
>> Hello!
>> I am trying to refactor existing peak application. I need to be able to load
>> ZConfig file from data incoming by STDIN. Now, the loader included in peak
>> is using files, so I implemented a subclass which should simulate a file
>> resource (in file zconfig.py). I also searched peak.ini for any lines
>> regarding zconfig. I copied all settings and changed them to point to my
>> custom classes (in file custom.ini; "ank.BBS" is my project package).
>>
>> In the python script, ZConfigInperpreter was used to get the application
>> root component in the following way:
>>>     _argv=["ZConfig", scheme, cfgName]
>>>     _argv.extend(sys.argv[1:])
>>>     return ZConfigInterpreter(
>>>         config.makeRoot(),
>>>         argv=_argv,
>>>         componentName="MYAPP"
>>>     )
>> Now I want to pass no cfgName and get interpreter to process the STDIN. But
>> the PEAK seem to not find settings which I've put in my .ini file and I'm
>> stuck.
>> I've narrowed it down - the
>> ZConfigInterpreter.lookupComponent('zconfig.schema:'+str(url)) returns
>> peak.config.load_zconfig.ConfigLoader, instead of my custom class
>> (STDINConfigLoader from my file). I tried to trace down the stack with pdb,
>> and it seems that some lookup for "zconfig.schema:/path/to/schema/file.xml"
>> returns peak.config.load_zconfig.ZConfigSchemaContext.
>> I've subclassed that one too, but have no success.
>>
>> Can anyone, please, help me, how to replace the standard ZConfig classes?
>>
>> Best regards,
>> Alexey
>>
>> _______________________________________________
>> PEAK mailing list
>> PEAK at eby-sarna.com
>> http://www.eby-sarna.com/mailman/listinfo/peak



More information about the PEAK mailing list