Skip to content

Commit bd634ff

Browse files
committed
added buffered reading to tokenizer
1 parent ce75038 commit bd634ff

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/json_stream/tokenizer.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,14 @@ def process_char(char):
365365

366366
return advance, next_state
367367
state = State.WHITESPACE
368-
c = stream.read(1)
369-
index = 0
370-
while c:
368+
buffer = stream.read(io.DEFAULT_BUFFER_SIZE)
369+
c = None
370+
index = -1
371+
advance = True
372+
while buffer:
373+
if advance:
374+
c, buffer = buffer[0], buffer[1:] or stream.read(io.DEFAULT_BUFFER_SIZE)
375+
index += 1
371376
try:
372377
advance, state = process_char(c)
373378
except ValueError as e:
@@ -376,9 +381,6 @@ def process_char(char):
376381
completed = False
377382
token = []
378383
yield now_token
379-
if advance:
380-
c = stream.read(1)
381-
index += 1
382384
process_char(SpecialChar.EOF)
383385
if completed:
384386
yield now_token

0 commit comments

Comments
 (0)