New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
subprocess.Popen.wait() undocumented "endtime" parameter #64771
Comments
http://hg.python.org/cpython/file/29d9638bf449/Lib/subprocess.py#l1144 |
Sorry: revision a161081e8f7c. |
Indeed, there's no issue number or NEWS entry. It's not clear from the limited context why this parameter was added. It doesn't appear to be consistent with the rest of the stdlib: the application can compute timeout from its desired endtime, which is how all of the other stdlib 'wait' APIs work. |
Also, the implementation as it stands is in any case flawed, since specifying both timeout and endtime is allowed by the code, and results in endtime overriding timeout silently, and in the posix version the resulting timeout error message will have the ignored timeout in it. Unfortunately this has been in here for a while (March 2011) so people may be using it. Based on the docs in the original commit (c4a0fa6e687c), I suspect endtime on wait was supposed to be an internal parameter....except that it is never used internally. The endtime is converted back to a timeout in order to call wait. Ideally we'd just drop it...but it may be in use in wild. |
I'd be for just getting rid of it for 3.4 now that we still can. |
This isn't a release blocker. And it's not really viable to remove it. Since it's been in several releases, I suspect our only option is to throw a deprecation warning. And, since deprecations aren't turned on by default, maybe the best thing would be to also document it (!) as being deprecated (!!). Even though rc1 is already tagged and in the process of being released, I will accept a patch with the above suggested change for Python 3.4. If you want to do something else talk to me first. |
AFAICT only 3.3. |
I don't think we should document it as deprecated except in What's New. But a code deprecation in 3.4 would be a good idea. |
My suggestion for documenting it was to document the fact that it's unsupported, unrecommended, deprecated, has poor semantics, etc. If a user discovers it, and finds it's not documented, they'll probably think they can get away with using it. If we explicitly document it as "don't use" I think that's better. |
New changeset 73793590d97b by Gregory P. Smith in branch 'default': |
documented with a deprecation. that's the best we can do for now. it can be considered for removal in the 3.5 or 3.6 timeframe. i doubt many people used it. |
Well, a deprecation warning in the code would be nice in case anybody did use it. Personally I don't see any problem with putting that in 3.4.1 if we don't get to it for 3.4.0. |
I'm reopening this as a 3.5 issue to do the actual removal. |
I suggest that that documentation counts for starting the deprecation cycle, however I would still also accept a patch adding a deprecation warning if the parameter is used. |
Do we still want to remove the endtime parameter? |
Thanks :) |
I think other people wanted to add an automated deprecation warning in the code first, before removing it. |
Thanks, Martin :) Thanks :) |
Thanks Mariatta. Some people like to use the warn(stacklevel=2) parameter, then the warning message is potentially more useful. Also, I think it would be good to write a brief test case for the warning. There are probably lots of examples in the test suite, e.g. search for DeprecationWarning in revision 0dd263949e41. Have you checked if there is existing code using the endtime=... parameter? It you run the test suite with -Werror enabled, that would be a good indicator. Maybe it is okay to remove the parameter completely in 3.7. |
Thanks Martin :) Alright, in v2 patch, I added stacklevel=2 parameter and test case for it. I'm also thinking that it can be removed in 3.7, considering it's been documented as deprecated since 3.4. But maybe I'm not a good judge for this? |
lol forgot to upload the patch. Here it is :) |
New changeset 0e8aa537c565 by Gregory P. Smith in branch '3.6': New changeset f02422c6110a by Gregory P. Smith in branch 'default': |
thanks for the patch. I reworked it slightly including the test. warning in 3.6, gone in 3.7. i still need to update the 3.7 docs to remove it. |
New changeset 54b2f377653d by Gregory P. Smith in branch 'default': |
Works for me. Thanks :) Maybe it's ok to close this ticket now? |
Misc/NEWS
so that it is managed by towncrier #552Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: