2929import glob
3030import os .path
3131
32- from .parser import Feature , parse_feature
32+ from .parser import Feature , FeatureParser
3333
3434# Global features dictionary
3535features : dict [str , Feature ] = {}
@@ -52,30 +52,29 @@ def get_feature(base_path: str, filename: str, encoding: str = "utf-8") -> Featu
5252 full_name = os .path .abspath (os .path .join (base_path , filename ))
5353 feature = features .get (full_name )
5454 if not feature :
55- feature = parse_feature (base_path , filename , encoding = encoding )
55+ feature = FeatureParser (base_path , filename , encoding ). parse ( )
5656 features [full_name ] = feature
5757 return feature
5858
5959
60- def get_features (paths : list [str ], ** kwargs ) -> list [Feature ]:
60+ def get_features (paths : list [str ], encoding : str = "utf-8" ) -> list [Feature ]:
6161 """Get features for given paths.
6262
6363 :param list paths: `list` of paths (file or dirs)
6464
6565 :return: `list` of `Feature` objects.
6666 """
6767 seen_names = set ()
68- features = []
68+ _features = []
6969 for path in paths :
7070 if path not in seen_names :
7171 seen_names .add (path )
7272 if os .path .isdir (path ):
73- features .extend (
74- get_features (glob .iglob (os .path .join (path , "**" , "*.feature" ), recursive = True ), ** kwargs )
75- )
73+ file_paths = list (glob .iglob (os .path .join (path , "**" , "*.feature" ), recursive = True ))
74+ _features .extend (get_features (file_paths , encoding = encoding ))
7675 else :
7776 base , name = os .path .split (path )
78- feature = get_feature (base , name , ** kwargs )
79- features .append (feature )
80- features .sort (key = lambda feature : feature .name or feature .filename )
81- return features
77+ feature = get_feature (base , name , encoding = encoding )
78+ _features .append (feature )
79+ _features .sort (key = lambda _feature : _feature .name or _feature .filename )
80+ return _features
0 commit comments