[Distutils] recursive package_data (setuptools?)
Phillip J. Eby
pje at telecommunity.com
Fri Sep 16 15:10:40 CEST 2005
At 05:55 PM 9/15/2005 -0500, Ian Bicking wrote:
>I have a nested directory with templates, like
>
>templates/foo.pt
>templates/admin/bar.pt
>
>I thought I could include them in a package with:
>
>setup(...
> package_data={
> 'mypackage': ['templates/*']})
>
>But it doesn't work -- while the package is fine, when installed
>setuptools (maybe just inheriting distutils here) tries to copy
>templates/admin over, and it can't copy a directory. And, I assume, it
>won't even try templates/admin/bar.pt.
>
>So... is there a way to do this, without enumerating (a) every
>subdirectory I'm interested in, and (b) every extension I'm intersted in?
Write a function to do it for you? :)
Seriously, it might not be a bad idea to add a 'find_package_data()'
function along the lines of the sdist command's "include everything that's
under source control" algorithm. Then you could just do:
package_data = find_package_data()
and be done with it. We could perhaps have it use the actual sdist
command's file finding code, so that MANIFEST.in is respected if you're not
using source control. It would need to filter out .py files and files that
are not inside packages, and create a package_data mapping based on the
nearest containing package.
More information about the Distutils-SIG
mailing list