MCPcopy Create free account
hub / github.com/AcademySoftwareFoundation/OpenColorIO / render_docstring

Function render_docstring

share/docs/extract_docstrings.py:423–470  ·  view source on GitHub ↗

Render single docstring definition source.

(def_elem, name, names)

Source from the content-addressed store, hash-verified

421# -----------------------------------------------------------------------------
422
423def render_docstring(def_elem, name, names):
424 """
425 Render single docstring definition source.
426 """
427 unregistered_tags = set()
428
429 # Handle brief and/or detailed description elements
430 value = "\n".join(filter(None, [
431 ElementRenderer.render(
432 def_elem.find("briefdescription"),
433 unregistered_tags=unregistered_tags
434 ),
435 ElementRenderer.render(
436 def_elem.find("detaileddescription"),
437 unregistered_tags=unregistered_tags
438 )
439 ])).lstrip("\n").rstrip()
440
441 # Clean up excessive newlines
442 value = re.sub(r"\n{3,}", "\n\n", value)
443
444 if unregistered_tags:
445 # Fail on unregistered tags with clear debug
446 raise RuntimeError(
447 "Unhandled Doxygen XML element(s) found: '{tags}'\n\n"
448 "XML:\n"
449 "{xml}\n\n"
450 "RST:\n"
451 "{rst}\n\n".format(
452 tags="', '".join(sorted(unregistered_tags)),
453 xml=ET.tostring(def_elem, encoding="utf-8", method="xml"),
454 rst=value
455 )
456 )
457
458 # Increment duplicate names, accounting for overloaded functions
459 var_name = orig_var_name = sanitize_name(name)
460 i = 2
461 while var_name in names:
462 var_name = "{var_name}_{i}".format(var_name=orig_var_name, i=i)
463 i += 1
464 names.add(var_name)
465
466 return "static const char *{name} ={sep}R\"doc({doc})doc\";".format(
467 name=var_name,
468 sep="\n" if "\n" in value else " ",
469 doc=value
470 )
471
472
473def extract_docstrings(args):

Callers 1

extract_docstringsFunction · 0.85

Calls 4

sanitize_nameFunction · 0.85
addMethod · 0.80
renderMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected