MCPcopy Index your code
hub / github.com/python/cpython / _generate_toc

Method _generate_toc

Lib/mailbox.py:920–951  ·  view source on GitHub ↗

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

(self)

Source from the content-addressed store, hash-verified

918 f.write(linesep)
919
920 def _generate_toc(self):
921 """Generate key-to-(start, stop) table of contents."""
922 starts, stops = [], []
923 last_was_empty = False
924 self._file.seek(0)
925 while True:
926 line_pos = self._file.tell()
927 line = self._file.readline()
928 if line.startswith(b'From '):
929 if len(stops) < len(starts):
930 if last_was_empty:
931 stops.append(line_pos - len(linesep))
932 else:
933 # The last line before the "From " line wasn't
934 # blank, but we consider it a start of a
935 # message anyway.
936 stops.append(line_pos)
937 starts.append(line_pos)
938 last_was_empty = False
939 elif not line:
940 if last_was_empty:
941 stops.append(line_pos - len(linesep))
942 else:
943 stops.append(line_pos)
944 break
945 elif line == linesep:
946 last_was_empty = True
947 else:
948 last_was_empty = False
949 self._toc = dict(enumerate(zip(starts, stops)))
950 self._next_key = len(self._toc)
951 self._file_length = self._file.tell()
952
953
954class MMDF(_mboxMMDF):

Callers 1

_lookupMethod · 0.45

Calls 6

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

Tested by

no test coverage detected