diff options
| author | William Deegan <bill@baddogconsulting.com> | 2017-03-10 21:19:42 (GMT) |
|---|---|---|
| committer | William Deegan <bill@baddogconsulting.com> | 2017-03-10 21:19:42 (GMT) |
| commit | 029cc649663f8e833a380018c73144b6c8c4c2fe (patch) | |
| tree | 710e9174db9e253d079f7f8bd98bbddbd7f9f9d2 /src/engine/SCons/Script/SConscript.py | |
| parent | 44f20c13b64b2064d76aebaf7c367a18482d4b04 (diff) | |
| download | SCons-029cc649663f8e833a380018c73144b6c8c4c2fe.zip SCons-029cc649663f8e833a380018c73144b6c8c4c2fe.tar.gz SCons-029cc649663f8e833a380018c73144b6c8c4c2fe.tar.bz2 | |
Fixing SConsValues to work with py2/3. Turns out because in py2 optparse.Values is a classic class deepcopy works different than in py3 when it's a modern class (no more classic classes). The net of which is deepcopy will look for various methods to copy the objects state, __deepcopy__, something else, then __setstate__. When it checks for __setstate__ it trys on a blank SConsValue instance which doesn't have __defaults__ and so SConsValues ends up throwing a KeyError exception. deepcopy is looking for an AttributeError exception to know that __setstate__ is not available. Once it receives the appropriate exception, it then properly copies the object and scons interactive mode works with py3
Diffstat (limited to 'src/engine/SCons/Script/SConscript.py')
0 files changed, 0 insertions, 0 deletions
