-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfile_navigator.py
More file actions
37 lines (30 loc) · 1.1 KB
/
Copy pathfile_navigator.py
File metadata and controls
37 lines (30 loc) · 1.1 KB
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
37
import os
from glob import glob
from ionogram_tester import IonogramTester
class FileNavigator:
def __init__(self, file_name: str):
self.file_name = file_name
self.directory = os.path.dirname(file_name)
full_file_list = glob(f"{self.directory}/*.*")
tester = IonogramTester()
self.file_list = [file for file in full_file_list if tester.examine(file)]
def next(self):
index = [os.path.basename(file) for file in self.file_list].index(
os.path.basename(self.file_name)
)
if index + 1 < len(self.file_list):
self.file_name = self.file_list[index + 1]
return self.file_name
def previous(self):
index = [os.path.basename(file) for file in self.file_list].index(
os.path.basename(self.file_name)
)
if index > 0:
self.file_name = self.file_list[index - 1]
return self.file_name
def first(self):
self.file_name = self.file_list[0]
return self.file_name
def last(self):
self.file_name = self.file_list[-1]
return self.file_name