@@ -12,28 +12,29 @@ def __init__(self, project_dir: StrPath) -> None:
1212 self ._project_dir = Path (project_dir )
1313
1414 def exists (self , file_name : str ) -> bool :
15- for actual_file_name in os .listdir (self ._project_dir ):
16- if actual_file_name .lower () == file_name .lower ():
17- return True
18- return False
15+ return self ._get_file_name (file_name ) is not None
1916
2017 def open (self , file_name : str ) -> BinaryIO :
21- for actual_file_name in os . listdir ( self ._project_dir ):
22- if actual_file_name . lower () == file_name . lower () :
23- return open ( self . _project_dir / actual_file_name , "rb" )
18+ actual_file_name = self ._get_file_name ( file_name )
19+ if actual_file_name is not None :
20+ file_name = actual_file_name
2421 return open (self ._project_dir / file_name , "rb" )
2522
2623 def find (self , extension : str ) -> Optional [Path ]:
2724 return next (self ._project_dir .glob (f"*{ extension } " ), None )
2825
2926 def create_stylesheet (self , file_name : str ) -> UsfmStylesheet :
30- custom_stylesheet_file_name = "custom.sty"
31- for actual_file_name in os .listdir (self ._project_dir ):
32- if actual_file_name .lower () == custom_stylesheet_file_name :
33- custom_stylesheet_file_name = actual_file_name
34- break
27+ custom_stylesheet_file_name = self ._get_file_name ("custom.sty" )
28+ if custom_stylesheet_file_name is None :
29+ custom_stylesheet_file_name = "custom.sty"
3530 custom_stylesheet_path = self ._project_dir / custom_stylesheet_file_name
3631 return UsfmStylesheet (
3732 file_name ,
3833 custom_stylesheet_path if custom_stylesheet_path .is_file () else None ,
3934 )
35+
36+ def _get_file_name (self , case_insensitive_file_name : str ) -> Optional [str ]:
37+ for actual_file_name in os .listdir (self ._project_dir ):
38+ if actual_file_name .lower () == case_insensitive_file_name .lower ():
39+ return actual_file_name
40+ return None
0 commit comments