
On Thu, Jan 01, 2015 at 12:37:55PM +0200, Ram Rachum wrote:
So maybe we can add a function to the `os` module that sends a file to the recycle bin, and a constant that will say whether the current OS supports this? Then we could have code like this:
The os module is for low-level operating-system functions. "Send to trash" is neither low-level nor part of the OS per se, it is part of the desktop environment. I'm not convinced that this needs to be in the standard library, but if it is, I think that the os module is completely the wrong place for it. I think, in order of preference: 1) shutil 2) pathlib is the right place. (The actual implementation for the move_to_trash function could come from another, platform-specific, module.)
if os.RECYCLE_BIN_SUPPORT: os.recycle(my_file) else: os.remove(my_file)
"Recycle" is not a good name for the function, because it doesn't recycle the file. It does the opposite of recycle: it prevents the file from being deleted and over-written. I think an explicit name like move_to_trash is better than something misleading like "recycle". No need for a special flag to check if the function exists, just check for the function: try: f = shutil.send_to_trash except AttributeError: f = os.remove f(my_file) But I'm still not sure that this needs to be in the standard library. For such a specialist need, what's wrong with using a third party solution? -- Steven