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