[PEAK] Specifying an .ini file
Phillip J. Eby
pje at telecommunity.com
Fri Jun 18 01:09:41 EDT 2004
At 04:57 PM 6/17/04 -0700, darryl wrote:
>Is this terribly bad form?
>
>root =
>config.makeRoot(iniFiles=[('peak','peak.ini'),('mypackage','myconfig.ini')]))
Nope; that's (partly) what 'iniFiles' is there for, if you want to create a
custom startup script.
But I find it hard to think of a circumstance where I'd do that,
personally. I suppose on Windows it might be convenient to be able to
double-click on a .py file and launch it, in place of trying to launch an
.ini file.
(However, there's nothing stopping you in that case from using a '.peak'
extension and configuring Windows to run 'python.exe peak runIni' on them!)
Anyway, there are several other methods available to do what you're asking
about, I mention them here so you have a choice and so that other people
aren't led to believe that your suggestion is the only way or even the
preferable way for their circumstance. :)
You can:
* Specify one or more .ini files in the PEAK_CONFIG environment variable,
using the platform's path separator (e.g. ':' on Posix-like OSes, ';' on
DOS/Windows) to separate them
* Create an .ini file that loads other .ini files, using:
[Load Settings From]
file = "some.filename"
* Create an .ini file that runs your application, rather than an
application that loads an .ini file. You do this by specifying something like:
[Import on Demand]
my_appmodule = "some.package.containing.my_appmodule"
[peak.running]
app = my_appmodule.MyAppClass
And then you can run it using 'peak runIni myApp.ini'
* Make your .ini file executable, by putting '#!peak runIni' or something
similar at the top of it
* Name .ini files something other than .ini, if you like; it's the 'peak
runIni' that causes them to be interpreted as that format.
* You can manually load an .ini file into *any* configurable component,
using 'config.loadConfigFile(component,filename)'.
Hmm, is that everything? Anyway, there are a great many ways to do it,
although which one is the One Obvious Way To Do It may vary according to
your circumstances. :)
For me, the One Obvious Way is executable .ini files in Posix runtime
environments. For Windows, just make program shortcut icons that run the
equivalent of 'peak runIni' on your root configuration file. This is the
method requiring the least boilerplate to activate an application, because
you need only add the 'peak.running.app' definition to the .ini file, and
don't have to write any extra setup code in a script.
More information about the PEAK
mailing list