Hi

On Sat, Feb 26, 2011 at 12:52 PM, cool-RR <cool...@cool-rr.com> wrote:
> I noticed that the `TemporaryDirectory` context manager creates the folder
> on `__init__` rather than on `__enter__`, resulting in complexity, bugs, and
> hackarounds in `__del__`. I assume there's a good reason for this decision.
> What is it?

The reason is that you can use `TemporaryDirectory` without a context
manager too. Note that creating things in  `__init__` rather than in
`__enter__` isn't unusual -- it is done in the same way for regular
files. I'm not sure what you mean with "hackarounds in `__del__`", but
I assume you mean the code in `cleanup()`. That code tries to do the
right thing on interpreter shutdown when parts of the interpreter are
already gone and it emits a `ResourceWarning` if called implicitly
(IOW: when you didn't use `TemporaryDirectory` as a context manager
and didn't call its `cleanup()` method). So a bit of complexity is
there, but it really isn't about where the directory is created.

Regards,
Andreas
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to