[issue1326113] Letting "build_ext --libraries" take more than one lib

Éric Araujo report at bugs.python.org
Tue Nov 16 04:08:32 CET 2010


Éric Araujo <merwok at netwok.org> added the comment:

I agree this is a bug: it’s a broken feature, not a new one, even if it can be argued that fixing a long-standing behavior enables new usages, and is thus comparable to a new feature.

I found no mention of --libraries in the docs, so I looked at the file history, and it’s clear that the intent of the code does not match its behavior.  The fix is simple:

-        if isinstance(self.libraries, str):
-            self.libraries = [self.libraries]
+        self.ensure_string_list('libraries')

I guess Greg forgot to change that line of code when he invented the ensure_* methods.  No test is broken by this change.  Do we need a regression test for this?  It’s not strictly required IMO.

FTR, in distutils2, I want to make the types and formats clear for everything.  For example, build_ext.swig_opts is defined as “a list” in the current docs, this time with an example that shows it’s space-separated (“--swig-opts="-modern -I../include"”).  The code does not use ensure_string_list, and hence does not support comma-separated.  IMO, any value described as list should accept space-separated and comma-separated.  This is probably out of scope for distutils, but something I definitely want to improve in distutils2.  Supporting multiple options (-lm -lfoo) is IMO feasible too.

----------
assignee: tarek -> eric.araujo
components: +Distutils2
stage:  -> unit test needed
type: feature request -> behavior
versions: +3rd party, Python 2.7, Python 3.1

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue1326113>
_______________________________________


More information about the Python-bugs-list mailing list