Sorry, something went wrong.
|
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA). Recognized GitHub usernameWe couldn't find a bugs.python.org (b.p.o) account corresponding to the following GitHub usernames: This might be simply due to a missing "GitHub Name" entry in one's b.p.o account settings. This is necessary for legal reasons before we can look at this contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. You can check yourself to see if the CLA has been received. Thanks again for the contribution, we look forward to reviewing it! |
Sorry, something went wrong.
|
I just can't figure out why bedevere/issue-number check is failing. Where do I have to mention it? |
Sorry, something went wrong.
|
Hmm, I'm not sure I like the API in this solution. If I want to write portable code (Linux and Windows), I would then have to use delete=True and delete_on_close=False in every since call, right? This is going to look at bit convoluted. I'd much rather this was a distinct type of NamedTemporaryFile. |
Sorry, something went wrong.
|
Hmm, I'm not sure I like the API in this solution. If I want to write portable code (Linux and Windows), I would then have to use delete=True and delete_on_close=False in every since call, right? This is going to look at bit convoluted. I'd much rather this was a distinct type of NamedTemporaryFile. @blais , yes, this PR assumes, you would need to use delete_on_close=False (delete=True is already a default), if you want to write a portable code (Linux and Windows), but only if you need to refer to a created temporary file by its name, not by a file object. And this is a new functionality all together, as current functionality of the NamedTemporaryFile implicitly assumes, that you need to refer to a file by its file object (at least on Windows). Though I agree with you, that in test modules, one needs to often refer to temporary file by its name (hence the PR). There were a lot of suggestions on how to fix this in the original issue14243 discussion with no clear conclusion on what is the best approach. I have chosen this one as it is backwards compatible and does not change philosophy of existing code. I will wait for code reviews to provide their feedback. There must be someone, who takes a final decision on this. |
Sorry, something went wrong.
|
It would be wiser to create an alternative interface for this that is safe to use between platforms by default, even if it is more constrained, even if that means providing a completely different context manager. |
Sorry, something went wrong.
|
OK. So I read the comments in the bug and the workaround here. |
Sorry, something went wrong.
|
@zooba Do you have time to take a look at this PR? |
Sorry, something went wrong.
|
@zooba , just checking whether you managed to look at this |
Sorry, something went wrong.
|
Can you re-target for 3.12 (Doc/whatsnew/3.10.rst) please? |
Sorry, something went wrong.
|
Also, in NEWS I don't think you need double back ticks (``). @MaxwellDupre this is incorrect. Double backticks are usually preferred over single backticks in .rst files, unless a specific ReST role is being used. Please read https://devguide.python.org/documenting/ for a full guide on ReST syntax. |
Sorry, something went wrong.
There was a problem hiding this comment.
Code change looks good, but we need to get the docs in order.
Sorry, something went wrong.
There was a problem hiding this comment.
This is way more details than we want here - this will end up in a list with 1000 other changes.
Most of this should move to specific documentation, and then this entry can link to it with :class:`NamedTemporaryFile`
Sorry, something went wrong.
There was a problem hiding this comment.
This is fixed. The spesific documentation is updated and linked to with :class:tempfile.NamedTemporaryFile``
Sorry, something went wrong.
There was a problem hiding this comment.
Needs to move to 3.12.rst, and can be about half the length of what's currently in the NEWS file
Sorry, something went wrong.
There was a problem hiding this comment.
Implemented. Whats new is moved to 3.12.rst and only 2 lines now
Sorry, something went wrong.
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request. |
Sorry, something went wrong.
|
Looks like you made a git mistake. Hopefully someone else can help you (maybe just close this PR and create a new one from a fresh clone of the main branch). |
Sorry, something went wrong.
|
Looks like you made a git mistake. Hopefully someone else can help you (maybe just close this PR and create a new one from a fresh clone of the main branch). Yes, this was something with git. I merged master branch into my PR, but it marked lots of files as being changed. I reverted this meanwhile. But I need some guidelines how to move forward. |
Sorry, something went wrong.
|
Below is the the fixed up Improved Modules section, with each item in proper alphabetical order. I could not commit it because git requires all conflicts fixed in one merge, and I have no idea how to merge your tempfile change with what someone else did since your patch. Use git log or git blame to find the issue that made the alternative change and what it was meant to do. replacement text Improved Modules ================dis
os
pathlib
sqlite3
tempfileThe :class:tempfile.NamedTemporaryFile class has a new optional parameter threading
unicodedata
Note: a few months ago, you did a force push instead of a simple update merge and push. Force pushes sometimes result in the behavior experienced today and are seldom needed. Unclear exactly what you did today. I recommend you fix conflict in your local clone, then merge upstream/main, then push to fork. |
Sorry, something went wrong.
|
@terryjreedy , thanks for this information, but I am afraid I don't think I understand what to do with it and how exactly to move forward. What I want is to refresh my pull request with whatever is latest in the current main branch. so did merge with the current main, which obviousely introduced a lot of new files, but when I pushed it to github it looks like it made impression, that I tried to modify them, whilst I only transfered them fom the main. Also, the work on PR is not finished yet, as there were some more recent reviews from @eryksun |
Sorry, something went wrong.
|
There are still conflicts. I'd recommend closing this PR and starting over with the changes you want to make. |
Sorry, something went wrong.
|
Note: a few months ago, you did a force push instead of a simple update merge and push. Force pushes sometimes result in the behavior experienced today and are seldom needed. Unclear exactly what you did today. I recommend you fix conflict in your local clone, then merge upstream/main, then push to fork. Just for the record: back then I did rebasing from the master (rather than merge). And then I had to do force push, if I remember correctly |
Sorry, something went wrong.
|
Based on the suggestions of @gvanrossum and @JelleZijlstra I will close this PR and create a new one |
Sorry, something went wrong.
|
I new PR 97015 has been created to replace this one. |
Sorry, something went wrong.
This fixes this issue: https://bugs.python.org/issue14243
tempfile.NamedTemporaryFile is too hard to use portably when you need to open the file by name after writing it. To do that, you need to close the file first (on Windows), which means you have to pass delete=False, which in turn means that you get no help in cleaning up the actual file resource,
Hence at the moment there is no out of the box solution to use tempfile.NamedTemporaryFile on Windows in such scenario (which is often used in unit testing):
In this Pull Request the issue is solved by adding an additional optional argument to NamedTemporaryFile() 'delete_on_close' (default is True). It works in combination with already existing argument 'delete', and determines whether created temporary file gets deleted on close (which until this change was the only functionality available and it remains default now).
If 'delete' = True and 'delete_on_close' = False then temporary file gets deleted on context manager exit only (which is a new functionality).
If 'delete' is not true, then value of 'delete_on_close' is ignored.
So, the change shall be fully backwards compatible.
In the bug discussion such option was discussed by r.david.murray but mainly by eryksun
I have also added several unit tests to test new functionality in different combinations
https://bugs.python.org/issue14243