[Scons-users] env.Dictionary bug? doc problem?

Mats Wichmann mats at wichmann.us
Mon Jul 23 09:51:10 EDT 2018

On 07/22/2018 12:26 PM, Bill Deegan wrote:
> Can you check if any internal usage depends on this slicing behavior?
> -Bill

Plenty of impacts.

A bunch of tests are written to the idea that Dictionary(key) returns
key's value, not a subset of the dictionary.  I'm not yet clear if
anyone expects Dictionary(key1, key2) to return a list of values.

Test errors I'm seeing often look like:

TypeError: cannot concatenate 'str' and 'dict' objects
AttributeError: 'dict' object has no attribute 'startswith':

There are also things like these in src/engine/SCons/EnvironmentTests.py:

        env3 = env1.Clone(XXX = 'x3', ZZZ = 'z3')
        assert env3.Dictionary('XXX') == 'x3'

if Dictionary('XXX') returns a dict that fails.

It also affects Dump(), but in a good way (excepting, of course, test
expectations) - I actually got here wondering why Dump doesn't take a
list of variables like so many other environment functions do.  Dump()
is like drinking from the firehose :), Dump(list-of-vars-I-care-about)
is not supported, and a series of Dump(key) calls is kind of
unsatisfying because you get back value strings instead of a pprinted
key:value pairs like in the full Dump(), so you have to do more work.

More information about the Scons-users mailing list