MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / _generate_toc

Method _generate_toc

tools/python-3.11.9-amd64/Lib/mailbox.py:857–888  ·  view source on GitHub ↗

Generate key-to-(start, stop) table of contents.

(self)

Source from the content-addressed store, hash-verified

855 f.write(linesep)
856
857 def _generate_toc(self):
858 """Generate key-to-(start, stop) table of contents."""
859 starts, stops = [], []
860 last_was_empty = False
861 self._file.seek(0)
862 while True:
863 line_pos = self._file.tell()
864 line = self._file.readline()
865 if line.startswith(b'From '):
866 if len(stops) < len(starts):
867 if last_was_empty:
868 stops.append(line_pos - len(linesep))
869 else:
870 # The last line before the "From " line wasn't
871 # blank, but we consider it a start of a
872 # message anyway.
873 stops.append(line_pos)
874 starts.append(line_pos)
875 last_was_empty = False
876 elif not line:
877 if last_was_empty:
878 stops.append(line_pos - len(linesep))
879 else:
880 stops.append(line_pos)
881 break
882 elif line == linesep:
883 last_was_empty = True
884 else:
885 last_was_empty = False
886 self._toc = dict(enumerate(zip(starts, stops)))
887 self._next_key = len(self._toc)
888 self._file_length = self._file.tell()
889
890
891class MMDF(_mboxMMDF):

Callers 1

_lookupMethod · 0.45

Calls 6

enumerateFunction · 0.85
startswithMethod · 0.80
seekMethod · 0.45
tellMethod · 0.45
readlineMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected