File tree 1 file changed +8
-5
lines changed
libs/core/langchain_core/output_parsers
1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change 20
20
T = TypeVar ("T" )
21
21
22
22
23
- def _droplastn (iterator : Iterator [T ], n : int ) -> Iterator [T ]:
23
+ def droplastn (
24
+ iter : Iterator [T ], # noqa: A002
25
+ n : int ,
26
+ ) -> Iterator [T ]:
24
27
"""Drop the last n elements of an iterator.
25
28
26
29
Args:
27
- iterator : The iterator to drop elements from.
30
+ iter : The iterator to drop elements from.
28
31
n: The number of elements to drop.
29
32
30
33
Yields:
31
34
The elements of the iterator, except the last n elements.
32
35
"""
33
36
buffer : deque [T ] = deque ()
34
- for item in iterator :
37
+ for item in iter :
35
38
buffer .append (item )
36
39
if len (buffer ) > n :
37
40
yield buffer .popleft ()
@@ -85,7 +88,7 @@ def _transform(
85
88
try :
86
89
done_idx = 0
87
90
# yield only complete parts
88
- for m in _droplastn (self .parse_iter (buffer ), 1 ):
91
+ for m in droplastn (self .parse_iter (buffer ), 1 ):
89
92
done_idx = m .end ()
90
93
yield [m .group (1 )]
91
94
buffer = buffer [done_idx :]
@@ -119,7 +122,7 @@ async def _atransform(
119
122
try :
120
123
done_idx = 0
121
124
# yield only complete parts
122
- for m in _droplastn (self .parse_iter (buffer ), 1 ):
125
+ for m in droplastn (self .parse_iter (buffer ), 1 ):
123
126
done_idx = m .end ()
124
127
yield [m .group (1 )]
125
128
buffer = buffer [done_idx :]
You can’t perform that action at this time.
0 commit comments