Skip to main content

Send file to trash natively under Mac OS X, Windows and Linux.

Project description

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.

Changes

Version 1.7.1 – 2021/06/21

  • Release stable version with changes from last 3 releases

  • Fix handling of UNC names (#57)

Version 1.7.0a1 – 2021/05/14

  • Changed conditional for when to try to use pyobjc version (#51)

Version 1.7.0a0 – 2021/04/20

  • Add console_script entry point (#50)

  • Increased python CI versions (#52, #54)

  • Fix minor issue in setup.py (#53)

  • Fix issue with windows tests importing modules on non-windows (#55)

  • Unit test cleanups, rewrites, and flake8 cleanups

  • Windows: Fix legacy windows platform for multi-byte unicode and add tests

  • macOS: Add alternative pyobjc version to potentially improve compatibility (#51)

Version 1.6.0b1 – 2020/06/18

  • Add main method which allows calling via python -m send2trash somefile

  • Windows: Add support for using IFileOperation when pywin32 is present on Vista and newer

  • Add support for passing multiple files at once in a list

  • Windows: Batch multi-file calls to improve performance (#42)

  • Windows: Fix issue with SHFileOperation failing silently when path is not found (#33)

Version 1.5.0 – 2018/02/16

  • More specific error when failing to create XDG fallback trash directory (#20)

  • Windows: Workaround for long paths (#23)

Version 1.4.2 – 2017/11/17

  • Fix incompatibility with Python 3.6 on Windows. (#18)

Version 1.4.1 – 2017/08/07

  • Fix crash on Windows introduced in v1.4.0. Oops… (#14)

Version 1.4.0 – 2017/08/07

  • Use bytes instead of str for internal path handling in plat_other. (#13)

Version 1.3.1 – 2017/07/31

  • Throw WindowsError instead of OSError in plat_win. (#7)

  • Fix TypeError on python 2 in plat_other. (#12)

Version 1.3.0 – 2013/07/19

  • Added support for Gnome’s GIO.

  • Merged Python 3 and Python 2 versions in a single codebase.

Version 1.2.0 – 2011/03/16

  • Improved plat_other to follow freedesktop.org trash specification.

Version 1.1.0 – 2010/10/18

  • Converted compiled modules to ctypes so that cross-platform compilation isn’t necessary anymore.

Version 1.0.2 – 2010/07/10

  • Fixed bugs with external volumes in plat_other.

Version 1.0.1 – 2010/04/19

  • Fixed memory leak in OS X module.

Version 1.0.0 – 2010/04/07

  • Initial Release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Send2Trash-1.7.1.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Send2Trash-1.7.1-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file Send2Trash-1.7.1.tar.gz.

File metadata

  • Download URL: Send2Trash-1.7.1.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.7

File hashes

Hashes for Send2Trash-1.7.1.tar.gz
Algorithm Hash digest
SHA256 17730aa0a33ab82ed6ca76be3bb25f0433d0014f1ccf63c979bab13a5b9db2b2
MD5 e6c459aee73d7fd51150d19ca7662591
BLAKE2b-256 6c9dd66cc2adbe7643b3ce8bc100a0e5283ca97aba40630763fabe76d4f7bbfc

See more details on using hashes here.

File details

Details for the file Send2Trash-1.7.1-py3-none-any.whl.

File metadata

  • Download URL: Send2Trash-1.7.1-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.7

File hashes

Hashes for Send2Trash-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c20fee8c09378231b3907df9c215ec9766a84ee20053d99fbad854fe8bd42159
MD5 e7794a3bcec9ab5f42ee7030302427cb
BLAKE2b-256 8e47782f06786c1ef95fd9b0df6d03b7188c8d29e303e06ffe9d0d4de9824557

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page