| Index: third_party/cython/src/Tools/cython-epydoc.py
|
| diff --git a/third_party/cython/src/Tools/cython-epydoc.py b/third_party/cython/src/Tools/cython-epydoc.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..66e74019e19a3ead04a919feb7346b60ba2dbd21
|
| --- /dev/null
|
| +++ b/third_party/cython/src/Tools/cython-epydoc.py
|
| @@ -0,0 +1,45 @@
|
| +#! /usr/bin/env python
|
| +
|
| +# --------------------------------------------------------------------
|
| +
|
| +import re
|
| +from epydoc import docstringparser as dsp
|
| +
|
| +CYTHON_SIGNATURE_RE = re.compile(
|
| + # Class name (for builtin methods)
|
| + r'^\s*((?P<class>\w+)\.)?' +
|
| + # The function name
|
| + r'(?P<func>\w+)' +
|
| + # The parameters
|
| + r'\(((?P<self>(?:self|cls|mcs)),?)?(?P<params>.*)\)' +
|
| + # The return value (optional)
|
| + r'(\s*(->)\s*(?P<return>\w+(?:\s*\w+)))?' +
|
| + # The end marker
|
| + r'\s*(?:\n|$)')
|
| +
|
| +parse_signature = dsp.parse_function_signature
|
| +
|
| +def parse_function_signature(func_doc, doc_source,
|
| + docformat, parse_errors):
|
| + PYTHON_SIGNATURE_RE = dsp._SIGNATURE_RE
|
| + assert PYTHON_SIGNATURE_RE is not CYTHON_SIGNATURE_RE
|
| + try:
|
| + dsp._SIGNATURE_RE = CYTHON_SIGNATURE_RE
|
| + found = parse_signature(func_doc, doc_source,
|
| + docformat, parse_errors)
|
| + dsp._SIGNATURE_RE = PYTHON_SIGNATURE_RE
|
| + if not found:
|
| + found = parse_signature(func_doc, doc_source,
|
| + docformat, parse_errors)
|
| + return found
|
| + finally:
|
| + dsp._SIGNATURE_RE = PYTHON_SIGNATURE_RE
|
| +
|
| +dsp.parse_function_signature = parse_function_signature
|
| +
|
| +# --------------------------------------------------------------------
|
| +
|
| +from epydoc.cli import cli
|
| +cli()
|
| +
|
| +# --------------------------------------------------------------------
|
|
|