Go to file
Magnus Møller Jørgensen 20bbab0b4c
Update plat_other.py
The trash info file needs to exist before the file is moved into the trash folder. 
This is to conform to the events based detection of trashed files in gnome and other file managers.
2020-07-23 03:57:15 +02:00
send2trash Update plat_other.py 2020-07-23 03:57:15 +02:00
tests Fix new issues with unit tests 2020-06-11 23:20:16 -05:00
.gitignore Fix some flake8 errors and cleanup 2020-06-18 21:47:06 -05:00
.travis.yml Update windows tests to test both versions 2020-06-11 22:42:00 -05:00
CHANGES.rst Update files to release a new package 2020-06-18 21:49:42 -05:00
LICENSE Update copyright 2017-08-03 20:52:19 -04:00
MANIFEST.in Include LICENSE in package (#19) 2018-01-06 08:19:31 -05:00
README.rst Update files to release a new package 2020-06-18 21:49:42 -05:00
setup.py Update files to release a new package 2020-06-18 21:49:42 -05:00
tox.ini Fix a typo in tox.ini for windows 2020-06-11 23:23:54 -05:00

README.rst

==================================================
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::

    pip install 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/