[petsc-dev] downloadname usage inconsistency in config.package.Package?
Dmitry Karpeev
karpeev at mcs.anl.gov
Tue Oct 19 10:43:20 CDT 2010
On Mon, Oct 18, 2010 at 8:26 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> On Oct 18, 2010, at 7:46 PM, Dmitry Karpeev wrote:
>
>> In config/BuildSystem/config/package.py we have this:
>>
>> class Package:
>> <snip>
>> def setupHelp(self,help):
>> '''Prints help messages for the package'''
>> <snip>
>> if self.download and not self.download[0] == 'redefine':
>> help.addArgument(self.PACKAGE,
>> '-download-'+self.package+'=<no,yes,filename>',
>> nargs.ArgDownload(None, 0, 'Download and install '+self.name))
>> return
>>
>> Then:
>>
>> def checkDownload(self, requireDownload = 1):
>> '''Check if we should download the package, returning the install
>> directory or the empty string indicating installation'''
>> if not self.download:
>> return ''
>> downloadPackage = 0
>> downloadPackageVal =
>> self.framework.argDB['download-'+self.downloadname.lower()]
>> <snip>
>>
>> An apparent inconsistency if not self.downloadname.tolower() == self.package.
>> Is this a bug?
>
> I think it just means the help message would be wrong if downloadname was not package.
Yes, but let's say self.downloadname.tolower() is not self.package, then
1) in setupHelp 'download-'+<package> will be inserted into argDB,
2) the user might then say '--download-<package>=yes' on the command line,
3) checkDownload will try to extract
'download-'+self.downloadname.tolower() from argDB,
will not find it and determine that no download is necessary.
If we assume that we always have self.downloadname == self.package,
then why not eliminate self.download?
All versions of the package name, self.package, self.PACKAGE and
self.downloadname are set in
config.config.Package.__init__ and are available at the time of the
setupHelp() call.
At the very least, since self.downloadname appears always to be used
in lower case, why
not ensure that self.downloadname.tolower() == self.downloadname?
I'm in favor of eliminating self.downloadname in favor of
self.package, since otherwise the code is
confusing (at least it tends to confuse me).
Dmitry.
>
> The problem I think is that downloadname might not be defined at the time of setupHelp() so cannot be used in printing the help message.
>
>
>> Also, why ".tolower()" all over the place?
>
> So that you only need to type smalls in your -download-xxxx
>
>
>>
>> Dmitry.
>
>
More information about the petsc-dev
mailing list