On Tuesday, December 03, 2013 12:33:22 PM Michael Jansen wrote: > > Changes to distutils itself are fairly pointless, since the earliest > > possible date for publication of any such changes is now as part of > > Python 3.5 in 2015. The sheer impracticality of that approach when > > plenty of people are still running Python 2.6 is why we're going > > through the somewhat painful exercise of decoupling the preferred > > build system from the standard library :) > > > > So, at this point, the appropriate place to make such a change is in > > setuptools: https://bitbucket.org/pypa/setuptools > > > > That will allow it to be made in a way that supports Python 2.6+, > > whereas a distutils change won't really help anyone. > > A point well made :) . Will do that.
I made a proof of concept implementation (not ready to be merged) here https://bitbucket.org/jansenm/setuptools/commits/all I did fight a bit with mercurial (we had severe philosophical disagreements) so i hope it works. There is a new test that checks that everything works for the distutils syntax. and then one that tests the improvements. I implemented the flexible idea. scripts = [ 'bin/bin_script', 'sbin/sbin_script', ['sbin', ['sbin/sbin_script']], ['bin', ['bin/bin_script2']], ['srv/www/myprefix', ['bin/mymod.wsgi']] The test is run with $ python setup.py test --test-module setuptools.tests.test_install_scripts; and currently prints out the directory it used for testing and does not remove it so its possible to inspect the result. test_distutils_compatibility (...) ... ###### /tmp/tmpPMKJNk I btw. noticed that numpy overloads build_scripts itself to handle functions instead of strings. Not sure if my patch will break that. Open: Where to put the scripts in step build_scripts? For now it does this for maximum backwards compatibility. /tmp/tmp5ov6qb/src/build/scripts-2.7 /tmp/tmp5ov6qb/src/build/scripts-2.7/bin_script /tmp/tmp5ov6qb/src/build/scripts-2.7/sbin_script /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7 /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/sbin /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/sbin/sbin_script /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/bin /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/bin/bin_script2 /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/srv /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/srv/www /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/srv/www/myprefix /tmp/tmp5ov6qb/src/build/setuptools-scripts-2.7/srv/www/myprefix/mymod.wsgi I had to use the install_data directory to install the scripts into with copy_tree in install_scripts because my preferred solution install_base is not rerooted by distutils (when --root is given to setup.py). There is currently no build-setuptools-scripts parameter for python setup.py build. We would have to add that. Same for build_scripts. it would be build-setuptools-dir there. Documentation is missing too. As i said only a proof of concept for now. > > Mike -- Michael Jansen http://michael-jansen.biz
_______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
