ThirdParty/Send2Trash/send2trash/plat_gio.py

Mon, 09 Apr 2018 19:47:16 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 09 Apr 2018 19:47:16 +0200
changeset 6228
9c3fbf39ec9b
parent 5994
cf0b37d2a28d
permissions
-rw-r--r--

Third Party packages: updated send2trash to version 1.5.0

5994
cf0b37d2a28d Updated send2trash to version 1.4.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4555
diff changeset
1 # Copyright 2017 Virgil Dupras
3644
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
5994
cf0b37d2a28d Updated send2trash to version 1.4.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4555
diff changeset
3 # This software is licensed under the "BSD" License as described in the "LICENSE" file,
cf0b37d2a28d Updated send2trash to version 1.4.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4555
diff changeset
4 # which should be included with this package. The terms are also available at
3644
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 # http://www.hardcoded.net/licenses/bsd_license
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6
4555
861e1741985c Adjustments to future imports for Python 2 compatibility.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3644
diff changeset
7 from __future__ import unicode_literals
861e1741985c Adjustments to future imports for Python 2 compatibility.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3644
diff changeset
8
3644
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 from gi.repository import GObject, Gio
6228
9c3fbf39ec9b Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5994
diff changeset
10 from .exceptions import TrashPermissionError
3644
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 def send2trash(path):
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 try:
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 f = Gio.File.new_for_path(path)
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 f.trash(cancellable=None)
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 except GObject.GError as e:
6228
9c3fbf39ec9b Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5994
diff changeset
17 if e.code == Gio.IOErrorEnum.NOT_SUPPORTED:
9c3fbf39ec9b Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5994
diff changeset
18 # We get here if we can't create a trash directory on the same
9c3fbf39ec9b Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5994
diff changeset
19 # device. I don't know if other errors can result in NOT_SUPPORTED.
9c3fbf39ec9b Third Party packages: updated send2trash to version 1.5.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5994
diff changeset
20 raise TrashPermissionError('')
3644
a2c88b9b1d16 Added code to Project to move deleted files/directories to the recycle bin falling back to removing them (os.remove), if send2trash cannot be imported due to missing dependencies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 raise OSError(e.message)

eric ide

mercurial