| import errno | |
| from send2trash.compat import PY3 | |
| if PY3: | |
| _permission_error = PermissionError # noqa: F821 | |
| else: | |
| _permission_error = OSError | |
| class TrashPermissionError(_permission_error): | |
| """A permission error specific to a trash directory. | |
| Raising this error indicates that permissions prevent us efficiently | |
| trashing a file, although we might still have permission to delete it. | |
| This is *not* used when permissions prevent removing the file itself: | |
| that will be raised as a regular PermissionError (OSError on Python 2). | |
| Application code that catches this may try to simply delete the file, | |
| or prompt the user to decide, or (on Freedesktop platforms), move it to | |
| 'home trash' as a fallback. This last option probably involves copying the | |
| data between partitions, devices, or network drives, so we don't do it as | |
| a fallback. | |
| """ | |
| def __init__(self, filename): | |
| _permission_error.__init__(self, errno.EACCES, "Permission denied", filename) | |