All Projects → arsenetar → Send2trash

arsenetar / Send2trash

Licence: bsd-3-clause
Python library to natively send files to Trash (or Recycle bin) on all platforms.

Programming Languages

python
139335 projects - #7 most used programming language

================================================== Send2Trash -- Send files to trash on all platforms

Send2Trash is a small package that sends files to the Trash (or Recycle Bin) natively and on all platforms. On OS X, it uses native FSMoveObjectToTrashSync Cocoa calls. On Windows, it uses native IFileOperation call if on Vista or newer and pywin32 is installed or falls back to SHFileOperation calls. On other platforms, if PyGObject_ and GIO_ are available, it will use this. Otherwise, it will fallback to its own implementation of the trash specifications from freedesktop.org_.

ctypes is used to access native libraries, so no compilation is necessary.

Send2Trash supports Python 2.7 and up (Python 3 is supported).

Status: Additional Help Welcome

Additional help is welcome for supporting this package. Specifically help with the OSX and Linux issues and fixes would be most appreciated.

Installation

You can download it with pip::

python -m pip install -U send2trash

or you can download the source from http://github.com/arsenetar/send2trash and install it with::

>>> python setup.py install

Usage

from send2trash import send2trash send2trash('some_file') send2trash(['some_file1', 'some_file2'])

On Freedesktop platforms (Linux, BSD, etc.), you may not be able to efficiently trash some files. In these cases, an exception send2trash.TrashPermissionError is raised, so that the application can handle this case. This inherits from PermissionError (OSError on Python 2). Specifically, this affects files on a different device to the user's home directory, where the root of the device does not have a .Trash directory, and we don't have permission to create a .Trash-$UID directory.

For any other problem, OSError is raised.

.. _PyGObject: https://wiki.gnome.org/PyGObject .. _GIO: https://developer.gnome.org/gio/ .. _trash specifications from freedesktop.org: http://freedesktop.org/wiki/Specifications/trash-spec/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].