MCPcopy Index your code
hub / github.com/RustPython/RustPython / _install_message

Method _install_message

Lib/mailbox.py:1456–1561  ·  view source on GitHub ↗

Write message contents and return (start, stop).

(self, message)

Source from the content-addressed store, hash-verified

1454 f.write(linesep + b'\037')
1455
1456 def _install_message(self, message):
1457 """Write message contents and return (start, stop)."""
1458 start = self._file.tell()
1459 if isinstance(message, BabylMessage):
1460 special_labels = []
1461 labels = []
1462 for label in message.get_labels():
1463 if label in self._special_labels:
1464 special_labels.append(label)
1465 else:
1466 labels.append(label)
1467 self._file.write(b'1')
1468 for label in special_labels:
1469 self._file.write(b', ' + label.encode())
1470 self._file.write(b',,')
1471 for label in labels:
1472 self._file.write(b' ' + label.encode() + b',')
1473 self._file.write(linesep)
1474 else:
1475 self._file.write(b'1,,' + linesep)
1476 if isinstance(message, email.message.Message):
1477 orig_buffer = io.BytesIO()
1478 orig_generator = email.generator.BytesGenerator(orig_buffer, False, 0)
1479 orig_generator.flatten(message)
1480 orig_buffer.seek(0)
1481 while True:
1482 line = orig_buffer.readline()
1483 self._file.write(line.replace(b'\n', linesep))
1484 if line == b'\n' or not line:
1485 break
1486 self._file.write(b'*** EOOH ***' + linesep)
1487 if isinstance(message, BabylMessage):
1488 vis_buffer = io.BytesIO()
1489 vis_generator = email.generator.BytesGenerator(vis_buffer, False, 0)
1490 vis_generator.flatten(message.get_visible())
1491 while True:
1492 line = vis_buffer.readline()
1493 self._file.write(line.replace(b'\n', linesep))
1494 if line == b'\n' or not line:
1495 break
1496 else:
1497 orig_buffer.seek(0)
1498 while True:
1499 line = orig_buffer.readline()
1500 self._file.write(line.replace(b'\n', linesep))
1501 if line == b'\n' or not line:
1502 break
1503 while True:
1504 buffer = orig_buffer.read(4096) # Buffer size is arbitrary.
1505 if not buffer:
1506 break
1507 self._file.write(buffer.replace(b'\n', linesep))
1508 elif isinstance(message, (bytes, str, io.StringIO)):
1509 if isinstance(message, io.StringIO):
1510 warnings.warn("Use of StringIO input is deprecated, "
1511 "use BytesIO instead", DeprecationWarning, 3)
1512 message = message.getvalue()
1513 if isinstance(message, str):

Callers 1

_append_messageMethod · 0.45

Calls 15

seekMethod · 0.95
readMethod · 0.95
isinstanceFunction · 0.85
hasattrFunction · 0.85
get_visibleMethod · 0.80
_string_to_bytesMethod · 0.80
tellMethod · 0.45
get_labelsMethod · 0.45
appendMethod · 0.45
writeMethod · 0.45
encodeMethod · 0.45
flattenMethod · 0.45

Tested by

no test coverage detected