-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.py
36 lines (32 loc) · 1.24 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
from typing import List
from operator import itemgetter
# Keeps track of which type of extension should be classified as what
fileTypes = {
'document_ext': ['.docx', '.doc', '.odt', '.pdf', '.gdoc', '.xls', '.xlsx', '.ods', '.ppt', '.pptx', '.md', '.gslides', '.gsheets'],
# Image extensions
'image_ext': ['.gif', '.png', '.jpg', '.jpeg', '.webp', '.tiff', '.psd', '.ai'],
}
# Stores the strings used to keep track of the file type.
fileTypeNames = {
'directory':'dir',
'document': 'doc',
'image': 'img',
'other': 'any',
}
# Returns the type of file (from the fileTypeNames dict) based on the file types stored in fileTypes
def getFileType(path: str) -> str:
if os.path.isdir(path):
return fileTypeNames['directory']
filename, ext = os.path.splitext(path)
if ext in fileTypes['document_ext']:
return fileTypeNames['document']
if ext in fileTypes['image_ext']:
return fileTypeNames['image']
return fileTypeNames['other']
def sortByFolder(results: List[object]):
# If the length of the results is less then or equal to 1 there is no need to sort it.
if len(results) <= 1:
return results
# Sort the files by folder
return sorted(results, key=itemgetter("file_type"))