471,119 Members | 1,402 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,119 software developers and data experts.

distutils setup.cfg question.

Ok, I give up. I searched the CVS code, and can't find the place that
turns an include_dirs option in setup.cfg into a list of
directories. The reason I was looking for it is that I can't figure
out how to make include_dirs include multiple directories from
setup.cfg. Everything I try winds up putting
-I<contents_of_include_dirs>. I couldn't even find the place where the
string value that is returned by ConfigParser is enclosed in a list.

Help?

Thankx,
<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Jul 18 '05 #1
2 2130
Mike Meyer wrote:
Ok, I give up. I searched the CVS code, and can't find the place that
turns an include_dirs option in setup.cfg into a list of
directories. The reason I was looking for it is that I can't figure
out how to make include_dirs include multiple directories from
setup.cfg. Everything I try winds up putting
-I<contents_of_include_dirs>. I couldn't even find the place where the
string value that is returned by ConfigParser is enclosed in a list.


I did it this way:

% cd work/py2.4/Lib/distutils/
% grep setup.cfg *
dist.py: on Windows/Mac, and setup.cfg in the current directory.
dist.py: # All platforms support local setup.cfg
dist.py: local_file = "setup.cfg"

So it is clearly dist.py. There, setup.cfg is returned from
find_config_files. This is called a single time only in dist.py,
namely from parse_config_files. As you can see, this is then set
as the global include_dirs option. Apparently, include_dirs really
*is* a single string, then.

Now, where is it split into multiple substrings?
% grep include_dirs *.py */*.py

This gives a long list. However, in two places, include_dirs is split:
command/config.py: self.include_dirs =
string.split(self.include_dirs, os.pathsep)
command/build_ext.py: self.include_dirs =
string.split(self.include_dirs, os.pathsep)

Both places have similar code:

if self.include_dirs is None:
self.include_dirs = self.distribution.include_dirs or []
elif type(self.include_dirs) is StringType:
self.include_dirs = string.split(self.include_dirs, os.pathsep)

HTH,
Martin
Jul 18 '05 #2
"Martin v. Lwis" <ma****@v.loewis.de> writes:
Mike Meyer wrote:
Ok, I give up. I searched the CVS code, and can't find the place that
turns an include_dirs option in setup.cfg into a list of
directories. The reason I was looking for it is that I can't figure
out how to make include_dirs include multiple directories from
setup.cfg. Everything I try winds up putting
-I<contents_of_include_dirs>. I couldn't even find the place where the
string value that is returned by ConfigParser is enclosed in a list.
% grep include_dirs *.py */*.py

This gives a long list. However, in two places, include_dirs is split:
command/config.py: self.include_dirs =
string.split(self.include_dirs, os.pathsep)
command/build_ext.py: self.include_dirs =
string.split(self.include_dirs, os.pathsep)


That's the code I was missing. And I missed it because I wasn't
looking in subdirectories (duh).
Both places have similar code:

if self.include_dirs is None:
self.include_dirs = self.distribution.include_dirs or []
elif type(self.include_dirs) is StringType:
self.include_dirs = string.split(self.include_dirs, os.pathsep)


That helps immensely. But it seems to make setup.cfg non-portable, in
that you have to change the path separator in it to the one for the
platform you are on. I guess that since editing setup.cfg is expected,
that's not to bad.

Next question: I'd like to submit a bug report and patch for the
documentation of distutils. Where do I get copies of the source to
work on?

Thanks,
<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Mathieu Malaterre | last post: by
15 posts views Thread by Colin J. Williams | last post: by
1 post views Thread by Terry Hancock | last post: by
5 posts views Thread by Fuzzyman | last post: by
reply views Thread by Maarten Sneep | last post: by
reply views Thread by Glenn Pierce | last post: by
6 posts views Thread by ajikoe | last post: by
7 posts views Thread by Eric S. Johansson | last post: by
9 posts views Thread by jtravs | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.