Mon, 09 Apr 2018 19:47:16 +0200
Third Party packages: updated send2trash to version 1.5.0
6228
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | from __future__ import unicode_literals |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | import errno |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | from .compat import PY3 |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | if PY3: |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | _permission_error = PermissionError |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | else: |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | _permission_error = OSError |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | class TrashPermissionError(_permission_error): |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | """A permission error specific to a trash directory. |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | Raising this error indicates that permissions prevent us efficiently |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | trashing a file, although we might still have permission to delete it. |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | This is *not* used when permissions prevent removing the file itself: |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | that will be raised as a regular PermissionError (OSError on Python 2). |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | Application code that catches this may try to simply delete the file, |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | or prompt the user to decide, or (on Freedesktop platforms), move it to |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | 'home trash' as a fallback. This last option probably involves copying the |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | data between partitions, devices, or network drives, so we don't do it as |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | a fallback. |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | def __init__(self, filename): |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | _permission_error.__init__(self, errno.EACCES, "Permission denied", |
9c3fbf39ec9b
Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | filename) |