@@ -11,15 +11,16 @@ def extract_iter(
1111 convert : typing .Callable [[str ], typing .Any ] = lambda x : x ,
1212 require_path : bool = True ,
1313) -> typing .Generator [typing .Tuple [str , typing .Any ], None , None ]:
14- """Extracts json from generator specified by given simple matcher
14+ """Extracts json from generator specified by given matcher
1515 :param: input_gen: input generator
1616 :param: matcher: used matcher
1717 :param: convert: function used to convert raw data
1818 :param: require_path: is path required in output stream
1919
2020 :yields: path and converted data
2121 """
22- extract = Extract (matcher .inner , require_path )
22+ extract = Extract (require_path )
23+ extract .add_matcher (matcher .inner )
2324 for item in input_gen :
2425 for path , data in extract .process (item ):
2526 yield path , convert (data )
@@ -32,7 +33,7 @@ def extract_fd(
3233 convert : typing .Callable [[str ], typing .Any ] = lambda x : x ,
3334 require_path : bool = True ,
3435) -> typing .Generator [typing .Tuple [str , typing .Any ], None , None ]:
35- """Extracts json from input file specified by given simple matcher
36+ """Extracts json from input file specified by given matcher
3637 :param: input_fd: input fd
3738 :param: buffer_size: how many bytes can be read from a file at once
3839 :param: matcher: used matcher
@@ -41,7 +42,9 @@ def extract_fd(
4142
4243 :yields: path and converted data
4344 """
44- extract = Extract (matcher .inner , require_path )
45+ extract = Extract (require_path )
46+ extract .add_matcher (matcher .inner )
47+
4548 input_data = input_fd .read (buffer_size )
4649
4750 while input_data :
@@ -56,15 +59,17 @@ async def extract_async(
5659 convert : typing .Callable [[str ], typing .Any ] = lambda x : x ,
5760 require_path : bool = True ,
5861):
59- """Extracts json from given async generator specified by given simple matcher
62+ """Extracts json from given async generator specified by given matcher
6063 :param: input_gen: input generator
6164 :param: matcher: used matcher
6265 :param: convert: function used to convert raw data
6366 :param: require_path: is path required in output stream
6467
6568 :yields: path and converted data
6669 """
67- extract = Extract (matcher .inner , require_path )
70+ extract = Extract (require_path )
71+ extract .add_matcher (matcher .inner )
72+
6873 async for input_data in input_gen :
6974 for path , data in extract .process (input_data ):
7075 yield path , convert (data )
0 commit comments