MCPcopy
hub / github.com/sphinx-doc/sphinx / extract_messages

Function extract_messages

sphinx/util/nodes.py:319–346  ·  view source on GitHub ↗

Extract translatable messages from a document tree.

(doctree: Element)

Source from the content-addressed store, hash-verified

317
318
319def extract_messages(doctree: Element) -> Iterable[tuple[Element, str]]:
320 """Extract translatable messages from a document tree."""
321 for node in doctree.findall(is_translatable):
322 if isinstance(node, addnodes.translatable):
323 for msg in node.extract_original_messages():
324 yield node, msg # type: ignore[misc]
325 continue
326 if isinstance(node, LITERAL_TYPE_NODES):
327 msg = node.rawsource
328 if not msg:
329 msg = node.astext()
330 elif isinstance(node, nodes.image):
331 if node.get('alt'):
332 yield node, node['alt']
333 if node.get('translatable'):
334 image_uri = node.get('original_uri', node['uri'])
335 msg = f'.. image:: {image_uri}'
336 else:
337 msg = ''
338 elif isinstance(node, nodes.meta):
339 msg = node['content']
340 else:
341 text = node.rawsource # type: ignore[attr-defined]
342 msg = _clean_extracted_message(text)
343
344 # XXX nodes rendering empty are likely a bug in sphinx.addnodes
345 if msg:
346 yield node, msg # type: ignore[misc]
347
348
349def get_node_source(node: Element) -> str:

Callers 4

write_docMethod · 0.90
applyMethod · 0.90
test_extract_messagesFunction · 0.90

Calls 5

_clean_extracted_messageFunction · 0.85
findallMethod · 0.45
astextMethod · 0.45
getMethod · 0.45

Tested by 2

test_extract_messagesFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…