Doxygen和doxypi记录Python代码的问题

时间:2018-02-26 20:28:38

标签: python-2.7 doxygen documentation-generation code-documentation

我正在使用Doxygen 1.8.11来记录大量的Python代码。我正在使用它,因为我想要LaTeX文档支持(除了.html)。

最初,我按照Doxygen建议记录了我的代码,这意味着没有docstrings。这意味着:

""" description at beginning of file """
##
# description of a class
#
class Class(object):
    ##
    # Constructor
    # @param a a variable
    # @param b another variable
    def __init__(a,b):
......etc.

我不喜欢这个,我找到了doxypy 0.4.1并将其用作我的代码的输入过滤器。现在,我写道:

""" description at beginning of file """
class Class(object):
    """description of class
    def __init__(a,b):
        """Constructor
        @param a a variable
        @param b another variable
        """
......etc.

虽然我并不关心Python神是否因为不使用docsstrings而感到愤怒,但我想尝试保持一致,无论如何,这对我正在使用的其他工具更有效。

我发现的问题(我以非常讨厌的方式工作 - 也有不好的副作用)是当我使用docstring记录的代码时,使用doxypy,它将上面的内容转换为:

## description at beginning of file
#
##
# description of a class
#
class Class(object):
    ##
    # Constructor
    # @param a a variable
    # @param b another variable
    def __init__(a,b):
......etc.

现在,这是问题所在。我的文件中的第一行曾经有一个docstring,即使是Doxygen建议的格式。我发现,如果我没有这个文档字符串,Doxygen会表现得好像代码没有记录,并且不会在我的文档中包含它(我需要在这里说清楚并说这个问题仅适用于那些被def'd的东西 - 不是类 - 即功能 在我的软件中声明如下:

def func(a,b)
  ...

除非我在Doxygen配置文件中设置EXTRACT_ALL参数,否则它根本不会将它们放在文档中。显然,我不想提取所有内容并希望得到一些控制权 - 但是如果不这样做,这些defs就会消失。

因此,我通过将docstring放在我的代码顶部来规避某种doxygen问题。现在,当我切换到doxypy作为我的输入过滤器时,这个 docstring消失了。我找不到让doxypy忽略这个字符串的方法。所以我攻击了doxypy来在发射线的前面推一个文档字符串,现在它可以工作了 - 但代码列表引用是一行的(Doxygen在手册中警告过我)。 (我仍然可以通过在文件顶部包含一条虚线而不是附加文档字符串的doxygen来解决这个问题,它可以简单地替换虚线)。

所以,我的问题是:

  1. 有没有办法在我的文档中包含def'd函数,而文件顶部没有文档字符串而且没有使用EXTRACT_ALL设置?这是一个已知问题还是我做错了什么?
  2. 有没有办法让doxypy不将docstring转换为doxygen格式?即一些特别标记的文档字符串不能转换。
  3. 感谢您的帮助。

    这是我的doxygen配置文件(删除了评论):

    DOXYFILE_ENCODING      = UTF-8
    PROJECT_NAME           = SignalIntegrity
    PROJECT_NUMBER         = 1.0
    PROJECT_BRIEF          = "Signal Integrity Tools in Python"
    PROJECT_LOGO           = ../AppIcon2.ico
    OUTPUT_DIRECTORY       = 
    CREATE_SUBDIRS         = NO
    ALLOW_UNICODE_NAMES    = NO
    OUTPUT_LANGUAGE        = English
    BRIEF_MEMBER_DESC      = YES
    REPEAT_BRIEF           = YES
    ABBREVIATE_BRIEF       = 
    ALWAYS_DETAILED_SEC    = NO
    INLINE_INHERITED_MEMB  = NO
    FULL_PATH_NAMES        = YES
    STRIP_FROM_PATH        = ../..
    STRIP_FROM_INC_PATH    = ../..
    SHORT_NAMES            = NO
    JAVADOC_AUTOBRIEF      = NO
    QT_AUTOBRIEF           = NO
    MULTILINE_CPP_IS_BRIEF = NO
    INHERIT_DOCS           = YES
    SEPARATE_MEMBER_PAGES  = NO
    TAB_SIZE               = 4
    ALIASES                = 
    TCL_SUBST              = 
    OPTIMIZE_OUTPUT_FOR_C  = NO
    OPTIMIZE_OUTPUT_JAVA   = YES
    OPTIMIZE_FOR_FORTRAN   = NO
    OPTIMIZE_OUTPUT_VHDL   = NO
    EXTENSION_MAPPING      = 
    MARKDOWN_SUPPORT       = YES
    AUTOLINK_SUPPORT       = YES
    BUILTIN_STL_SUPPORT    = NO
    CPP_CLI_SUPPORT        = NO
    SIP_SUPPORT            = NO
    IDL_PROPERTY_SUPPORT   = YES
    DISTRIBUTE_GROUP_DOC   = NO
    GROUP_NESTED_COMPOUNDS = NO
    SUBGROUPING            = YES
    INLINE_GROUPED_CLASSES = NO
    INLINE_SIMPLE_STRUCTS  = NO
    TYPEDEF_HIDES_STRUCT   = NO
    LOOKUP_CACHE_SIZE      = 0
    EXTRACT_ALL            = NO
    EXTRACT_PRIVATE        = NO
    EXTRACT_PACKAGE        = YES
    EXTRACT_STATIC         = YES
    EXTRACT_LOCAL_CLASSES  = YES
    EXTRACT_LOCAL_METHODS  = NO
    EXTRACT_ANON_NSPACES   = YES
    HIDE_UNDOC_MEMBERS     = YES
    HIDE_UNDOC_CLASSES     = YES
    HIDE_FRIEND_COMPOUNDS  = NO
    HIDE_IN_BODY_DOCS      = NO
    INTERNAL_DOCS          = NO
    CASE_SENSE_NAMES       = YES
    HIDE_SCOPE_NAMES       = YES
    HIDE_COMPOUND_REFERENCE= NO
    SHOW_INCLUDE_FILES     = YES
    SHOW_GROUPED_MEMB_INC  = NO
    FORCE_LOCAL_INCLUDES   = NO
    INLINE_INFO            = YES
    SORT_MEMBER_DOCS       = YES
    SORT_BRIEF_DOCS        = NO
    SORT_MEMBERS_CTORS_1ST = NO
    SORT_GROUP_NAMES       = NO
    SORT_BY_SCOPE_NAME     = NO
    STRICT_PROTO_MATCHING  = NO
    GENERATE_TODOLIST      = YES
    GENERATE_TESTLIST      = YES
    GENERATE_BUGLIST       = YES
    GENERATE_DEPRECATEDLIST= YES
    ENABLED_SECTIONS       = 
    MAX_INITIALIZER_LINES  = 30
    SHOW_USED_FILES        = YES
    SHOW_FILES             = YES
    SHOW_NAMESPACES        = YES
    FILE_VERSION_FILTER    = 
    LAYOUT_FILE            = 
    CITE_BIB_FILES         = 
    QUIET                  = NO
    WARNINGS               = YES
    WARN_IF_UNDOCUMENTED   = YES
    WARN_IF_DOC_ERROR      = YES
    WARN_NO_PARAMDOC       = NO
    WARN_AS_ERROR          = NO
    WARN_FORMAT            = "$file:$line: $text"
    WARN_LOGFILE           = 
    INPUT                  = "../SignalIntegrity/"
    INPUT_ENCODING         = UTF-8
    FILE_PATTERNS          = 
    RECURSIVE              = YES
    EXCLUDE                = 
    EXCLUDE_SYMLINKS       = NO
    EXCLUDE_PATTERNS       = 
    EXCLUDE_SYMBOLS        = 
    EXAMPLE_PATH           = 
    EXAMPLE_PATTERNS       = 
    EXAMPLE_RECURSIVE      = NO
    IMAGE_PATH             = 
    INPUT_FILTER           = ~/Work/PySI/Doc/doxypy.py
    FILTER_PATTERNS        = 
    FILTER_SOURCE_FILES    = NO
    FILTER_SOURCE_PATTERNS = 
    USE_MDFILE_AS_MAINPAGE = 
    SOURCE_BROWSER         = YES
    INLINE_SOURCES         = NO
    STRIP_CODE_COMMENTS    = YES
    REFERENCED_BY_RELATION = NO
    REFERENCES_RELATION    = NO
    REFERENCES_LINK_SOURCE = YES
    SOURCE_TOOLTIPS        = YES
    USE_HTAGS              = NO
    VERBATIM_HEADERS       = YES
    CLANG_ASSISTED_PARSING = NO
    CLANG_OPTIONS          = 
    ALPHABETICAL_INDEX     = YES
    COLS_IN_ALPHA_INDEX    = 5
    IGNORE_PREFIX          = 
    GENERATE_HTML          = YES
    HTML_OUTPUT            = xhtml
    HTML_FILE_EXTENSION    = .xhtml
    HTML_HEADER            = 
    HTML_FOOTER            = 
    HTML_STYLESHEET        = 
    HTML_EXTRA_STYLESHEET  = 
    HTML_EXTRA_FILES       = 
    HTML_COLORSTYLE_HUE    = 220
    HTML_COLORSTYLE_SAT    = 100
    HTML_COLORSTYLE_GAMMA  = 80
    HTML_TIMESTAMP         = NO
    HTML_DYNAMIC_SECTIONS  = NO
    HTML_INDEX_NUM_ENTRIES = 100
    GENERATE_DOCSET        = NO
    DOCSET_FEEDNAME        = "Doxygen generated docs"
    DOCSET_BUNDLE_ID       = org.doxygen.Project
    DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
    DOCSET_PUBLISHER_NAME  = Publisher
    GENERATE_HTMLHELP      = NO
    CHM_FILE               = 
    HHC_LOCATION           = 
    GENERATE_CHI           = NO
    CHM_INDEX_ENCODING     = 
    BINARY_TOC             = NO
    TOC_EXPAND             = NO
    GENERATE_QHP           = NO
    QCH_FILE               = 
    QHP_NAMESPACE          = org.doxygen.Project
    QHP_VIRTUAL_FOLDER     = doc
    QHP_CUST_FILTER_NAME   = 
    QHP_CUST_FILTER_ATTRS  = 
    QHP_SECT_FILTER_ATTRS  = 
    QHG_LOCATION           = 
    GENERATE_ECLIPSEHELP   = NO
    ECLIPSE_DOC_ID         = org.doxygen.Project
    DISABLE_INDEX          = NO
    GENERATE_TREEVIEW      = NO
    ENUM_VALUES_PER_LINE   = 4
    TREEVIEW_WIDTH         = 250
    EXT_LINKS_IN_WINDOW    = NO
    FORMULA_FONTSIZE       = 10
    FORMULA_TRANSPARENT    = YES
    USE_MATHJAX            = NO
    MATHJAX_FORMAT         = HTML-CSS
    MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
    MATHJAX_EXTENSIONS     = 
    MATHJAX_CODEFILE       = 
    SEARCHENGINE           = YES
    SERVER_BASED_SEARCH    = NO
    EXTERNAL_SEARCH        = NO
    SEARCHENGINE_URL       = 
    SEARCHDATA_FILE        = searchdata.xml
    EXTERNAL_SEARCH_ID     = 
    EXTRA_SEARCH_MAPPINGS  = 
    GENERATE_LATEX         = YES
    LATEX_OUTPUT           = latex
    LATEX_CMD_NAME         = latex
    MAKEINDEX_CMD_NAME     = makeindex
    COMPACT_LATEX          = NO
    PAPER_TYPE             = letter
    EXTRA_PACKAGES         = 
    LATEX_HEADER           = 
    LATEX_FOOTER           = 
    LATEX_EXTRA_STYLESHEET = 
    LATEX_EXTRA_FILES      = 
    PDF_HYPERLINKS         = YES
    USE_PDFLATEX           = YES
    LATEX_BATCHMODE        = NO
    LATEX_HIDE_INDICES     = NO
    LATEX_SOURCE_CODE      = NO
    LATEX_BIB_STYLE        = plain
    LATEX_TIMESTAMP        = NO
    GENERATE_RTF           = NO
    RTF_OUTPUT             = rtf
    COMPACT_RTF            = NO
    RTF_HYPERLINKS         = NO
    RTF_STYLESHEET_FILE    = 
    RTF_EXTENSIONS_FILE    = 
    RTF_SOURCE_CODE        = NO
    GENERATE_MAN           = NO
    MAN_OUTPUT             = man
    MAN_EXTENSION          = .3
    MAN_SUBDIR             = 
    MAN_LINKS              = NO
    GENERATE_XML           = NO
    XML_OUTPUT             = xml
    XML_PROGRAMLISTING     = YES
    GENERATE_DOCBOOK       = NO
    DOCBOOK_OUTPUT         = docbook
    DOCBOOK_PROGRAMLISTING = NO
    GENERATE_AUTOGEN_DEF   = NO
    GENERATE_PERLMOD       = NO
    PERLMOD_LATEX          = NO
    PERLMOD_PRETTY         = YES
    PERLMOD_MAKEVAR_PREFIX = 
    ENABLE_PREPROCESSING   = YES
    MACRO_EXPANSION        = NO
    EXPAND_ONLY_PREDEF     = NO
    SEARCH_INCLUDES        = YES
    INCLUDE_PATH           = 
    INCLUDE_FILE_PATTERNS  = 
    PREDEFINED             = 
    EXPAND_AS_DEFINED      = 
    SKIP_FUNCTION_MACROS   = YES
    TAGFILES               = 
    GENERATE_TAGFILE       = 
    ALLEXTERNALS           = NO
    EXTERNAL_GROUPS        = YES
    EXTERNAL_PAGES         = YES
    PERL_PATH              = /usr/bin/perl
    CLASS_DIAGRAMS         = YES
    MSCGEN_PATH            = 
    DIA_PATH               = 
    HIDE_UNDOC_RELATIONS   = NO
    HAVE_DOT               = YES
    DOT_NUM_THREADS        = 0
    DOT_FONTNAME           = Helvetica
    DOT_FONTSIZE           = 10
    DOT_FONTPATH           = 
    CLASS_GRAPH            = YES
    COLLABORATION_GRAPH    = YES
    GROUP_GRAPHS           = YES
    UML_LOOK               = YES
    UML_LIMIT_NUM_FIELDS   = 10
    TEMPLATE_RELATIONS     = YES
    INCLUDE_GRAPH          = YES
    INCLUDED_BY_GRAPH      = YES
    CALL_GRAPH             = NO
    CALLER_GRAPH           = NO
    GRAPHICAL_HIERARCHY    = YES
    DIRECTORY_GRAPH        = YES
    DOT_IMAGE_FORMAT       = svg
    INTERACTIVE_SVG        = NO
    DOT_PATH               = 
    DOTFILE_DIRS           = 
    MSCFILE_DIRS           = 
    DIAFILE_DIRS           = 
    PLANTUML_JAR_PATH      = 
    PLANTUML_INCLUDE_PATH  = 
    DOT_GRAPH_MAX_NODES    = 50
    MAX_DOT_GRAPH_DEPTH    = 0
    DOT_TRANSPARENT        = NO
    DOT_MULTI_TARGETS      = NO
    GENERATE_LEGEND        = YES
    DOT_CLEANUP            = YES
    

0 个答案:

没有答案