bpo-43950: Add option to opt-out of PEP-657 #27023
Conversation
db3cbe3
to
6b3c6d7
1a555a1
to
0268bfe
Btw, do we have a test that checks that the flag works? |
Not yet :) |
@pablogsal After making these changes, I am a little worried about the |
Hmmm, is possible, but I would prefer to explicitly test that the flag + env work in some specific tests using a subprocess and that would only left the |
Just added some, please take a look.
For example running The last remaining component for this PR is to make |
Maybe we should do the logic in the code object constructor and that way we don't need to deal with marshal.c and the compiler. |
Great idea, did this in the common code path in Added tests to make sure de-marshaling with the flag results in
Going back to this, do you know if there is an example of such a test that already exists in the suite? Where should it go? A new |
We need more rebasing :( |
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com> Co-authored-by: Batuhan Taskaya <batuhanosmantaskaya@gmail.com> Co-authored-by: Ammar Askar <ammar@ammaraskar.com>
Rebased! |
If you want to schedule another build, you need to add the " |
buildbot/AMD64 Ubuntu Shared PR has a weird failure...
I wonder if we need a |
Nope, no |
@pablogsal all lights are green, anything else for this one? |
4823d9a
into
python:main
Nop. Great job! |
|
|
@ammaraskar @isidentical Hummm, have we bumped the magic number? This buildbot failure seems quite related. I'm in some meetings right now and cannot check but may need to revert:( |
AFAIK we did. Checking the failures now... |
The errors on both are:
when running |
The confusing thing is, it only happens with the new tests, existing |
To reproduce locally;
|
We don't preserve the original environment, so shared builds fail. See here: cpython/Lib/test/support/script_helper.py Lines 117 to 121 in bb3e0c2 |
I can confirm that setting |
Aah, let's remove |
Also see this example usage of how it is used (it creates a new env based on the existing one) if you want to isolate these; def get_hash(self, repr_, seed=None):
env = os.environ.copy()
env['__cleanenv'] = True # signal to assert_python not to do a copy
# of os.environ on its own
if seed is not None:
env['PYTHONHASHSEED'] = str(seed)
else:
env.pop('PYTHONHASHSEED', None)
out = assert_python_ok(
'-c', self.get_hash_command(repr_),
**env)
stdout = out[1].strip()
return int(stdout) |
To be merged after #26958
This adds the opt-out option and disables the compiler's column information and traceback printing.
https://bugs.python.org/issue43950