Skip to content
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

Promote _delete member of TemporaryDirectory to delete #128397

Open
abentley opened this issue Jan 1, 2025 · 0 comments
Open

Promote _delete member of TemporaryDirectory to delete #128397

abentley opened this issue Jan 1, 2025 · 0 comments
Labels
stdlib Python modules in the Lib dir type-feature A feature request or enhancement

Comments

@abentley
Copy link

abentley commented Jan 1, 2025

Feature or enhancement

Proposal:

TemporaryDirectory.__delete__ gained a delete parameter to support retaining temporary files for diagnostic purposes.

In a running system, you may wish gather diagnostic files on failure, or when a specific signal is received. Supporting this fully requires allowing the decision of whether to delete files to be made after the TemporaryDirectory has been __enter__ed.

Assigning to _delete can achieve this effect, but _delete is not part of the public interface.

Therefore, I propose changing TemporaryDirectory._delete to TemporaryDirectory.delete.

Example use to retain temporary files on error:

with TemporaryDirectory() as temp_dir:
    try:
        thing_that_may_raise()
    except Exception:
        temp_dir.delete = False
        raise

Alternatives considered:

  • Provide a function to control this behaviour
    • We can always turn delete into a property if necessary
  • Users can provide subclasses of TemporaryDirectory to achieve this
    • Temporary Directory doesn't have enough of a public API for this to be viable. Using the private API would be morally equivalent to modifying _delete, and modifying _delete would be easier.
  • Users can provide a wrapper to prevent __exit__ from being called
    • __del__ might be implemented in the future, as it is for TemporaryFile.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

@abentley abentley added the type-feature A feature request or enhancement label Jan 1, 2025
@picnixz picnixz added the stdlib Python modules in the Lib dir label Jan 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stdlib Python modules in the Lib dir type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

2 participants