[Distutils] Alternate static metadata PEP submission...

David Lyon david.lyon at preisshare.net
Thu Oct 15 07:38:46 CEST 2009


On Thu, 15 Oct 2009 13:39:32 +0900, David Cournapeau
<david at ar.media.kyoto-u.ac.jp> wrote:

> I understand this, but when you a lot of conditioning, "flattening" the
> conditions is not really readable. If you have say 10 variables instead
> of 2 to condition on, the sections would be several lines.

I'm only allowing up to four. These are:

 - specifier ['dependencies','preinstall','postinstall','scripts',
              'application', 'package', 'documentation', 'uninstall', 
              'datafiles']

 - operating system ['windows','mac','linux' etc...] plus some
   twiddle-bits like 32, 64, gnome, kde and os-version.

 - python version

 - operation ['test','build' ..]. 

So never above 4. Typically two or three.

> More significantly though, how can you define new conditions variables
> with .ini files ? Would you have a special section for this ?

I don't have a way of doing that right now - and am not aware of
practical examples that might require it.

Anything that can't be handled with the above will have to go into
a pre-install or post-install script and be coded with traditional
python coding.

If you can find any common use cases that aren't handled, please
advise.

In the real world, there is a point where things might need to
go to code. This capability is provided for.

    [preinstall]
    script = checksystem.py

    [preinstall linux-kde]
    script = checkmylinux.sh

and:

    [postinstall windows-64-xp python-2.4]
    script = regedit.exe /s fixpy24win.txt

    [postinstall windows-64-xp python-2.5]
    script = regedit.exe /s fixpy25win.txt

What that would do would be to make a system
registry correction after loading on 64 bit
windows only for python versions 2.4 or 2.5.

Similarly:

    [postinstall linux-debian-64 python-2.5]
    script = fixpy25deb.py

    [postinstall linux-suse-kde python-2.5]
    script = fixpy25susekde.py

    [postinstall mac]
    script = popupkoolmachinechoice.py

I'm really not trying to handle every possible
case, just the most common ones. That is, trying
to provide a hook for specific unique situations
that exist on different platforms and operating
systems.

David




> 
> David


More information about the Distutils-SIG mailing list