1
0
mirror of https://github.com/arsenetar/send2trash.git synced 2024-12-21 10:59:03 +00:00

Black format updates with correct line length

This commit is contained in:
Andrew Senetar 2021-08-17 18:58:11 -05:00
parent 24079e245c
commit d0e4890a4d
Signed by: arsenetar
GPG Key ID: C63300DCE48AB2F1
10 changed files with 27 additions and 105 deletions

View File

@ -35,9 +35,7 @@ class FileOperationProgressSink(DesignatedWrapPolicy):
# Can detect cases where to stop via flags and condition below, however the operation # Can detect cases where to stop via flags and condition below, however the operation
# does not actual stop, we can resort to raising an exception as that does stop things # does not actual stop, we can resort to raising an exception as that does stop things
# but that may need some additional considerations before implementing. # but that may need some additional considerations before implementing.
return ( return 0 if flags & shellcon.TSF_DELETE_RECYCLE_IF_POSSIBLE else 0x80004005 # S_OK, or E_FAIL
0 if flags & shellcon.TSF_DELETE_RECYCLE_IF_POSSIBLE else 0x80004005
) # S_OK, or E_FAIL
def PostDeleteItem(self, flags, item, hrDelete, newlyCreated): def PostDeleteItem(self, flags, item, hrDelete, newlyCreated):
if newlyCreated: if newlyCreated:
@ -58,31 +56,20 @@ class FileOperationProgressSink(DesignatedWrapPolicy):
def PreMoveItem(self, Flags, Item, DestinationFolder, NewName): def PreMoveItem(self, Flags, Item, DestinationFolder, NewName):
pass pass
def PostMoveItem( def PostMoveItem(self, Flags, Item, DestinationFolder, NewName, hrMove, NewlyCreated):
self, Flags, Item, DestinationFolder, NewName, hrMove, NewlyCreated
):
pass pass
def PreCopyItem(self, Flags, Item, DestinationFolder, NewName): def PreCopyItem(self, Flags, Item, DestinationFolder, NewName):
pass pass
def PostCopyItem( def PostCopyItem(self, Flags, Item, DestinationFolder, NewName, hrCopy, NewlyCreated):
self, Flags, Item, DestinationFolder, NewName, hrCopy, NewlyCreated
):
pass pass
def PreNewItem(self, Flags, DestinationFolder, NewName): def PreNewItem(self, Flags, DestinationFolder, NewName):
pass pass
def PostNewItem( def PostNewItem(
self, self, Flags, DestinationFolder, NewName, TemplateName, FileAttributes, hrNew, NewItem,
Flags,
DestinationFolder,
NewName,
TemplateName,
FileAttributes,
hrNew,
NewItem,
): ):
pass pass
@ -100,6 +87,4 @@ class FileOperationProgressSink(DesignatedWrapPolicy):
def CreateSink(): def CreateSink():
return pythoncom.WrapObject( return pythoncom.WrapObject(FileOperationProgressSink(), shell.IID_IFileOperationProgressSink)
FileOperationProgressSink(), shell.IID_IFileOperationProgressSink
)

View File

@ -14,20 +14,20 @@ from send2trash import send2trash
def main(args=None): def main(args=None):
parser = ArgumentParser(description='Tool to send files to trash') parser = ArgumentParser(description="Tool to send files to trash")
parser.add_argument('files', nargs='+') parser.add_argument("files", nargs="+")
parser.add_argument('-v', '--verbose', action='store_true', help='Print deleted files') parser.add_argument("-v", "--verbose", action="store_true", help="Print deleted files")
args = parser.parse_args(args) args = parser.parse_args(args)
for filename in args.files: for filename in args.files:
try: try:
send2trash(filename) send2trash(filename)
if args.verbose: if args.verbose:
print('Trashed «' + filename + '»') print("Trashed «" + filename + "»")
except OSError as e: except OSError as e:
print(str(e), file=sys.stderr) print(str(e), file=sys.stderr)
sys.exit(1) sys.exit(1)
if __name__ == '__main__': if __name__ == "__main__":
main() main()

View File

@ -42,10 +42,7 @@ def check_op_result(op_result):
def send2trash(paths): def send2trash(paths):
paths = preprocess_paths(paths) paths = preprocess_paths(paths)
paths = [ paths = [path.encode("utf-8") if not isinstance(path, binary_type) else path for path in paths]
path.encode("utf-8") if not isinstance(path, binary_type) else path
for path in paths
]
for path in paths: for path in paths:
fp = FSRef() fp = FSRef()
opts = kFSPathMakeRefDoNotFollowLeafSymlink opts = kFSPathMakeRefDoNotFollowLeafSymlink

View File

@ -18,10 +18,7 @@ def check_op_result(op_result):
def send2trash(paths): def send2trash(paths):
paths = preprocess_paths(paths) paths = preprocess_paths(paths)
paths = [ paths = [path.decode("utf-8") if not isinstance(path, text_type) else path for path in paths]
path.decode("utf-8") if not isinstance(path, text_type) else path
for path in paths
]
for path in paths: for path in paths:
file_url = NSURL.fileURLWithPath_(path) file_url = NSURL.fileURLWithPath_(path)
fm = NSFileManager.defaultManager() fm = NSFileManager.defaultManager()

View File

@ -103,9 +103,7 @@ def trash_move(src, dst, topdir=None):
counter = 0 counter = 0
destname = filename destname = filename
while op.exists(op.join(filespath, destname)) or op.exists( while op.exists(op.join(filespath, destname)) or op.exists(op.join(infopath, destname + INFO_SUFFIX)):
op.join(infopath, destname + INFO_SUFFIX)
):
counter += 1 counter += 1
destname = base_name + b" " + text_type(counter).encode("ascii") + ext destname = base_name + b" " + text_type(counter).encode("ascii") + ext

View File

@ -105,10 +105,7 @@ def get_short_path_name(long_name):
def send2trash(paths): def send2trash(paths):
paths = preprocess_paths(paths) paths = preprocess_paths(paths)
# convert data type # convert data type
paths = [ paths = [text_type(path, "mbcs") if not isinstance(path, text_type) else path for path in paths]
text_type(path, "mbcs") if not isinstance(path, text_type) else path
for path in paths
]
# convert to full paths # convert to full paths
paths = [op.abspath(path) if not op.isabs(path) else path for path in paths] paths = [op.abspath(path) if not op.isabs(path) else path for path in paths]
# get short path to handle path length issues # get short path to handle path length issues

View File

@ -18,10 +18,7 @@ from .IFileOperationProgressSink import CreateSink
def send2trash(paths): def send2trash(paths):
paths = preprocess_paths(paths) paths = preprocess_paths(paths)
# convert data type # convert data type
paths = [ paths = [text_type(path, "mbcs") if not isinstance(path, text_type) else path for path in paths]
text_type(path, "mbcs") if not isinstance(path, text_type) else path
for path in paths
]
# convert to full paths # convert to full paths
paths = [op.abspath(path) if not op.isabs(path) else path for path in paths] paths = [op.abspath(path) if not op.isabs(path) else path for path in paths]
# remove the leading \\?\ if present # remove the leading \\?\ if present
@ -33,19 +30,11 @@ def send2trash(paths):
shell.CLSID_FileOperation, None, pythoncom.CLSCTX_ALL, shell.IID_IFileOperation, shell.CLSID_FileOperation, None, pythoncom.CLSCTX_ALL, shell.IID_IFileOperation,
) )
# default flags to use # default flags to use
flags = ( flags = shellcon.FOF_NOCONFIRMATION | shellcon.FOF_NOERRORUI | shellcon.FOF_SILENT | shellcon.FOFX_EARLYFAILURE
shellcon.FOF_NOCONFIRMATION
| shellcon.FOF_NOERRORUI
| shellcon.FOF_SILENT
| shellcon.FOFX_EARLYFAILURE
)
# determine rest of the flags based on OS version # determine rest of the flags based on OS version
# use newer recommended flags if available # use newer recommended flags if available
if int(version().split(".", 1)[0]) >= 8: if int(version().split(".", 1)[0]) >= 8:
flags |= ( flags |= 0x20000000 | 0x00080000 # FOFX_ADDUNDORECORD win 8+ # FOFX_RECYCLEONDELETE win 8+
0x20000000 # FOFX_ADDUNDORECORD win 8+
| 0x00080000 # FOFX_RECYCLEONDELETE win 8+
)
else: else:
flags |= shellcon.FOF_ALLOWUNDO flags |= shellcon.FOF_ALLOWUNDO
# set the flags # set the flags

View File

@ -10,7 +10,5 @@ def preprocess_paths(paths):
if not isinstance(paths, list): if not isinstance(paths, list):
paths = [paths] paths = [paths]
# Convert items such as pathlib paths to strings # Convert items such as pathlib paths to strings
paths = [ paths = [path.__fspath__() if hasattr(path, "__fspath__") else path for path in paths]
path.__fspath__() if hasattr(path, "__fspath__") else path for path in paths
]
return paths return paths

View File

@ -28,9 +28,7 @@ else:
@pytest.fixture @pytest.fixture
def testfile(): def testfile():
file = NamedTemporaryFile( file = NamedTemporaryFile(dir=op.expanduser("~"), prefix="send2trash_test", delete=False)
dir=op.expanduser("~"), prefix="send2trash_test", delete=False
)
file.close() file.close()
assert op.exists(file.name) is True assert op.exists(file.name) is True
yield file yield file
@ -50,9 +48,7 @@ def testfiles():
files = list( files = list(
map( map(
lambda index: NamedTemporaryFile( lambda index: NamedTemporaryFile(
dir=op.expanduser("~"), dir=op.expanduser("~"), prefix="send2trash_test{}".format(index), delete=False,
prefix="send2trash_test{}".format(index),
delete=False,
), ),
range(10), range(10),
) )
@ -62,10 +58,7 @@ def testfiles():
yield files yield files
filenames = [op.basename(file.name) for file in files] filenames = [op.basename(file.name) for file in files]
[os.remove(op.join(HOMETRASH, "files", filename)) for filename in filenames] [os.remove(op.join(HOMETRASH, "files", filename)) for filename in filenames]
[ [os.remove(op.join(HOMETRASH, "info", filename + ".trashinfo")) for filename in filenames]
os.remove(op.join(HOMETRASH, "info", filename + ".trashinfo"))
for filename in filenames
]
def test_trash(testfile): def test_trash(testfile):
@ -136,10 +129,7 @@ class ExtVol:
return st.st_dev return st.st_dev
def s_ismount(path): def s_ismount(path):
if op.realpath(path) in ( if op.realpath(path) in (op.realpath(self.trashTopdir), op.realpath(self.trashTopdir_b),):
op.realpath(self.trashTopdir),
op.realpath(self.trashTopdir_b),
):
return True return True
return old_ismount(path) return old_ismount(path)
@ -172,15 +162,8 @@ def test_trash_topdir(testExtVol):
s2t(testExtVol[2]) s2t(testExtVol[2])
assert op.exists(testExtVol[2]) is False assert op.exists(testExtVol[2]) is False
assert ( assert op.exists(op.join(trashDir, str(os.getuid()), "files", testExtVol[1])) is True
op.exists(op.join(trashDir, str(os.getuid()), "files", testExtVol[1])) is True assert op.exists(op.join(trashDir, str(os.getuid()), "info", testExtVol[1] + ".trashinfo",)) is True
)
assert (
op.exists(
op.join(trashDir, str(os.getuid()), "info", testExtVol[1] + ".trashinfo",)
)
is True
)
# info relative path (if another test is added, with the same fileName/Path, # info relative path (if another test is added, with the same fileName/Path,
# then it gets renamed etc.) # then it gets renamed etc.)
cfg = ConfigParser() cfg = ConfigParser()
@ -191,17 +174,7 @@ def test_trash_topdir(testExtVol):
def test_trash_topdir_fallback(testExtVol): def test_trash_topdir_fallback(testExtVol):
s2t(testExtVol[2]) s2t(testExtVol[2])
assert op.exists(testExtVol[2]) is False assert op.exists(testExtVol[2]) is False
assert ( assert op.exists(op.join(testExtVol[0].trashTopdir, ".Trash-" + str(os.getuid()), "files", testExtVol[1],)) is True
op.exists(
op.join(
testExtVol[0].trashTopdir,
".Trash-" + str(os.getuid()),
"files",
testExtVol[1],
)
)
is True
)
def test_trash_topdir_failure(testExtVol): def test_trash_topdir_failure(testExtVol):
@ -221,15 +194,5 @@ def test_trash_symlink(testExtVol):
os.symlink(op.join(testExtVol[0].trashTopdir, "subdir"), slDir) os.symlink(op.join(testExtVol[0].trashTopdir, "subdir"), slDir)
s2t(op.join(slDir, testExtVol[1])) s2t(op.join(slDir, testExtVol[1]))
assert op.exists(filePath) is False assert op.exists(filePath) is False
assert ( assert op.exists(op.join(testExtVol[0].trashTopdir, ".Trash-" + str(os.getuid()), "files", testExtVol[1],)) is True
op.exists(
op.join(
testExtVol[0].trashTopdir,
".Trash-" + str(os.getuid()),
"files",
testExtVol[1],
)
)
is True
)
os.remove(slDir) os.remove(slDir)

View File

@ -14,9 +14,7 @@ if sys.platform != "win32":
@pytest.fixture @pytest.fixture
def file(): def file():
file = NamedTemporaryFile( file = NamedTemporaryFile(dir=op.expanduser("~"), prefix="send2trash_test", delete=False)
dir=op.expanduser("~"), prefix="send2trash_test", delete=False
)
file.close() file.close()
# Verify file was actually created # Verify file was actually created
assert op.exists(file.name) is True assert op.exists(file.name) is True