mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-08-22 06:23:20 -07:00
Adds typing to utils/Path_utils
This commit is contained in:
parent
2491c1beb8
commit
26f033402c
2 changed files with 17 additions and 17 deletions
|
@ -1,11 +1,12 @@
|
||||||
from operator import attrgetter
|
from operator import attrgetter
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from os import scandir
|
from os import scandir
|
||||||
|
from typing import List, Optional, Callable
|
||||||
|
|
||||||
image_extensions = [".jpg", ".jpeg", ".png", ".tif", ".tiff"]
|
IMAGE_EXTENSIONS = (".jpg", ".jpeg", ".png", ".tif", ".tiff")
|
||||||
|
|
||||||
|
|
||||||
def get_image_paths(dir_path, image_extensions=image_extensions):
|
def get_image_paths(dir_path: str, image_extensions: List[str] = IMAGE_EXTENSIONS) -> List[str]:
|
||||||
dir_path = Path(dir_path)
|
dir_path = Path(dir_path)
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
|
@ -16,7 +17,7 @@ def get_image_paths(dir_path, image_extensions=image_extensions):
|
||||||
return sorted(result)
|
return sorted(result)
|
||||||
|
|
||||||
|
|
||||||
def get_image_unique_filestem_paths(dir_path, verbose_print_func=None):
|
def get_image_unique_filestem_paths(dir_path: str, verbose_print_func: Optional[Callable[[str], None]] = None) -> List[str]:
|
||||||
result = get_image_paths(dir_path)
|
result = get_image_paths(dir_path)
|
||||||
result_dup = set()
|
result_dup = set()
|
||||||
|
|
||||||
|
@ -32,26 +33,21 @@ def get_image_unique_filestem_paths(dir_path, verbose_print_func=None):
|
||||||
return sorted(result)
|
return sorted(result)
|
||||||
|
|
||||||
|
|
||||||
def get_file_paths(dir_path):
|
def get_file_paths(dir_path: str) -> List[str]:
|
||||||
dir_path = Path(dir_path)
|
dir_path = Path(dir_path)
|
||||||
|
|
||||||
result = []
|
|
||||||
if dir_path.exists():
|
if dir_path.exists():
|
||||||
return [x.path for x in scandir(str(dir_path)) if x.is_file()]
|
return [x.path for x in scandir(str(dir_path)) if x.is_file()]
|
||||||
return sorted(result)
|
return []
|
||||||
|
|
||||||
|
|
||||||
def get_all_dir_names(dir_path):
|
def get_all_dir_names(dir_path: str) -> List[str]:
|
||||||
dir_path = Path(dir_path)
|
dir_path = Path(dir_path)
|
||||||
|
|
||||||
result = []
|
|
||||||
if dir_path.exists():
|
if dir_path.exists():
|
||||||
return [x.name for x in scandir(str(dir_path)) if x.is_dir()]
|
return [x.name for x in scandir(str(dir_path)) if x.is_dir()]
|
||||||
|
return []
|
||||||
return sorted(result)
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_dir_names_startswith(dir_path, startswith):
|
def get_all_dir_names_startswith(dir_path: str, startswith: str) -> List[str]:
|
||||||
dir_path = Path(dir_path)
|
dir_path = Path(dir_path)
|
||||||
startswith = startswith.lower()
|
startswith = startswith.lower()
|
||||||
|
|
||||||
|
@ -63,7 +59,7 @@ def get_all_dir_names_startswith(dir_path, startswith):
|
||||||
return sorted(result)
|
return sorted(result)
|
||||||
|
|
||||||
|
|
||||||
def get_first_file_by_stem(dir_path, stem, exts=None):
|
def get_first_file_by_stem(dir_path: str, stem: str, exts: List[str] = None) -> Optional[Path]:
|
||||||
dir_path = Path(dir_path)
|
dir_path = Path(dir_path)
|
||||||
stem = stem.lower()
|
stem = stem.lower()
|
||||||
|
|
||||||
|
@ -78,14 +74,14 @@ def get_first_file_by_stem(dir_path, stem, exts=None):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def move_all_files(src_dir_path, dst_dir_path):
|
def move_all_files(src_dir_path: str, dst_dir_path: str) -> None:
|
||||||
paths = get_file_paths(src_dir_path)
|
paths = get_file_paths(src_dir_path)
|
||||||
for p in paths:
|
for p in paths:
|
||||||
p = Path(p)
|
p = Path(p)
|
||||||
p.rename(Path(dst_dir_path) / p.name)
|
p.rename(Path(dst_dir_path) / p.name)
|
||||||
|
|
||||||
|
|
||||||
def delete_all_files(dir_path):
|
def delete_all_files(dir_path: str) -> None:
|
||||||
paths = get_file_paths(dir_path)
|
paths = get_file_paths(dir_path)
|
||||||
for p in paths:
|
for p in paths:
|
||||||
p = Path(p)
|
p = Path(p)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from utils.Path_utils import get_first_file_by_stem
|
from utils.Path_utils import get_first_file_by_stem, get_image_paths
|
||||||
|
|
||||||
|
|
||||||
class PathUtilsTests(unittest.TestCase):
|
class PathUtilsTests(unittest.TestCase):
|
||||||
|
@ -10,6 +10,10 @@ class PathUtilsTests(unittest.TestCase):
|
||||||
self.assertEqual(first_file.suffix, '.md')
|
self.assertEqual(first_file.suffix, '.md')
|
||||||
self.assertEqual(first_file.name, 'README.md')
|
self.assertEqual(first_file.name, 'README.md')
|
||||||
|
|
||||||
|
def test_get_image_paths(self):
|
||||||
|
image_paths = get_image_paths('..', ['.py'])
|
||||||
|
print('Image paths for ".." (.py extension):', image_paths)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue