ia64/xen-unstable

changeset 6786:64d6de1ea743

"Added."
author ewan@linford.intra
date Sun Sep 11 21:40:15 2005 +0100 (2005-09-11)
parents 89a842453d77
children bcbd2d2c1068
files docs/Doxyfile docs/Doxyfilter docs/pythfilter.py tools/python/pylintrc tools/python/xen/sv/DomInfo.py tools/python/xen/xend/XendVnet.py tools/python/xen/xend/scheduler.py
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/docs/Doxyfile	Sun Sep 11 21:40:15 2005 +0100
     1.3 @@ -0,0 +1,1218 @@
     1.4 +# Doxyfile 1.4.2
     1.5 +
     1.6 +# This file describes the settings to be used by the documentation system
     1.7 +# doxygen (www.doxygen.org) for a project
     1.8 +#
     1.9 +# All text after a hash (#) is considered a comment and will be ignored
    1.10 +# The format is:
    1.11 +#       TAG = value [value, ...]
    1.12 +# For lists items can also be appended using:
    1.13 +#       TAG += value [value, ...]
    1.14 +# Values that contain spaces should be placed between quotes (" ")
    1.15 +
    1.16 +#---------------------------------------------------------------------------
    1.17 +# Project related configuration options
    1.18 +#---------------------------------------------------------------------------
    1.19 +
    1.20 +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
    1.21 +# by quotes) that should identify the project.
    1.22 +
    1.23 +PROJECT_NAME           = Xen Python Tools
    1.24 +
    1.25 +# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
    1.26 +# This could be handy for archiving the generated documentation or 
    1.27 +# if some version control system is used.
    1.28 +
    1.29 +PROJECT_NUMBER         = 
    1.30 +
    1.31 +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
    1.32 +# base path where the generated documentation will be put. 
    1.33 +# If a relative path is entered, it will be relative to the location 
    1.34 +# where doxygen was started. If left blank the current directory will be used.
    1.35 +
    1.36 +OUTPUT_DIRECTORY       = api/tools/python
    1.37 +
    1.38 +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
    1.39 +# 4096 sub-directories (in 2 levels) under the output directory of each output 
    1.40 +# format and will distribute the generated files over these directories. 
    1.41 +# Enabling this option can be useful when feeding doxygen a huge amount of 
    1.42 +# source files, where putting all generated files in the same directory would 
    1.43 +# otherwise cause performance problems for the file system.
    1.44 +
    1.45 +CREATE_SUBDIRS         = NO
    1.46 +
    1.47 +# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
    1.48 +# documentation generated by doxygen is written. Doxygen will use this 
    1.49 +# information to generate all constant output in the proper language. 
    1.50 +# The default language is English, other supported languages are: 
    1.51 +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
    1.52 +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
    1.53 +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
    1.54 +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
    1.55 +# Swedish, and Ukrainian.
    1.56 +
    1.57 +OUTPUT_LANGUAGE        = English
    1.58 +
    1.59 +# This tag can be used to specify the encoding used in the generated output. 
    1.60 +# The encoding is not always determined by the language that is chosen, 
    1.61 +# but also whether or not the output is meant for Windows or non-Windows users. 
    1.62 +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
    1.63 +# forces the Windows encoding (this is the default for the Windows binary), 
    1.64 +# whereas setting the tag to NO uses a Unix-style encoding (the default for 
    1.65 +# all platforms other than Windows).
    1.66 +
    1.67 +USE_WINDOWS_ENCODING   = NO
    1.68 +
    1.69 +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
    1.70 +# include brief member descriptions after the members that are listed in 
    1.71 +# the file and class documentation (similar to JavaDoc). 
    1.72 +# Set to NO to disable this.
    1.73 +
    1.74 +BRIEF_MEMBER_DESC      = YES
    1.75 +
    1.76 +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
    1.77 +# the brief description of a member or function before the detailed description. 
    1.78 +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
    1.79 +# brief descriptions will be completely suppressed.
    1.80 +
    1.81 +REPEAT_BRIEF           = YES
    1.82 +
    1.83 +# This tag implements a quasi-intelligent brief description abbreviator 
    1.84 +# that is used to form the text in various listings. Each string 
    1.85 +# in this list, if found as the leading text of the brief description, will be 
    1.86 +# stripped from the text and the result after processing the whole list, is 
    1.87 +# used as the annotated text. Otherwise, the brief description is used as-is. 
    1.88 +# If left blank, the following values are used ("$name" is automatically 
    1.89 +# replaced with the name of the entity): "The $name class" "The $name widget" 
    1.90 +# "The $name file" "is" "provides" "specifies" "contains" 
    1.91 +# "represents" "a" "an" "the"
    1.92 +
    1.93 +ABBREVIATE_BRIEF       = 
    1.94 +
    1.95 +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
    1.96 +# Doxygen will generate a detailed section even if there is only a brief 
    1.97 +# description.
    1.98 +
    1.99 +ALWAYS_DETAILED_SEC    = NO
   1.100 +
   1.101 +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
   1.102 +# inherited members of a class in the documentation of that class as if those 
   1.103 +# members were ordinary class members. Constructors, destructors and assignment 
   1.104 +# operators of the base classes will not be shown.
   1.105 +
   1.106 +INLINE_INHERITED_MEMB  = NO
   1.107 +
   1.108 +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
   1.109 +# path before files name in the file list and in the header files. If set 
   1.110 +# to NO the shortest path that makes the file name unique will be used.
   1.111 +
   1.112 +FULL_PATH_NAMES        = YES
   1.113 +
   1.114 +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
   1.115 +# can be used to strip a user-defined part of the path. Stripping is 
   1.116 +# only done if one of the specified strings matches the left-hand part of 
   1.117 +# the path. The tag can be used to show relative paths in the file list. 
   1.118 +# If left blank the directory from which doxygen is run is used as the 
   1.119 +# path to strip.
   1.120 +
   1.121 +STRIP_FROM_PATH        = 
   1.122 +
   1.123 +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
   1.124 +# the path mentioned in the documentation of a class, which tells 
   1.125 +# the reader which header file to include in order to use a class. 
   1.126 +# If left blank only the name of the header file containing the class 
   1.127 +# definition is used. Otherwise one should specify the include paths that 
   1.128 +# are normally passed to the compiler using the -I flag.
   1.129 +
   1.130 +STRIP_FROM_INC_PATH    = 
   1.131 +
   1.132 +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
   1.133 +# (but less readable) file names. This can be useful is your file systems 
   1.134 +# doesn't support long names like on DOS, Mac, or CD-ROM.
   1.135 +
   1.136 +SHORT_NAMES            = NO
   1.137 +
   1.138 +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
   1.139 +# will interpret the first line (until the first dot) of a JavaDoc-style 
   1.140 +# comment as the brief description. If set to NO, the JavaDoc 
   1.141 +# comments will behave just like the Qt-style comments (thus requiring an 
   1.142 +# explicit @brief command for a brief description.
   1.143 +
   1.144 +JAVADOC_AUTOBRIEF      = YES
   1.145 +
   1.146 +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
   1.147 +# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
   1.148 +# comments) as a brief description. This used to be the default behaviour. 
   1.149 +# The new default is to treat a multi-line C++ comment block as a detailed 
   1.150 +# description. Set this tag to YES if you prefer the old behaviour instead.
   1.151 +
   1.152 +MULTILINE_CPP_IS_BRIEF = NO
   1.153 +
   1.154 +# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
   1.155 +# will output the detailed description near the top, like JavaDoc.
   1.156 +# If set to NO, the detailed description appears after the member 
   1.157 +# documentation.
   1.158 +
   1.159 +DETAILS_AT_TOP         = YES
   1.160 +
   1.161 +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
   1.162 +# member inherits the documentation from any documented member that it 
   1.163 +# re-implements.
   1.164 +
   1.165 +INHERIT_DOCS           = YES
   1.166 +
   1.167 +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
   1.168 +# tag is set to YES, then doxygen will reuse the documentation of the first 
   1.169 +# member in the group (if any) for the other members of the group. By default 
   1.170 +# all members of a group must be documented explicitly.
   1.171 +
   1.172 +DISTRIBUTE_GROUP_DOC   = NO
   1.173 +
   1.174 +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
   1.175 +# a new page for each member. If set to NO, the documentation of a member will 
   1.176 +# be part of the file/class/namespace that contains it.
   1.177 +
   1.178 +SEPARATE_MEMBER_PAGES  = NO
   1.179 +
   1.180 +# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
   1.181 +# Doxygen uses this value to replace tabs by spaces in code fragments.
   1.182 +
   1.183 +TAB_SIZE               = 8
   1.184 +
   1.185 +# This tag can be used to specify a number of aliases that acts 
   1.186 +# as commands in the documentation. An alias has the form "name=value". 
   1.187 +# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
   1.188 +# put the command \sideeffect (or @sideeffect) in the documentation, which 
   1.189 +# will result in a user-defined paragraph with heading "Side Effects:". 
   1.190 +# You can put \n's in the value part of an alias to insert newlines.
   1.191 +
   1.192 +ALIASES                = 
   1.193 +
   1.194 +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
   1.195 +# sources only. Doxygen will then generate output that is more tailored for C. 
   1.196 +# For instance, some of the names that are used will be different. The list 
   1.197 +# of all members will be omitted, etc.
   1.198 +
   1.199 +OPTIMIZE_OUTPUT_FOR_C  = NO
   1.200 +
   1.201 +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
   1.202 +# only. Doxygen will then generate output that is more tailored for Java. 
   1.203 +# For instance, namespaces will be presented as packages, qualified scopes 
   1.204 +# will look different, etc.
   1.205 +
   1.206 +OPTIMIZE_OUTPUT_JAVA   = YES
   1.207 +
   1.208 +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
   1.209 +# the same type (for instance a group of public functions) to be put as a 
   1.210 +# subgroup of that type (e.g. under the Public Functions section). Set it to 
   1.211 +# NO to prevent subgrouping. Alternatively, this can be done per class using 
   1.212 +# the \nosubgrouping command.
   1.213 +
   1.214 +SUBGROUPING            = YES
   1.215 +
   1.216 +#---------------------------------------------------------------------------
   1.217 +# Build related configuration options
   1.218 +#---------------------------------------------------------------------------
   1.219 +
   1.220 +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
   1.221 +# documentation are documented, even if no documentation was available. 
   1.222 +# Private class members and static file members will be hidden unless 
   1.223 +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
   1.224 +
   1.225 +EXTRACT_ALL            = YES
   1.226 +
   1.227 +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
   1.228 +# will be included in the documentation.
   1.229 +
   1.230 +EXTRACT_PRIVATE        = YES
   1.231 +
   1.232 +# If the EXTRACT_STATIC tag is set to YES all static members of a file 
   1.233 +# will be included in the documentation.
   1.234 +
   1.235 +EXTRACT_STATIC         = YES
   1.236 +
   1.237 +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
   1.238 +# defined locally in source files will be included in the documentation. 
   1.239 +# If set to NO only classes defined in header files are included.
   1.240 +
   1.241 +EXTRACT_LOCAL_CLASSES  = YES
   1.242 +
   1.243 +# This flag is only useful for Objective-C code. When set to YES local 
   1.244 +# methods, which are defined in the implementation section but not in 
   1.245 +# the interface are included in the documentation. 
   1.246 +# If set to NO (the default) only methods in the interface are included.
   1.247 +
   1.248 +EXTRACT_LOCAL_METHODS  = NO
   1.249 +
   1.250 +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
   1.251 +# undocumented members of documented classes, files or namespaces. 
   1.252 +# If set to NO (the default) these members will be included in the 
   1.253 +# various overviews, but no documentation section is generated. 
   1.254 +# This option has no effect if EXTRACT_ALL is enabled.
   1.255 +
   1.256 +HIDE_UNDOC_MEMBERS     = NO
   1.257 +
   1.258 +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
   1.259 +# undocumented classes that are normally visible in the class hierarchy. 
   1.260 +# If set to NO (the default) these classes will be included in the various 
   1.261 +# overviews. This option has no effect if EXTRACT_ALL is enabled.
   1.262 +
   1.263 +HIDE_UNDOC_CLASSES     = NO
   1.264 +
   1.265 +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
   1.266 +# friend (class|struct|union) declarations. 
   1.267 +# If set to NO (the default) these declarations will be included in the 
   1.268 +# documentation.
   1.269 +
   1.270 +HIDE_FRIEND_COMPOUNDS  = NO
   1.271 +
   1.272 +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
   1.273 +# documentation blocks found inside the body of a function. 
   1.274 +# If set to NO (the default) these blocks will be appended to the 
   1.275 +# function's detailed documentation block.
   1.276 +
   1.277 +HIDE_IN_BODY_DOCS      = NO
   1.278 +
   1.279 +# The INTERNAL_DOCS tag determines if documentation 
   1.280 +# that is typed after a \internal command is included. If the tag is set 
   1.281 +# to NO (the default) then the documentation will be excluded. 
   1.282 +# Set it to YES to include the internal documentation.
   1.283 +
   1.284 +INTERNAL_DOCS          = NO
   1.285 +
   1.286 +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
   1.287 +# file names in lower-case letters. If set to YES upper-case letters are also 
   1.288 +# allowed. This is useful if you have classes or files whose names only differ 
   1.289 +# in case and if your file system supports case sensitive file names. Windows 
   1.290 +# and Mac users are advised to set this option to NO.
   1.291 +
   1.292 +CASE_SENSE_NAMES       = YES
   1.293 +
   1.294 +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
   1.295 +# will show members with their full class and namespace scopes in the 
   1.296 +# documentation. If set to YES the scope will be hidden.
   1.297 +
   1.298 +HIDE_SCOPE_NAMES       = NO
   1.299 +
   1.300 +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
   1.301 +# will put a list of the files that are included by a file in the documentation 
   1.302 +# of that file.
   1.303 +
   1.304 +SHOW_INCLUDE_FILES     = YES
   1.305 +
   1.306 +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
   1.307 +# is inserted in the documentation for inline members.
   1.308 +
   1.309 +INLINE_INFO            = YES
   1.310 +
   1.311 +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
   1.312 +# will sort the (detailed) documentation of file and class members 
   1.313 +# alphabetically by member name. If set to NO the members will appear in 
   1.314 +# declaration order.
   1.315 +
   1.316 +SORT_MEMBER_DOCS       = YES
   1.317 +
   1.318 +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
   1.319 +# brief documentation of file, namespace and class members alphabetically 
   1.320 +# by member name. If set to NO (the default) the members will appear in 
   1.321 +# declaration order.
   1.322 +
   1.323 +SORT_BRIEF_DOCS        = NO
   1.324 +
   1.325 +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
   1.326 +# sorted by fully-qualified names, including namespaces. If set to 
   1.327 +# NO (the default), the class list will be sorted only by class name, 
   1.328 +# not including the namespace part. 
   1.329 +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
   1.330 +# Note: This option applies only to the class list, not to the 
   1.331 +# alphabetical list.
   1.332 +
   1.333 +SORT_BY_SCOPE_NAME     = NO
   1.334 +
   1.335 +# The GENERATE_TODOLIST tag can be used to enable (YES) or 
   1.336 +# disable (NO) the todo list. This list is created by putting \todo 
   1.337 +# commands in the documentation.
   1.338 +
   1.339 +GENERATE_TODOLIST      = YES
   1.340 +
   1.341 +# The GENERATE_TESTLIST tag can be used to enable (YES) or 
   1.342 +# disable (NO) the test list. This list is created by putting \test 
   1.343 +# commands in the documentation.
   1.344 +
   1.345 +GENERATE_TESTLIST      = YES
   1.346 +
   1.347 +# The GENERATE_BUGLIST tag can be used to enable (YES) or 
   1.348 +# disable (NO) the bug list. This list is created by putting \bug 
   1.349 +# commands in the documentation.
   1.350 +
   1.351 +GENERATE_BUGLIST       = YES
   1.352 +
   1.353 +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
   1.354 +# disable (NO) the deprecated list. This list is created by putting 
   1.355 +# \deprecated commands in the documentation.
   1.356 +
   1.357 +GENERATE_DEPRECATEDLIST= YES
   1.358 +
   1.359 +# The ENABLED_SECTIONS tag can be used to enable conditional 
   1.360 +# documentation sections, marked by \if sectionname ... \endif.
   1.361 +
   1.362 +ENABLED_SECTIONS       = 
   1.363 +
   1.364 +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
   1.365 +# the initial value of a variable or define consists of for it to appear in 
   1.366 +# the documentation. If the initializer consists of more lines than specified 
   1.367 +# here it will be hidden. Use a value of 0 to hide initializers completely. 
   1.368 +# The appearance of the initializer of individual variables and defines in the 
   1.369 +# documentation can be controlled using \showinitializer or \hideinitializer 
   1.370 +# command in the documentation regardless of this setting.
   1.371 +
   1.372 +MAX_INITIALIZER_LINES  = 30
   1.373 +
   1.374 +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
   1.375 +# at the bottom of the documentation of classes and structs. If set to YES the 
   1.376 +# list will mention the files that were used to generate the documentation.
   1.377 +
   1.378 +SHOW_USED_FILES        = YES
   1.379 +
   1.380 +# If the sources in your project are distributed over multiple directories 
   1.381 +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
   1.382 +# in the documentation.
   1.383 +
   1.384 +SHOW_DIRECTORIES       = YES
   1.385 +
   1.386 +# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
   1.387 +# doxygen should invoke to get the current version for each file (typically from the 
   1.388 +# version control system). Doxygen will invoke the program by executing (via 
   1.389 +# popen()) the command <command> <input-file>, where <command> is the value of 
   1.390 +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
   1.391 +# provided by doxygen. Whatever the progam writes to standard output 
   1.392 +# is used as the file version. See the manual for examples.
   1.393 +
   1.394 +FILE_VERSION_FILTER    = 
   1.395 +
   1.396 +#---------------------------------------------------------------------------
   1.397 +# configuration options related to warning and progress messages
   1.398 +#---------------------------------------------------------------------------
   1.399 +
   1.400 +# The QUIET tag can be used to turn on/off the messages that are generated 
   1.401 +# by doxygen. Possible values are YES and NO. If left blank NO is used.
   1.402 +
   1.403 +QUIET                  = YES
   1.404 +
   1.405 +# The WARNINGS tag can be used to turn on/off the warning messages that are 
   1.406 +# generated by doxygen. Possible values are YES and NO. If left blank 
   1.407 +# NO is used.
   1.408 +
   1.409 +WARNINGS               = YES
   1.410 +
   1.411 +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
   1.412 +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
   1.413 +# automatically be disabled.
   1.414 +
   1.415 +WARN_IF_UNDOCUMENTED   = YES
   1.416 +
   1.417 +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
   1.418 +# potential errors in the documentation, such as not documenting some 
   1.419 +# parameters in a documented function, or documenting parameters that 
   1.420 +# don't exist or using markup commands wrongly.
   1.421 +
   1.422 +WARN_IF_DOC_ERROR      = YES
   1.423 +
   1.424 +# This WARN_NO_PARAMDOC option can be abled to get warnings for 
   1.425 +# functions that are documented, but have no documentation for their parameters 
   1.426 +# or return value. If set to NO (the default) doxygen will only warn about 
   1.427 +# wrong or incomplete parameter documentation, but not about the absence of 
   1.428 +# documentation.
   1.429 +
   1.430 +WARN_NO_PARAMDOC       = NO
   1.431 +
   1.432 +# The WARN_FORMAT tag determines the format of the warning messages that 
   1.433 +# doxygen can produce. The string should contain the $file, $line, and $text 
   1.434 +# tags, which will be replaced by the file and line number from which the 
   1.435 +# warning originated and the warning text. Optionally the format may contain 
   1.436 +# $version, which will be replaced by the version of the file (if it could 
   1.437 +# be obtained via FILE_VERSION_FILTER)
   1.438 +
   1.439 +WARN_FORMAT            = "$file:$line: $text"
   1.440 +
   1.441 +# The WARN_LOGFILE tag can be used to specify a file to which warning 
   1.442 +# and error messages should be written. If left blank the output is written 
   1.443 +# to stderr.
   1.444 +
   1.445 +WARN_LOGFILE           = 
   1.446 +
   1.447 +#---------------------------------------------------------------------------
   1.448 +# configuration options related to the input files
   1.449 +#---------------------------------------------------------------------------
   1.450 +
   1.451 +# The INPUT tag can be used to specify the files and/or directories that contain 
   1.452 +# documented source files. You may enter file names like "myfile.cpp" or 
   1.453 +# directories like "/usr/src/myproject". Separate the files or directories 
   1.454 +# with spaces.
   1.455 +
   1.456 +INPUT                  = ../tools/python/xen/
   1.457 +
   1.458 +# If the value of the INPUT tag contains directories, you can use the 
   1.459 +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
   1.460 +# and *.h) to filter out the source-files in the directories. If left 
   1.461 +# blank the following patterns are tested: 
   1.462 +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
   1.463 +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
   1.464 +
   1.465 +FILE_PATTERNS          = *.py *.c
   1.466 +
   1.467 +# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
   1.468 +# should be searched for input files as well. Possible values are YES and NO. 
   1.469 +# If left blank NO is used.
   1.470 +
   1.471 +RECURSIVE              = YES
   1.472 +
   1.473 +# The EXCLUDE tag can be used to specify files and/or directories that should 
   1.474 +# excluded from the INPUT source files. This way you can easily exclude a 
   1.475 +# subdirectory from a directory tree whose root is specified with the INPUT tag.
   1.476 +
   1.477 +EXCLUDE                = 
   1.478 +
   1.479 +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
   1.480 +# directories that are symbolic links (a Unix filesystem feature) are excluded 
   1.481 +# from the input.
   1.482 +
   1.483 +EXCLUDE_SYMLINKS       = NO
   1.484 +
   1.485 +# If the value of the INPUT tag contains directories, you can use the 
   1.486 +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
   1.487 +# certain files from those directories.
   1.488 +
   1.489 +EXCLUDE_PATTERNS       = 
   1.490 +
   1.491 +# The EXAMPLE_PATH tag can be used to specify one or more files or 
   1.492 +# directories that contain example code fragments that are included (see 
   1.493 +# the \include command).
   1.494 +
   1.495 +EXAMPLE_PATH           = 
   1.496 +
   1.497 +# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
   1.498 +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
   1.499 +# and *.h) to filter out the source-files in the directories. If left 
   1.500 +# blank all files are included.
   1.501 +
   1.502 +EXAMPLE_PATTERNS       = 
   1.503 +
   1.504 +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
   1.505 +# searched for input files to be used with the \include or \dontinclude 
   1.506 +# commands irrespective of the value of the RECURSIVE tag. 
   1.507 +# Possible values are YES and NO. If left blank NO is used.
   1.508 +
   1.509 +EXAMPLE_RECURSIVE      = NO
   1.510 +
   1.511 +# The IMAGE_PATH tag can be used to specify one or more files or 
   1.512 +# directories that contain image that are included in the documentation (see 
   1.513 +# the \image command).
   1.514 +
   1.515 +IMAGE_PATH             = 
   1.516 +
   1.517 +# The INPUT_FILTER tag can be used to specify a program that doxygen should 
   1.518 +# invoke to filter for each input file. Doxygen will invoke the filter program 
   1.519 +# by executing (via popen()) the command <filter> <input-file>, where <filter> 
   1.520 +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
   1.521 +# input file. Doxygen will then use the output that the filter program writes 
   1.522 +# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
   1.523 +# ignored.
   1.524 +
   1.525 +INPUT_FILTER           = "sh ./Doxyfilter"
   1.526 +
   1.527 +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
   1.528 +# basis.  Doxygen will compare the file name with each pattern and apply the 
   1.529 +# filter if there is a match.  The filters are a list of the form: 
   1.530 +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
   1.531 +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
   1.532 +# is applied to all files.
   1.533 +
   1.534 +FILTER_PATTERNS        = 
   1.535 +
   1.536 +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
   1.537 +# INPUT_FILTER) will be used to filter the input files when producing source 
   1.538 +# files to browse (i.e. when SOURCE_BROWSER is set to YES).
   1.539 +
   1.540 +FILTER_SOURCE_FILES    = YES
   1.541 +
   1.542 +#---------------------------------------------------------------------------
   1.543 +# configuration options related to source browsing
   1.544 +#---------------------------------------------------------------------------
   1.545 +
   1.546 +# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
   1.547 +# be generated. Documented entities will be cross-referenced with these sources. 
   1.548 +# Note: To get rid of all source code in the generated output, make sure also 
   1.549 +# VERBATIM_HEADERS is set to NO.
   1.550 +
   1.551 +SOURCE_BROWSER         = NO
   1.552 +
   1.553 +# Setting the INLINE_SOURCES tag to YES will include the body 
   1.554 +# of functions and classes directly in the documentation.
   1.555 +
   1.556 +INLINE_SOURCES         = NO
   1.557 +
   1.558 +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
   1.559 +# doxygen to hide any special comment blocks from generated source code 
   1.560 +# fragments. Normal C and C++ comments will always remain visible.
   1.561 +
   1.562 +STRIP_CODE_COMMENTS    = YES
   1.563 +
   1.564 +# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
   1.565 +# then for each documented function all documented 
   1.566 +# functions referencing it will be listed.
   1.567 +
   1.568 +REFERENCED_BY_RELATION = YES
   1.569 +
   1.570 +# If the REFERENCES_RELATION tag is set to YES (the default) 
   1.571 +# then for each documented function all documented entities 
   1.572 +# called/used by that function will be listed.
   1.573 +
   1.574 +REFERENCES_RELATION    = YES
   1.575 +
   1.576 +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
   1.577 +# will generate a verbatim copy of the header file for each class for 
   1.578 +# which an include is specified. Set to NO to disable this.
   1.579 +
   1.580 +VERBATIM_HEADERS       = YES
   1.581 +
   1.582 +#---------------------------------------------------------------------------
   1.583 +# configuration options related to the alphabetical class index
   1.584 +#---------------------------------------------------------------------------
   1.585 +
   1.586 +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
   1.587 +# of all compounds will be generated. Enable this if the project 
   1.588 +# contains a lot of classes, structs, unions or interfaces.
   1.589 +
   1.590 +ALPHABETICAL_INDEX     = NO
   1.591 +
   1.592 +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
   1.593 +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
   1.594 +# in which this list will be split (can be a number in the range [1..20])
   1.595 +
   1.596 +COLS_IN_ALPHA_INDEX    = 5
   1.597 +
   1.598 +# In case all classes in a project start with a common prefix, all 
   1.599 +# classes will be put under the same header in the alphabetical index. 
   1.600 +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
   1.601 +# should be ignored while generating the index headers.
   1.602 +
   1.603 +IGNORE_PREFIX          = 
   1.604 +
   1.605 +#---------------------------------------------------------------------------
   1.606 +# configuration options related to the HTML output
   1.607 +#---------------------------------------------------------------------------
   1.608 +
   1.609 +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
   1.610 +# generate HTML output.
   1.611 +
   1.612 +GENERATE_HTML          = YES
   1.613 +
   1.614 +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
   1.615 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
   1.616 +# put in front of it. If left blank `html' will be used as the default path.
   1.617 +
   1.618 +HTML_OUTPUT            = html
   1.619 +
   1.620 +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
   1.621 +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
   1.622 +# doxygen will generate files with .html extension.
   1.623 +
   1.624 +HTML_FILE_EXTENSION    = .html
   1.625 +
   1.626 +# The HTML_HEADER tag can be used to specify a personal HTML header for 
   1.627 +# each generated HTML page. If it is left blank doxygen will generate a 
   1.628 +# standard header.
   1.629 +
   1.630 +HTML_HEADER            = 
   1.631 +
   1.632 +# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
   1.633 +# each generated HTML page. If it is left blank doxygen will generate a 
   1.634 +# standard footer.
   1.635 +
   1.636 +HTML_FOOTER            = 
   1.637 +
   1.638 +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
   1.639 +# style sheet that is used by each HTML page. It can be used to 
   1.640 +# fine-tune the look of the HTML output. If the tag is left blank doxygen 
   1.641 +# will generate a default style sheet. Note that doxygen will try to copy 
   1.642 +# the style sheet file to the HTML output directory, so don't put your own 
   1.643 +# stylesheet in the HTML output directory as well, or it will be erased!
   1.644 +
   1.645 +HTML_STYLESHEET        = 
   1.646 +
   1.647 +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
   1.648 +# files or namespaces will be aligned in HTML using tables. If set to 
   1.649 +# NO a bullet list will be used.
   1.650 +
   1.651 +HTML_ALIGN_MEMBERS     = YES
   1.652 +
   1.653 +# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
   1.654 +# will be generated that can be used as input for tools like the 
   1.655 +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
   1.656 +# of the generated HTML documentation.
   1.657 +
   1.658 +GENERATE_HTMLHELP      = NO
   1.659 +
   1.660 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
   1.661 +# be used to specify the file name of the resulting .chm file. You 
   1.662 +# can add a path in front of the file if the result should not be 
   1.663 +# written to the html output directory.
   1.664 +
   1.665 +CHM_FILE               = 
   1.666 +
   1.667 +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
   1.668 +# be used to specify the location (absolute path including file name) of 
   1.669 +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
   1.670 +# the HTML help compiler on the generated index.hhp.
   1.671 +
   1.672 +HHC_LOCATION           = 
   1.673 +
   1.674 +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
   1.675 +# controls if a separate .chi index file is generated (YES) or that 
   1.676 +# it should be included in the master .chm file (NO).
   1.677 +
   1.678 +GENERATE_CHI           = NO
   1.679 +
   1.680 +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
   1.681 +# controls whether a binary table of contents is generated (YES) or a 
   1.682 +# normal table of contents (NO) in the .chm file.
   1.683 +
   1.684 +BINARY_TOC             = NO
   1.685 +
   1.686 +# The TOC_EXPAND flag can be set to YES to add extra items for group members 
   1.687 +# to the contents of the HTML help documentation and to the tree view.
   1.688 +
   1.689 +TOC_EXPAND             = NO
   1.690 +
   1.691 +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
   1.692 +# top of each HTML page. The value NO (the default) enables the index and 
   1.693 +# the value YES disables it.
   1.694 +
   1.695 +DISABLE_INDEX          = NO
   1.696 +
   1.697 +# This tag can be used to set the number of enum values (range [1..20]) 
   1.698 +# that doxygen will group on one line in the generated HTML documentation.
   1.699 +
   1.700 +ENUM_VALUES_PER_LINE   = 4
   1.701 +
   1.702 +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
   1.703 +# generated containing a tree-like index structure (just like the one that 
   1.704 +# is generated for HTML Help). For this to work a browser that supports 
   1.705 +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
   1.706 +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
   1.707 +# probably better off using the HTML help feature.
   1.708 +
   1.709 +GENERATE_TREEVIEW      = NO
   1.710 +
   1.711 +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
   1.712 +# used to set the initial width (in pixels) of the frame in which the tree 
   1.713 +# is shown.
   1.714 +
   1.715 +TREEVIEW_WIDTH         = 250
   1.716 +
   1.717 +#---------------------------------------------------------------------------
   1.718 +# configuration options related to the LaTeX output
   1.719 +#---------------------------------------------------------------------------
   1.720 +
   1.721 +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
   1.722 +# generate Latex output.
   1.723 +
   1.724 +GENERATE_LATEX         = YES
   1.725 +
   1.726 +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
   1.727 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
   1.728 +# put in front of it. If left blank `latex' will be used as the default path.
   1.729 +
   1.730 +LATEX_OUTPUT           = latex
   1.731 +
   1.732 +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
   1.733 +# invoked. If left blank `latex' will be used as the default command name.
   1.734 +
   1.735 +LATEX_CMD_NAME         = latex
   1.736 +
   1.737 +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
   1.738 +# generate index for LaTeX. If left blank `makeindex' will be used as the 
   1.739 +# default command name.
   1.740 +
   1.741 +MAKEINDEX_CMD_NAME     = makeindex
   1.742 +
   1.743 +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
   1.744 +# LaTeX documents. This may be useful for small projects and may help to 
   1.745 +# save some trees in general.
   1.746 +
   1.747 +COMPACT_LATEX          = NO
   1.748 +
   1.749 +# The PAPER_TYPE tag can be used to set the paper type that is used 
   1.750 +# by the printer. Possible values are: a4, a4wide, letter, legal and 
   1.751 +# executive. If left blank a4wide will be used.
   1.752 +
   1.753 +PAPER_TYPE             = a4wide
   1.754 +
   1.755 +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
   1.756 +# packages that should be included in the LaTeX output.
   1.757 +
   1.758 +EXTRA_PACKAGES         = 
   1.759 +
   1.760 +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
   1.761 +# the generated latex document. The header should contain everything until 
   1.762 +# the first chapter. If it is left blank doxygen will generate a 
   1.763 +# standard header. Notice: only use this tag if you know what you are doing!
   1.764 +
   1.765 +LATEX_HEADER           = 
   1.766 +
   1.767 +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
   1.768 +# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
   1.769 +# contain links (just like the HTML output) instead of page references 
   1.770 +# This makes the output suitable for online browsing using a pdf viewer.
   1.771 +
   1.772 +PDF_HYPERLINKS         = YES
   1.773 +
   1.774 +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
   1.775 +# plain latex in the generated Makefile. Set this option to YES to get a 
   1.776 +# higher quality PDF documentation.
   1.777 +
   1.778 +USE_PDFLATEX           = YES
   1.779 +
   1.780 +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
   1.781 +# command to the generated LaTeX files. This will instruct LaTeX to keep 
   1.782 +# running if errors occur, instead of asking the user for help. 
   1.783 +# This option is also used when generating formulas in HTML.
   1.784 +
   1.785 +LATEX_BATCHMODE        = NO
   1.786 +
   1.787 +# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
   1.788 +# include the index chapters (such as File Index, Compound Index, etc.) 
   1.789 +# in the output.
   1.790 +
   1.791 +LATEX_HIDE_INDICES     = NO
   1.792 +
   1.793 +#---------------------------------------------------------------------------
   1.794 +# configuration options related to the RTF output
   1.795 +#---------------------------------------------------------------------------
   1.796 +
   1.797 +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
   1.798 +# The RTF output is optimized for Word 97 and may not look very pretty with 
   1.799 +# other RTF readers or editors.
   1.800 +
   1.801 +GENERATE_RTF           = NO
   1.802 +
   1.803 +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
   1.804 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
   1.805 +# put in front of it. If left blank `rtf' will be used as the default path.
   1.806 +
   1.807 +RTF_OUTPUT             = rtf
   1.808 +
   1.809 +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
   1.810 +# RTF documents. This may be useful for small projects and may help to 
   1.811 +# save some trees in general.
   1.812 +
   1.813 +COMPACT_RTF            = NO
   1.814 +
   1.815 +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
   1.816 +# will contain hyperlink fields. The RTF file will 
   1.817 +# contain links (just like the HTML output) instead of page references. 
   1.818 +# This makes the output suitable for online browsing using WORD or other 
   1.819 +# programs which support those fields. 
   1.820 +# Note: wordpad (write) and others do not support links.
   1.821 +
   1.822 +RTF_HYPERLINKS         = NO
   1.823 +
   1.824 +# Load stylesheet definitions from file. Syntax is similar to doxygen's 
   1.825 +# config file, i.e. a series of assignments. You only have to provide 
   1.826 +# replacements, missing definitions are set to their default value.
   1.827 +
   1.828 +RTF_STYLESHEET_FILE    = 
   1.829 +
   1.830 +# Set optional variables used in the generation of an rtf document. 
   1.831 +# Syntax is similar to doxygen's config file.
   1.832 +
   1.833 +RTF_EXTENSIONS_FILE    = 
   1.834 +
   1.835 +#---------------------------------------------------------------------------
   1.836 +# configuration options related to the man page output
   1.837 +#---------------------------------------------------------------------------
   1.838 +
   1.839 +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
   1.840 +# generate man pages
   1.841 +
   1.842 +GENERATE_MAN           = NO
   1.843 +
   1.844 +# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
   1.845 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
   1.846 +# put in front of it. If left blank `man' will be used as the default path.
   1.847 +
   1.848 +MAN_OUTPUT             = man
   1.849 +
   1.850 +# The MAN_EXTENSION tag determines the extension that is added to 
   1.851 +# the generated man pages (default is the subroutine's section .3)
   1.852 +
   1.853 +MAN_EXTENSION          = .3
   1.854 +
   1.855 +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
   1.856 +# then it will generate one additional man file for each entity 
   1.857 +# documented in the real man page(s). These additional files 
   1.858 +# only source the real man page, but without them the man command 
   1.859 +# would be unable to find the correct page. The default is NO.
   1.860 +
   1.861 +MAN_LINKS              = NO
   1.862 +
   1.863 +#---------------------------------------------------------------------------
   1.864 +# configuration options related to the XML output
   1.865 +#---------------------------------------------------------------------------
   1.866 +
   1.867 +# If the GENERATE_XML tag is set to YES Doxygen will 
   1.868 +# generate an XML file that captures the structure of 
   1.869 +# the code including all documentation.
   1.870 +
   1.871 +GENERATE_XML           = NO
   1.872 +
   1.873 +# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
   1.874 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
   1.875 +# put in front of it. If left blank `xml' will be used as the default path.
   1.876 +
   1.877 +XML_OUTPUT             = xml
   1.878 +
   1.879 +# The XML_SCHEMA tag can be used to specify an XML schema, 
   1.880 +# which can be used by a validating XML parser to check the 
   1.881 +# syntax of the XML files.
   1.882 +
   1.883 +XML_SCHEMA             = 
   1.884 +
   1.885 +# The XML_DTD tag can be used to specify an XML DTD, 
   1.886 +# which can be used by a validating XML parser to check the 
   1.887 +# syntax of the XML files.
   1.888 +
   1.889 +XML_DTD                = 
   1.890 +
   1.891 +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
   1.892 +# dump the program listings (including syntax highlighting 
   1.893 +# and cross-referencing information) to the XML output. Note that 
   1.894 +# enabling this will significantly increase the size of the XML output.
   1.895 +
   1.896 +XML_PROGRAMLISTING     = YES
   1.897 +
   1.898 +#---------------------------------------------------------------------------
   1.899 +# configuration options for the AutoGen Definitions output
   1.900 +#---------------------------------------------------------------------------
   1.901 +
   1.902 +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
   1.903 +# generate an AutoGen Definitions (see autogen.sf.net) file 
   1.904 +# that captures the structure of the code including all 
   1.905 +# documentation. Note that this feature is still experimental 
   1.906 +# and incomplete at the moment.
   1.907 +
   1.908 +GENERATE_AUTOGEN_DEF   = NO
   1.909 +
   1.910 +#---------------------------------------------------------------------------
   1.911 +# configuration options related to the Perl module output
   1.912 +#---------------------------------------------------------------------------
   1.913 +
   1.914 +# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
   1.915 +# generate a Perl module file that captures the structure of 
   1.916 +# the code including all documentation. Note that this 
   1.917 +# feature is still experimental and incomplete at the 
   1.918 +# moment.
   1.919 +
   1.920 +GENERATE_PERLMOD       = NO
   1.921 +
   1.922 +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
   1.923 +# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
   1.924 +# to generate PDF and DVI output from the Perl module output.
   1.925 +
   1.926 +PERLMOD_LATEX          = NO
   1.927 +
   1.928 +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
   1.929 +# nicely formatted so it can be parsed by a human reader.  This is useful 
   1.930 +# if you want to understand what is going on.  On the other hand, if this 
   1.931 +# tag is set to NO the size of the Perl module output will be much smaller 
   1.932 +# and Perl will parse it just the same.
   1.933 +
   1.934 +PERLMOD_PRETTY         = YES
   1.935 +
   1.936 +# The names of the make variables in the generated doxyrules.make file 
   1.937 +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
   1.938 +# This is useful so different doxyrules.make files included by the same 
   1.939 +# Makefile don't overwrite each other's variables.
   1.940 +
   1.941 +PERLMOD_MAKEVAR_PREFIX = 
   1.942 +
   1.943 +#---------------------------------------------------------------------------
   1.944 +# Configuration options related to the preprocessor   
   1.945 +#---------------------------------------------------------------------------
   1.946 +
   1.947 +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
   1.948 +# evaluate all C-preprocessor directives found in the sources and include 
   1.949 +# files.
   1.950 +
   1.951 +ENABLE_PREPROCESSING   = YES
   1.952 +
   1.953 +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
   1.954 +# names in the source code. If set to NO (the default) only conditional 
   1.955 +# compilation will be performed. Macro expansion can be done in a controlled 
   1.956 +# way by setting EXPAND_ONLY_PREDEF to YES.
   1.957 +
   1.958 +MACRO_EXPANSION        = NO
   1.959 +
   1.960 +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
   1.961 +# then the macro expansion is limited to the macros specified with the 
   1.962 +# PREDEFINED and EXPAND_AS_PREDEFINED tags.
   1.963 +
   1.964 +EXPAND_ONLY_PREDEF     = NO
   1.965 +
   1.966 +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
   1.967 +# in the INCLUDE_PATH (see below) will be search if a #include is found.
   1.968 +
   1.969 +SEARCH_INCLUDES        = YES
   1.970 +
   1.971 +# The INCLUDE_PATH tag can be used to specify one or more directories that 
   1.972 +# contain include files that are not input files but should be processed by 
   1.973 +# the preprocessor.
   1.974 +
   1.975 +INCLUDE_PATH           = 
   1.976 +
   1.977 +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
   1.978 +# patterns (like *.h and *.hpp) to filter out the header-files in the 
   1.979 +# directories. If left blank, the patterns specified with FILE_PATTERNS will 
   1.980 +# be used.
   1.981 +
   1.982 +INCLUDE_FILE_PATTERNS  = 
   1.983 +
   1.984 +# The PREDEFINED tag can be used to specify one or more macro names that 
   1.985 +# are defined before the preprocessor is started (similar to the -D option of 
   1.986 +# gcc). The argument of the tag is a list of macros of the form: name 
   1.987 +# or name=definition (no spaces). If the definition and the = are 
   1.988 +# omitted =1 is assumed. To prevent a macro definition from being 
   1.989 +# undefined via #undef or recursively expanded use the := operator 
   1.990 +# instead of the = operator.
   1.991 +
   1.992 +PREDEFINED             = 
   1.993 +
   1.994 +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
   1.995 +# this tag can be used to specify a list of macro names that should be expanded. 
   1.996 +# The macro definition that is found in the sources will be used. 
   1.997 +# Use the PREDEFINED tag if you want to use a different macro definition.
   1.998 +
   1.999 +EXPAND_AS_DEFINED      = 
  1.1000 +
  1.1001 +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
  1.1002 +# doxygen's preprocessor will remove all function-like macros that are alone 
  1.1003 +# on a line, have an all uppercase name, and do not end with a semicolon. Such 
  1.1004 +# function macros are typically used for boiler-plate code, and will confuse 
  1.1005 +# the parser if not removed.
  1.1006 +
  1.1007 +SKIP_FUNCTION_MACROS   = YES
  1.1008 +
  1.1009 +#---------------------------------------------------------------------------
  1.1010 +# Configuration::additions related to external references   
  1.1011 +#---------------------------------------------------------------------------
  1.1012 +
  1.1013 +# The TAGFILES option can be used to specify one or more tagfiles. 
  1.1014 +# Optionally an initial location of the external documentation 
  1.1015 +# can be added for each tagfile. The format of a tag file without 
  1.1016 +# this location is as follows: 
  1.1017 +#   TAGFILES = file1 file2 ... 
  1.1018 +# Adding location for the tag files is done as follows: 
  1.1019 +#   TAGFILES = file1=loc1 "file2 = loc2" ... 
  1.1020 +# where "loc1" and "loc2" can be relative or absolute paths or 
  1.1021 +# URLs. If a location is present for each tag, the installdox tool 
  1.1022 +# does not have to be run to correct the links.
  1.1023 +# Note that each tag file must have a unique name
  1.1024 +# (where the name does NOT include the path)
  1.1025 +# If a tag file is not located in the directory in which doxygen 
  1.1026 +# is run, you must also specify the path to the tagfile here.
  1.1027 +
  1.1028 +TAGFILES               = 
  1.1029 +
  1.1030 +# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
  1.1031 +# a tag file that is based on the input files it reads.
  1.1032 +
  1.1033 +GENERATE_TAGFILE       = 
  1.1034 +
  1.1035 +# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
  1.1036 +# in the class index. If set to NO only the inherited external classes 
  1.1037 +# will be listed.
  1.1038 +
  1.1039 +ALLEXTERNALS           = NO
  1.1040 +
  1.1041 +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
  1.1042 +# in the modules index. If set to NO, only the current project's groups will 
  1.1043 +# be listed.
  1.1044 +
  1.1045 +EXTERNAL_GROUPS        = YES
  1.1046 +
  1.1047 +# The PERL_PATH should be the absolute path and name of the perl script 
  1.1048 +# interpreter (i.e. the result of `which perl').
  1.1049 +
  1.1050 +PERL_PATH              = /usr/bin/perl
  1.1051 +
  1.1052 +#---------------------------------------------------------------------------
  1.1053 +# Configuration options related to the dot tool   
  1.1054 +#---------------------------------------------------------------------------
  1.1055 +
  1.1056 +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
  1.1057 +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
  1.1058 +# or super classes. Setting the tag to NO turns the diagrams off. Note that 
  1.1059 +# this option is superseded by the HAVE_DOT option below. This is only a 
  1.1060 +# fallback. It is recommended to install and use dot, since it yields more 
  1.1061 +# powerful graphs.
  1.1062 +
  1.1063 +CLASS_DIAGRAMS         = YES
  1.1064 +
  1.1065 +# If set to YES, the inheritance and collaboration graphs will hide 
  1.1066 +# inheritance and usage relations if the target is undocumented 
  1.1067 +# or is not a class.
  1.1068 +
  1.1069 +HIDE_UNDOC_RELATIONS   = YES
  1.1070 +
  1.1071 +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
  1.1072 +# available from the path. This tool is part of Graphviz, a graph visualization 
  1.1073 +# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
  1.1074 +# have no effect if this option is set to NO (the default)
  1.1075 +
  1.1076 +HAVE_DOT               = NO
  1.1077 +
  1.1078 +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
  1.1079 +# will generate a graph for each documented class showing the direct and 
  1.1080 +# indirect inheritance relations. Setting this tag to YES will force the 
  1.1081 +# the CLASS_DIAGRAMS tag to NO.
  1.1082 +
  1.1083 +CLASS_GRAPH            = YES
  1.1084 +
  1.1085 +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
  1.1086 +# will generate a graph for each documented class showing the direct and 
  1.1087 +# indirect implementation dependencies (inheritance, containment, and 
  1.1088 +# class references variables) of the class with other documented classes.
  1.1089 +
  1.1090 +COLLABORATION_GRAPH    = YES
  1.1091 +
  1.1092 +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
  1.1093 +# will generate a graph for groups, showing the direct groups dependencies
  1.1094 +
  1.1095 +GROUP_GRAPHS           = YES
  1.1096 +
  1.1097 +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
  1.1098 +# collaboration diagrams in a style similar to the OMG's Unified Modeling 
  1.1099 +# Language.
  1.1100 +
  1.1101 +UML_LOOK               = NO
  1.1102 +
  1.1103 +# If set to YES, the inheritance and collaboration graphs will show the 
  1.1104 +# relations between templates and their instances.
  1.1105 +
  1.1106 +TEMPLATE_RELATIONS     = NO
  1.1107 +
  1.1108 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
  1.1109 +# tags are set to YES then doxygen will generate a graph for each documented 
  1.1110 +# file showing the direct and indirect include dependencies of the file with 
  1.1111 +# other documented files.
  1.1112 +
  1.1113 +INCLUDE_GRAPH          = YES
  1.1114 +
  1.1115 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
  1.1116 +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
  1.1117 +# documented header file showing the documented files that directly or 
  1.1118 +# indirectly include this file.
  1.1119 +
  1.1120 +INCLUDED_BY_GRAPH      = YES
  1.1121 +
  1.1122 +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
  1.1123 +# generate a call dependency graph for every global function or class method. 
  1.1124 +# Note that enabling this option will significantly increase the time of a run. 
  1.1125 +# So in most cases it will be better to enable call graphs for selected 
  1.1126 +# functions only using the \callgraph command.
  1.1127 +
  1.1128 +CALL_GRAPH             = NO
  1.1129 +
  1.1130 +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
  1.1131 +# will graphical hierarchy of all classes instead of a textual one.
  1.1132 +
  1.1133 +GRAPHICAL_HIERARCHY    = YES
  1.1134 +
  1.1135 +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
  1.1136 +# then doxygen will show the dependencies a directory has on other directories 
  1.1137 +# in a graphical way. The dependency relations are determined by the #include
  1.1138 +# relations between the files in the directories.
  1.1139 +
  1.1140 +DIRECTORY_GRAPH        = YES
  1.1141 +
  1.1142 +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
  1.1143 +# generated by dot. Possible values are png, jpg, or gif
  1.1144 +# If left blank png will be used.
  1.1145 +
  1.1146 +DOT_IMAGE_FORMAT       = png
  1.1147 +
  1.1148 +# The tag DOT_PATH can be used to specify the path where the dot tool can be 
  1.1149 +# found. If left blank, it is assumed the dot tool can be found in the path.
  1.1150 +
  1.1151 +DOT_PATH               = 
  1.1152 +
  1.1153 +# The DOTFILE_DIRS tag can be used to specify one or more directories that 
  1.1154 +# contain dot files that are included in the documentation (see the 
  1.1155 +# \dotfile command).
  1.1156 +
  1.1157 +DOTFILE_DIRS           = 
  1.1158 +
  1.1159 +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
  1.1160 +# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
  1.1161 +# this value, doxygen will try to truncate the graph, so that it fits within 
  1.1162 +# the specified constraint. Beware that most browsers cannot cope with very 
  1.1163 +# large images.
  1.1164 +
  1.1165 +MAX_DOT_GRAPH_WIDTH    = 1024
  1.1166 +
  1.1167 +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
  1.1168 +# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
  1.1169 +# this value, doxygen will try to truncate the graph, so that it fits within 
  1.1170 +# the specified constraint. Beware that most browsers cannot cope with very 
  1.1171 +# large images.
  1.1172 +
  1.1173 +MAX_DOT_GRAPH_HEIGHT   = 1024
  1.1174 +
  1.1175 +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
  1.1176 +# graphs generated by dot. A depth value of 3 means that only nodes reachable 
  1.1177 +# from the root by following a path via at most 3 edges will be shown. Nodes 
  1.1178 +# that lay further from the root node will be omitted. Note that setting this 
  1.1179 +# option to 1 or 2 may greatly reduce the computation time needed for large 
  1.1180 +# code bases. Also note that a graph may be further truncated if the graph's 
  1.1181 +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
  1.1182 +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
  1.1183 +# the graph is not depth-constrained.
  1.1184 +
  1.1185 +MAX_DOT_GRAPH_DEPTH    = 0
  1.1186 +
  1.1187 +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
  1.1188 +# background. This is disabled by default, which results in a white background. 
  1.1189 +# Warning: Depending on the platform used, enabling this option may lead to 
  1.1190 +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
  1.1191 +# read).
  1.1192 +
  1.1193 +DOT_TRANSPARENT        = NO
  1.1194 +
  1.1195 +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
  1.1196 +# files in one run (i.e. multiple -o and -T options on the command line). This 
  1.1197 +# makes dot run faster, but since only newer versions of dot (>1.8.10) 
  1.1198 +# support this, this feature is disabled by default.
  1.1199 +
  1.1200 +DOT_MULTI_TARGETS      = NO
  1.1201 +
  1.1202 +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
  1.1203 +# generate a legend page explaining the meaning of the various boxes and 
  1.1204 +# arrows in the dot generated graphs.
  1.1205 +
  1.1206 +GENERATE_LEGEND        = YES
  1.1207 +
  1.1208 +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
  1.1209 +# remove the intermediate dot files that are used to generate 
  1.1210 +# the various graphs.
  1.1211 +
  1.1212 +DOT_CLEANUP            = YES
  1.1213 +
  1.1214 +#---------------------------------------------------------------------------
  1.1215 +# Configuration::additions related to the search engine   
  1.1216 +#---------------------------------------------------------------------------
  1.1217 +
  1.1218 +# The SEARCHENGINE tag specifies whether or not a search engine should be 
  1.1219 +# used. If set to NO the values of all tags below this one will be ignored.
  1.1220 +
  1.1221 +SEARCHENGINE           = NO
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/docs/Doxyfilter	Sun Sep 11 21:40:15 2005 +0100
     2.3 @@ -0,0 +1,12 @@
     2.4 +#!/bin/sh
     2.5 +
     2.6 +dir=$(dirname "$0")
     2.7 +
     2.8 +PYFILTER="$dir/pythfilter.py"
     2.9 +
    2.10 +if [ "${1/.py/}" != "$1" ]
    2.11 +then
    2.12 +    python "$PYFILTER" -f "$1"
    2.13 +else
    2.14 +    cat "$1"
    2.15 +fi
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/docs/pythfilter.py	Sun Sep 11 21:40:15 2005 +0100
     3.3 @@ -0,0 +1,639 @@
     3.4 +#!/usr/bin/env python
     3.5 +
     3.6 +# pythfilter.py v1.5.5, written by Matthias Baas (baas@ira.uka.de)
     3.7 +
     3.8 +# Doxygen filter which can be used to document Python source code.
     3.9 +# Classes (incl. methods) and functions can be documented.
    3.10 +# Every comment that begins with ## is literally turned into an
    3.11 +# Doxygen comment. Consecutive comment lines are turned into
    3.12 +# comment blocks (-> /** ... */).
    3.13 +# All the stuff is put inside a namespace with the same name as
    3.14 +# the source file.
    3.15 +
    3.16 +# Conversions:
    3.17 +# ============
    3.18 +# ##-blocks                  ->  /** ... */
    3.19 +# "class name(base): ..."    ->  "class name : public base {...}"
    3.20 +# "def name(params): ..."    ->  "name(params) {...}"
    3.21 +
    3.22 +# Changelog:
    3.23 +# 21.01.2003: Raw (r"") or unicode (u"") doc string will now be properly
    3.24 +#             handled. (thanks to Richard Laager for the patch)
    3.25 +# 22.12.2003: Fixed a bug where no function names would be output for "def"
    3.26 +#             blocks that were not in a class.
    3.27 +#             (thanks to Richard Laager for the patch)
    3.28 +# 12.12.2003: Implemented code to handle static and class methods with
    3.29 +#             this logic: Methods with "self" as the first argument are
    3.30 +#             non-static. Methods with "cls" are Python class methods,
    3.31 +#             which translate into static methods for Doxygen. Other
    3.32 +#             methods are assumed to be static methods. As should be
    3.33 +#             obvious, this logic doesn't take into account if the method
    3.34 +#             is actually setup as a classmethod() or a staticmethod(),
    3.35 +#             just if it follows the normal conventions.
    3.36 +#             (thanks to Richard Laager for the patch)
    3.37 +# 11.12.2003: Corrected #includes to use os.path.sep instead of ".". Corrected
    3.38 +#             namespace code to use "::" instead of ".".
    3.39 +#             (thanks to Richard Laager for the patch)
    3.40 +# 11.12.2003: Methods beginning with two underscores that end with
    3.41 +#             something other than two underscores are considered private
    3.42 +#             and are handled accordingly.
    3.43 +#             (thanks to Richard Laager for the patch)
    3.44 +# 03.12.2003: The first parameter of class methods (self) is removed from
    3.45 +#             the documentation.
    3.46 +# 03.11.2003: The module docstring will be used as namespace documentation
    3.47 +#             (thanks to Joe Bronkema for the patch)
    3.48 +# 08.07.2003: Namespaces get a default documentation so that the namespace
    3.49 +#             and its contents will show up in the generated documentation.
    3.50 +# 05.02.2003: Directories will be delted during synchronization.
    3.51 +# 31.01.2003: -f option & filtering entire directory trees.
    3.52 +# 10.08.2002: In base classes the '.' will be replaced by '::'
    3.53 +# 18.07.2002: * and ** will be translated into arguments
    3.54 +# 18.07.2002: Argument lists may contain default values using constructors.
    3.55 +# 18.06.2002: Support for ## public:
    3.56 +# 21.01.2002: from ... import will be translated to "using namespace ...;"
    3.57 +#             TODO: "from ... import *" vs "from ... import names"
    3.58 +#             TODO: Using normal imports: name.name -> name::name
    3.59 +# 20.01.2002: #includes will be placed in front of the namespace
    3.60 +
    3.61 +######################################################################
    3.62 +
    3.63 +# The program is written as a state machine with the following states:
    3.64 +#
    3.65 +# - OUTSIDE               The current position is outside any comment,
    3.66 +#                         class definition or function.
    3.67 +#
    3.68 +# - BUILD_COMMENT         Begins with first "##".
    3.69 +#                         Ends with the first token that is no "##"
    3.70 +#                         at the same column as before.
    3.71 +#
    3.72 +# - BUILD_CLASS_DECL      Begins with "class".
    3.73 +#                         Ends with ":"
    3.74 +# - BUILD_CLASS_BODY      Begins just after BUILD_CLASS_DECL.
    3.75 +#                         The first following token (which is no comment)
    3.76 +#                         determines indentation depth.
    3.77 +#                         Ends with a token that has a smaller indendation.
    3.78 +#
    3.79 +# - BUILD_DEF_DECL        Begins with "def".
    3.80 +#                         Ends with ":".
    3.81 +# - BUILD_DEF_BODY        Begins just after BUILD_DEF_DECL.
    3.82 +#                         The first following token (which is no comment)
    3.83 +#                         determines indentation depth.
    3.84 +#                         Ends with a token that has a smaller indendation.
    3.85 +
    3.86 +import getopt
    3.87 +import glob
    3.88 +import os.path
    3.89 +import re
    3.90 +import shutil
    3.91 +import string
    3.92 +import sys
    3.93 +import token
    3.94 +import tokenize
    3.95 +
    3.96 +from stat import *
    3.97 +
    3.98 +OUTSIDE          = 0
    3.99 +BUILD_COMMENT    = 1
   3.100 +BUILD_CLASS_DECL = 2
   3.101 +BUILD_CLASS_BODY = 3
   3.102 +BUILD_DEF_DECL   = 4
   3.103 +BUILD_DEF_BODY   = 5
   3.104 +IMPORT           = 6
   3.105 +IMPORT_OP        = 7
   3.106 +IMPORT_APPEND    = 8
   3.107 +
   3.108 +# Output file stream
   3.109 +outfile = sys.stdout
   3.110 +
   3.111 +# Output buffer
   3.112 +outbuffer = []
   3.113 +
   3.114 +out_row = 1
   3.115 +out_col = 0
   3.116 +
   3.117 +# Variables used by rec_name_n_param()
   3.118 +name         = ""
   3.119 +param        = ""
   3.120 +doc_string   = ""
   3.121 +record_state = 0
   3.122 +bracket_counter = 0
   3.123 +
   3.124 +# Tuple: (row,column)
   3.125 +class_spos  = (0,0)
   3.126 +def_spos    = (0,0)
   3.127 +import_spos = (0,0)
   3.128 +
   3.129 +# Which import was used? ("import" or "from")
   3.130 +import_token = ""
   3.131 +
   3.132 +# Comment block buffer
   3.133 +comment_block = []
   3.134 +comment_finished = 0
   3.135 +
   3.136 +# Imported modules
   3.137 +modules = []
   3.138 +
   3.139 +# Program state
   3.140 +stateStack = [OUTSIDE]
   3.141 +
   3.142 +# Keep track of whether module has a docstring
   3.143 +module_has_docstring = False
   3.144 +
   3.145 +# Keep track of member protection
   3.146 +protection_level = "public"
   3.147 +private_member = False
   3.148 +
   3.149 +# Keep track of the module namespace
   3.150 +namespace = ""
   3.151 +
   3.152 +######################################################################
   3.153 +# Output string s. '\n' may only be at the end of the string (not
   3.154 +# somewhere in the middle).
   3.155 +#
   3.156 +# In: s    - String
   3.157 +#     spos - Startpos
   3.158 +######################################################################
   3.159 +def output(s,spos, immediate=0):
   3.160 +    global outbuffer, out_row, out_col, outfile
   3.161 +
   3.162 +    os = string.rjust(s,spos[1]-out_col+len(s))
   3.163 +
   3.164 +    if immediate:
   3.165 +        outfile.write(os)
   3.166 +    else:
   3.167 +        outbuffer.append(os)
   3.168 +
   3.169 +    assert -1 == string.find(s[0:-2], "\n"), s
   3.170 +
   3.171 +    if (s[-1:]=="\n"):
   3.172 +        out_row = out_row+1
   3.173 +        out_col = 0
   3.174 +    else:
   3.175 +        out_col = spos[1]+len(s)
   3.176 +
   3.177 +
   3.178 +######################################################################
   3.179 +# Records a name and parameters. The name is either a class name or
   3.180 +# a function name. Then the parameter is either the base class or
   3.181 +# the function parameters.
   3.182 +# The name is stored in the global variable "name", the parameters
   3.183 +# in "param".
   3.184 +# The variable "record_state" holds the current state of this internal
   3.185 +# state machine.
   3.186 +# The recording is started by calling start_recording().
   3.187 +#
   3.188 +# In: type, tok
   3.189 +######################################################################
   3.190 +def rec_name_n_param(type, tok):
   3.191 +    global record_state,name,param,doc_string,bracket_counter
   3.192 +    s = record_state
   3.193 +    # State 0: Do nothing.
   3.194 +    if   (s==0):
   3.195 +         return
   3.196 +    # State 1: Remember name.
   3.197 +    elif (s==1):
   3.198 +        name = tok
   3.199 +        record_state = 2
   3.200 +    # State 2: Wait for opening bracket or colon
   3.201 +    elif (s==2):
   3.202 +        if (tok=='('):
   3.203 +            bracket_counter = 1
   3.204 +            record_state=3
   3.205 +        if (tok==':'): record_state=4
   3.206 +    # State 3: Store parameter (or base class) and wait for an ending bracket
   3.207 +    elif (s==3):
   3.208 +        if (tok=='*' or tok=='**'):
   3.209 +            tok=''
   3.210 +        if (tok=='('):
   3.211 +            bracket_counter = bracket_counter+1
   3.212 +        if (tok==')'):
   3.213 +            bracket_counter = bracket_counter-1
   3.214 +        if bracket_counter==0:
   3.215 +            record_state=4
   3.216 +        else:
   3.217 +            param=param+tok
   3.218 +    # State 4: Look for doc string
   3.219 +    elif (s==4):
   3.220 +        if (type==token.NEWLINE or type==token.INDENT or type==token.SLASHEQUAL):
   3.221 +            return
   3.222 +        elif (tok==":"):
   3.223 +            return
   3.224 +        elif (type==token.STRING):
   3.225 +            while tok[:1]=='r' or tok[:1]=='u':
   3.226 +                tok=tok[1:]
   3.227 +            while tok[:1]=='"':
   3.228 +                tok=tok[1:]
   3.229 +            while tok[-1:]=='"':
   3.230 +                tok=tok[:-1]
   3.231 +            doc_string=tok
   3.232 +        record_state=0
   3.233 +
   3.234 +######################################################################
   3.235 +# Starts the recording of a name & param part.
   3.236 +# The function rec_name_n_param() has to be fed with tokens. After
   3.237 +# the necessary tokens are fed the name and parameters can be found
   3.238 +# in the global variables "name" und "param".
   3.239 +######################################################################
   3.240 +def start_recording():
   3.241 +    global record_state,param,name, doc_string
   3.242 +    record_state=1
   3.243 +    name=""
   3.244 +    param=""
   3.245 +    doc_string=""
   3.246 +
   3.247 +######################################################################
   3.248 +# Test if recording is finished
   3.249 +######################################################################
   3.250 +def is_recording_finished():
   3.251 +    global record_state
   3.252 +    return record_state==0
   3.253 +
   3.254 +######################################################################
   3.255 +## Gather comment block
   3.256 +######################################################################
   3.257 +def gather_comment(type,tok,spos):
   3.258 +    global comment_block,comment_finished
   3.259 +    if (type!=tokenize.COMMENT):
   3.260 +        comment_finished = 1
   3.261 +    else:
   3.262 +        # Output old comment block if a new one is started.
   3.263 +        if (comment_finished):
   3.264 +            print_comment(spos)
   3.265 +            comment_finished=0
   3.266 +        if (tok[0:2]=="##" and tok[0:3]!="###"):
   3.267 +            append_comment_lines(tok[2:])
   3.268 +
   3.269 +######################################################################
   3.270 +## Output comment block and empty buffer.
   3.271 +######################################################################
   3.272 +def print_comment(spos):
   3.273 +    global comment_block,comment_finished
   3.274 +    if (comment_block!=[]):
   3.275 +        output("/** ",spos)
   3.276 +        for c in comment_block:
   3.277 +            output(c,spos)
   3.278 +        output("*/\n",spos)
   3.279 +    comment_block    = []
   3.280 +    comment_finished = 0
   3.281 +
   3.282 +######################################################################
   3.283 +def set_state(s):
   3.284 +    global stateStack
   3.285 +    stateStack[len(stateStack)-1]=s
   3.286 +
   3.287 +######################################################################
   3.288 +def get_state():
   3.289 +    global stateStack
   3.290 +    return stateStack[len(stateStack)-1]
   3.291 +
   3.292 +######################################################################
   3.293 +def push_state(s):
   3.294 +    global stateStack
   3.295 +    stateStack.append(s)
   3.296 +
   3.297 +######################################################################
   3.298 +def pop_state():
   3.299 +    global stateStack
   3.300 +    stateStack.pop()
   3.301 +
   3.302 +
   3.303 +######################################################################
   3.304 +def tok_eater(type, tok, spos, epos, line):
   3.305 +    global stateStack,name,param,class_spos,def_spos,import_spos
   3.306 +    global doc_string, modules, import_token, module_has_docstring
   3.307 +    global protection_level, private_member
   3.308 +    global out_row
   3.309 +
   3.310 +    while out_row + 1 < spos[0]:
   3.311 +        output("\n", (0, 0))
   3.312 +
   3.313 +    rec_name_n_param(type,tok)
   3.314 +    if (string.replace(string.strip(tok)," ","")=="##private:"):
   3.315 +         protection_level = "private"
   3.316 +         output("private:\n",spos)
   3.317 +    elif (string.replace(string.strip(tok)," ","")=="##protected:"):
   3.318 +         protection_level = "protected"
   3.319 +         output("protected:\n",spos)
   3.320 +    elif (string.replace(string.strip(tok)," ","")=="##public:"):
   3.321 +         protection_level = "public"
   3.322 +         output("public:\n",spos)
   3.323 +    else:
   3.324 +         gather_comment(type,tok,spos)
   3.325 +
   3.326 +    state = get_state()
   3.327 +
   3.328 +#    sys.stderr.write("%d: %s\n"%(state, tok))
   3.329 +
   3.330 +    # OUTSIDE
   3.331 +    if   (state==OUTSIDE):
   3.332 +        if  (tok=="class"):
   3.333 +            start_recording()
   3.334 +            class_spos = spos
   3.335 +            push_state(BUILD_CLASS_DECL)
   3.336 +        elif (tok=="def"):
   3.337 +            start_recording()
   3.338 +            def_spos = spos
   3.339 +            push_state(BUILD_DEF_DECL)
   3.340 +        elif (tok=="import") or (tok=="from"):
   3.341 +            import_token = tok
   3.342 +            import_spos = spos
   3.343 +            modules     = []
   3.344 +            push_state(IMPORT)
   3.345 +        elif (spos[1] == 0 and tok[:3] == '"""'):
   3.346 +            # Capture module docstring as namespace documentation
   3.347 +            module_has_docstring = True
   3.348 +            append_comment_lines("\\namespace %s\n" % namespace)
   3.349 +            append_comment_lines(tok[3:-3])
   3.350 +            print_comment(spos)
   3.351 +
   3.352 +    # IMPORT
   3.353 +    elif (state==IMPORT):
   3.354 +        if (type==token.NAME):
   3.355 +            modules.append(tok)
   3.356 +            set_state(IMPORT_OP)
   3.357 +    # IMPORT_OP
   3.358 +    elif (state==IMPORT_OP):
   3.359 +        if (tok=="."):
   3.360 +            set_state(IMPORT_APPEND)
   3.361 +        elif (tok==","):
   3.362 +            set_state(IMPORT)
   3.363 +        else:
   3.364 +            for m in modules:
   3.365 +                output('#include "'+m.replace('.',os.path.sep)+'.py"\n', import_spos, immediate=1)
   3.366 +                if import_token=="from":
   3.367 +                    output('using namespace '+m.replace('.', '::')+';\n', import_spos)
   3.368 +            pop_state()
   3.369 +    # IMPORT_APPEND
   3.370 +    elif (state==IMPORT_APPEND):
   3.371 +        if (type==token.NAME):
   3.372 +            modules[len(modules)-1]+="."+tok
   3.373 +            set_state(IMPORT_OP)
   3.374 +    # BUILD_CLASS_DECL
   3.375 +    elif (state==BUILD_CLASS_DECL):
   3.376 +        if (is_recording_finished()):
   3.377 +            s = "class "+name
   3.378 +            if (param!=""): s = s+" : public "+param.replace('.','::')
   3.379 +            if (doc_string!=""):
   3.380 +                append_comment_lines(doc_string)
   3.381 +            print_comment(class_spos)
   3.382 +            output(s+"\n",class_spos)
   3.383 +            output("{\n",(class_spos[0]+1,class_spos[1]))
   3.384 +            protection_level = "public"
   3.385 +            output("  public:\n",(class_spos[0]+2,class_spos[1]))
   3.386 +            set_state(BUILD_CLASS_BODY)
   3.387 +    # BUILD_CLASS_BODY
   3.388 +    elif (state==BUILD_CLASS_BODY):
   3.389 +        if (type!=token.INDENT and type!=token.NEWLINE and type!=40 and
   3.390 +            type!=tokenize.NL and type!=tokenize.COMMENT and
   3.391 +            (spos[1]<=class_spos[1])):
   3.392 +            output("}; // end of class\n",(out_row+1,class_spos[1]))
   3.393 +            pop_state()
   3.394 +        elif (tok=="def"):
   3.395 +            start_recording()
   3.396 +            def_spos = spos
   3.397 +            push_state(BUILD_DEF_DECL)
   3.398 +    # BUILD_DEF_DECL
   3.399 +    elif (state==BUILD_DEF_DECL):
   3.400 +        if (is_recording_finished()):
   3.401 +            param = param.replace("\n", " ")
   3.402 +            param = param.replace("=", " = ")
   3.403 +            params = param.split(",")
   3.404 +            if BUILD_CLASS_BODY in stateStack:
   3.405 +                if len(name) > 1 \
   3.406 +                   and name[0:2] == '__' \
   3.407 +                   and name[len(name)-2:len(name)] != '__' \
   3.408 +                   and protection_level != 'private':
   3.409 +                       private_member = True
   3.410 +                       output("  private:\n",(def_spos[0]+2,def_spos[1]))
   3.411 +
   3.412 +            if (doc_string != ""):
   3.413 +                append_comment_lines(doc_string)
   3.414 +
   3.415 +            print_comment(def_spos)
   3.416 +
   3.417 +            output_function_decl(name, params)
   3.418 +#       output("{\n",(def_spos[0]+1,def_spos[1]))
   3.419 +            set_state(BUILD_DEF_BODY)
   3.420 +    # BUILD_DEF_BODY
   3.421 +    elif (state==BUILD_DEF_BODY):
   3.422 +        if (type!=token.INDENT and type!=token.NEWLINE \
   3.423 +            and type!=40 and type!=tokenize.NL \
   3.424 +            and (spos[1]<=def_spos[1])):
   3.425 +#            output("} // end of method/function\n",(out_row+1,def_spos[1]))
   3.426 +            if private_member and protection_level != 'private':
   3.427 +                private_member = False
   3.428 +                output("  " + protection_level + ":\n",(def_spos[0]+2,def_spos[1]))
   3.429 +            pop_state()
   3.430 +#       else:
   3.431 +#            output(tok,spos)
   3.432 +
   3.433 +
   3.434 +def output_function_decl(name, params):
   3.435 +    global def_spos
   3.436 +
   3.437 +    # Do we document a class method? then remove the 'self' parameter
   3.438 +    if params[0] == 'self':
   3.439 +        preamble = ''
   3.440 +        params = params[1:]
   3.441 +    else:
   3.442 +        preamble = 'static '
   3.443 +        if params[0] == 'cls':
   3.444 +            params = params[1:]
   3.445 +
   3.446 +    param_string = string.join(params, ", Type ")
   3.447 +
   3.448 +    if param_string == '':
   3.449 +        param_string = '(' + param_string + ');\n'
   3.450 +    else:
   3.451 +        param_string = '(Type ' + param_string + ');\n'
   3.452 +
   3.453 +    output(preamble, def_spos)
   3.454 +    output(name, def_spos)
   3.455 +    output(param_string, def_spos)
   3.456 +
   3.457 +
   3.458 +def append_comment_lines(lines):
   3.459 +    map(append_comment_line, doc_string.split('\n'))
   3.460 +
   3.461 +paramRE = re.compile(r'(@param \w+):')
   3.462 +
   3.463 +def append_comment_line(line):
   3.464 +    global paramRE
   3.465 +    
   3.466 +    comment_block.append(paramRE.sub(r'\1', line) + '\n')
   3.467 +
   3.468 +def dump(filename):
   3.469 +    f = open(filename)
   3.470 +    r = f.readlines()
   3.471 +    for s in r:
   3.472 +        sys.stdout.write(s)
   3.473 +
   3.474 +def filter(filename):
   3.475 +    global name, module_has_docstring
   3.476 +
   3.477 +    path,name = os.path.split(filename)
   3.478 +    root,ext  = os.path.splitext(name)
   3.479 +
   3.480 +    output("namespace "+root+" {\n",(0,0))
   3.481 +
   3.482 +    # set module name for tok_eater to use if there's a module doc string
   3.483 +    name = root
   3.484 +
   3.485 +#    sys.stderr.write('Filtering "'+filename+'"...')
   3.486 +    f = open(filename)
   3.487 +    tokenize.tokenize(f.readline, tok_eater)
   3.488 +    f.close()
   3.489 +    print_comment((0,0))
   3.490 +
   3.491 +    output("\n",(0,0))
   3.492 +    output("}  // end of namespace\n",(0,0))
   3.493 +
   3.494 +    if not module_has_docstring:
   3.495 +        # Put in default namespace documentation
   3.496 +        output('/** \\namespace '+root+' \n',(0,0))
   3.497 +        output('    \\brief Module "%s" */\n'%(root),(0,0))
   3.498 +
   3.499 +    for s in outbuffer:
   3.500 +        outfile.write(s)
   3.501 +
   3.502 +
   3.503 +def filterFile(filename, out=sys.stdout):
   3.504 +    global outfile
   3.505 +
   3.506 +    outfile = out
   3.507 +
   3.508 +    try:
   3.509 +        root,ext  = os.path.splitext(filename)
   3.510 +
   3.511 +        if ext==".py":
   3.512 +            filter(filename)
   3.513 +        else:
   3.514 +            dump(filename)
   3.515 +
   3.516 +#        sys.stderr.write("OK\n")
   3.517 +    except IOError,e:
   3.518 +        sys.stderr.write(e[1]+"\n")
   3.519 +
   3.520 +
   3.521 +######################################################################
   3.522 +
   3.523 +# preparePath
   3.524 +def preparePath(path):
   3.525 +    """Prepare a path.
   3.526 +
   3.527 +    Checks if the path exists and creates it if it does not exist.
   3.528 +    """
   3.529 +    if not os.path.exists(path):
   3.530 +        parent = os.path.dirname(path)
   3.531 +        if parent!="":
   3.532 +            preparePath(parent)
   3.533 +        os.mkdir(path)
   3.534 +
   3.535 +# isNewer
   3.536 +def isNewer(file1,file2):
   3.537 +    """Check if file1 is newer than file2.
   3.538 +
   3.539 +    file1 must be an existing file.
   3.540 +    """
   3.541 +    if not os.path.exists(file2):
   3.542 +        return True
   3.543 +    return os.stat(file1)[ST_MTIME]>os.stat(file2)[ST_MTIME]
   3.544 +
   3.545 +# convert
   3.546 +def convert(srcpath, destpath):
   3.547 +    """Convert a Python source tree into a C+ stub tree.
   3.548 +
   3.549 +    All *.py files in srcpath (including sub-directories) are filtered
   3.550 +    and written to destpath. If destpath exists, only the files
   3.551 +    that have been modified are filtered again. Files that were deleted
   3.552 +    from srcpath are also deleted in destpath if they are still present.
   3.553 +    The function returns the number of processed *.py files.
   3.554 +    """
   3.555 +    count=0
   3.556 +    sp = os.path.join(srcpath,"*")
   3.557 +    sfiles = glob.glob(sp)
   3.558 +    dp = os.path.join(destpath,"*")
   3.559 +    dfiles = glob.glob(dp)
   3.560 +    leftovers={}
   3.561 +    for df in dfiles:
   3.562 +        leftovers[os.path.basename(df)]=1
   3.563 +
   3.564 +    for srcfile in sfiles:
   3.565 +        basename = os.path.basename(srcfile)
   3.566 +        if basename in leftovers:
   3.567 +            del leftovers[basename]
   3.568 +
   3.569 +        # Is it a subdirectory?
   3.570 +        if os.path.isdir(srcfile):
   3.571 +            sdir = os.path.join(srcpath,basename)
   3.572 +            ddir = os.path.join(destpath,basename)
   3.573 +            count+=convert(sdir, ddir)
   3.574 +            continue
   3.575 +        # Check the extension (only *.py will be converted)
   3.576 +        root, ext = os.path.splitext(srcfile)
   3.577 +        if ext.lower()!=".py":
   3.578 +            continue
   3.579 +
   3.580 +        destfile = os.path.join(destpath,basename)
   3.581 +        if destfile==srcfile:
   3.582 +            print "WARNING: Input and output names are identical!"
   3.583 +            sys.exit(1)
   3.584 +
   3.585 +        count+=1
   3.586 +#        sys.stdout.write("%s\015"%(srcfile))
   3.587 +
   3.588 +        if isNewer(srcfile, destfile):
   3.589 +            preparePath(os.path.dirname(destfile))
   3.590 +#            out=open(destfile,"w")
   3.591 +#            filterFile(srcfile, out)
   3.592 +#            out.close()
   3.593 +            os.system("python %s -f %s>%s"%(sys.argv[0],srcfile,destfile))
   3.594 +
   3.595 +    # Delete obsolete files in destpath
   3.596 +    for df in leftovers:
   3.597 +        dname=os.path.join(destpath,df)
   3.598 +        if os.path.isdir(dname):
   3.599 +            try:
   3.600 +                shutil.rmtree(dname)
   3.601 +            except:
   3.602 +                print "Can't remove obsolete directory '%s'"%dname
   3.603 +        else:
   3.604 +            try:
   3.605 +                os.remove(dname)
   3.606 +            except:
   3.607 +                print "Can't remove obsolete file '%s'"%dname
   3.608 +
   3.609 +    return count
   3.610 +
   3.611 +
   3.612 +######################################################################
   3.613 +######################################################################
   3.614 +######################################################################
   3.615 +
   3.616 +filter_file = False
   3.617 +
   3.618 +try:
   3.619 +    opts, args = getopt.getopt(sys.argv[1:], "hf", ["help"])
   3.620 +except getopt.GetoptError,e:
   3.621 +    print e
   3.622 +    sys.exit(1)
   3.623 +
   3.624 +for o,a in opts:
   3.625 +    if o=="-f":
   3.626 +        filter_file = True
   3.627 +
   3.628 +if filter_file:
   3.629 +    # Filter the specified file and print the result to stdout
   3.630 +    filename = string.join(args)
   3.631 +    filterFile(filename)
   3.632 +else:
   3.633 +
   3.634 +    if len(args)!=2:
   3.635 +        sys.stderr.write("%s options input output\n"%(os.path.basename(sys.argv[0])))
   3.636 +        sys.exit(1)
   3.637 +
   3.638 +    # Filter an entire Python source tree
   3.639 +    print '"%s" -> "%s"\n'%(args[0],args[1])
   3.640 +    c=convert(args[0],args[1])
   3.641 +    print "%d files"%(c)
   3.642 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/tools/python/pylintrc	Sun Sep 11 21:40:15 2005 +0100
     4.3 @@ -0,0 +1,307 @@
     4.4 +# lint Python modules using external checkers.                            
     4.5 +#                                                                                
     4.6 +#     This is the main checker controling the other ones and the reports         
     4.7 +#     generation. It is itself both a raw checker and an astng checker in order  
     4.8 +#     to:                                                                        
     4.9 +#     * handle message activation / deactivation at the module level             
    4.10 +#     * handle some basic but necessary stats'data (number of classes, methods...)
    4.11 +#                                                                                 
    4.12 +# This checker also defines the following reports:                                    
    4.13 +#   * R0001: Total errors / warnings                                              
    4.14 +#   * R0002: % errors / warnings by module                                        
    4.15 +#   * R0003: Messages                                                             
    4.16 +#   * R0004: Global evaluation                                                    
    4.17 +# 
    4.18 +[MASTER]
    4.19 +# Add <file or directory> to the black list. It should be a base name, not a
    4.20 +# path. You may set this option multiple times.
    4.21 +ignore=CVS
    4.22 +
    4.23 +# Pickle collected data for later comparisons.
    4.24 +persistent=yes
    4.25 +
    4.26 +# Set the cache size for astng objects.
    4.27 +cache-size=500
    4.28 +
    4.29 +
    4.30 +
    4.31 +[REPORTS]
    4.32 +# Tells wether to display a full report or only the messages
    4.33 +reports=yes
    4.34 +
    4.35 +# Use HTML as output format instead of text
    4.36 +html=no
    4.37 +
    4.38 +# Use a parseable text output format, so your favorite text editor will be able
    4.39 +# to jump to the line corresponding to a message.
    4.40 +parseable=no
    4.41 +
    4.42 +# Colorizes text output using ansi escape codes
    4.43 +color=no
    4.44 +
    4.45 +# Put messages in a separate file for each module / package specified on the
    4.46 +# command line instead of printing them on stdout. Reports (if any) will be
    4.47 +# written in a file name "pylint_global.[txt|html]".
    4.48 +files-output=no
    4.49 +
    4.50 +# Python expression which should return a note less than 10 (10 is the highest
    4.51 +# note).You have access to the variables errors warning, statement which
    4.52 +# respectivly contain the number of errors / warnings messages and the total
    4.53 +# number of statements analyzed. This is used by the global evaluation report
    4.54 +# (R0004).
    4.55 +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
    4.56 +
    4.57 +# Add a comment according to your evaluation note. This is used by the global
    4.58 +# evaluation report (R0004).
    4.59 +comment=no
    4.60 +
    4.61 +# Include message's id in output
    4.62 +include-ids=yes
    4.63 +
    4.64 +
    4.65 +
    4.66 +# checks for                                                              
    4.67 +#     * unused variables / imports                                               
    4.68 +#     * undefined variables                                                      
    4.69 +#     * redefinition of variable from builtins or from an outer scope            
    4.70 +#     * use of variable before assigment                                         
    4.71 +#     
    4.72 +[VARIABLES]
    4.73 +# Enable / disable this checker
    4.74 +enable-variables=yes
    4.75 +
    4.76 +# Tells wether we should check for unused import in __init__ files.
    4.77 +init-import=no
    4.78 +
    4.79 +# List of variable names used for dummy variables (i.e. not used).
    4.80 +dummy-variables=_,dummy
    4.81 +
    4.82 +
    4.83 +
    4.84 +# checks for :                                                            
    4.85 +#     * doc strings                                                              
    4.86 +#     * modules / classes / functions / methods / arguments / variables name     
    4.87 +#     * number of arguments, local variables, branchs, returns and statements in
    4.88 +# functions, methods                                                       
    4.89 +#     * required module attributes                                             
    4.90 +#     * dangerous default values as arguments                                    
    4.91 +#     * redefinition of function / method / class                                
    4.92 +#     * uses of the global statement                                             
    4.93 +#                                                                                 
    4.94 +# This checker also defines the following reports:                                    
    4.95 +#   * R0101: Statistics by type                                                   
    4.96 +# 
    4.97 +[BASIC]
    4.98 +# Enable / disable this checker
    4.99 +enable-basic=yes
   4.100 +
   4.101 +# Required attributes for module, separated by a comma
   4.102 +required-attributes=
   4.103 +
   4.104 +# Regular expression which should only match functions or classes name which do
   4.105 +# not require a docstring
   4.106 +no-docstring-rgx=.*
   4.107 +
   4.108 +# Minimal length for module / class / function / method / argument / variable
   4.109 +# names
   4.110 +min-name-length=1
   4.111 +
   4.112 +# Regular expression which should only match correct module names
   4.113 +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
   4.114 +
   4.115 +# Regular expression which should only match correct class names
   4.116 +class-rgx=[A-Z_][a-zA-Z0-9]+$
   4.117 +
   4.118 +# Regular expression which should only match correct function names
   4.119 +function-rgx=[a-z_][A-Za-z0-9_]*$
   4.120 +
   4.121 +# Regular expression which should only match correct method names
   4.122 +method-rgx=[a-z_][A-Za-z0-9_]*$
   4.123 +
   4.124 +# Regular expression which should only match correct argument names
   4.125 +argument-rgx=[a-z_][A-Za-z0-9_]*$
   4.126 +
   4.127 +# Regular expression which should only match correct variable names
   4.128 +variable-rgx=[a-z_][A-Za-z0-9_]*$
   4.129 +
   4.130 +# Good variable names which should always be accepted, separated by a comma
   4.131 +good-names=i,j,k,ex,Run,_
   4.132 +
   4.133 +# Bad variable names which should always be refused, separated by a comma
   4.134 +bad-names=foo,bar,baz,toto,tutu,tata
   4.135 +
   4.136 +# List of builtins function names that should not be used, separated by a comma
   4.137 +bad-functions=map,filter,apply,input
   4.138 +
   4.139 +
   4.140 +
   4.141 +# checks for sign of poor/misdesign:                                      
   4.142 +#     * number of methods, attributes, local variables...                        
   4.143 +#     * size, complexity of functions, methods                                   
   4.144 +#     
   4.145 +[DESIGN]
   4.146 +# Enable / disable this checker
   4.147 +enable-design=yes
   4.148 +
   4.149 +# Maximum number of arguments for function / method
   4.150 +max-args=15
   4.151 +
   4.152 +# Maximum number of locals for function / method body
   4.153 +max-locals=15
   4.154 +
   4.155 +# Maximum number of return / yield for function / method body
   4.156 +max-returns=6
   4.157 +
   4.158 +# Maximum number of branch for function / method body
   4.159 +max-branchs=12
   4.160 +
   4.161 +# Maximum number of statements in function / method body
   4.162 +max-statements=50
   4.163 +
   4.164 +# Maximum number of parents for a class (see R0901).
   4.165 +max-parents=7
   4.166 +
   4.167 +# Maximum number of attributes for a class (see R0902).
   4.168 +max-attributes=7
   4.169 +
   4.170 +# Minimum number of public methods for a class (see R0903).
   4.171 +min-public-methods=2
   4.172 +
   4.173 +# Maximum number of public methods for a class (see R0904).
   4.174 +max-public-methods=20
   4.175 +
   4.176 +
   4.177 +
   4.178 +# checks for :                                                            
   4.179 +#     * methods without self as first argument                                   
   4.180 +#     * overriden methods signature                                              
   4.181 +#     * access only to existant members via self                                 
   4.182 +#     * attributes not defined in the __init__ method                            
   4.183 +#     * supported interfaces implementation                                      
   4.184 +#     * unreachable code                                                         
   4.185 +#     
   4.186 +[CLASSES]
   4.187 +# Enable / disable this checker
   4.188 +enable-classes=yes
   4.189 +
   4.190 +# List of interface methods to ignore, separated by a comma. This is used for
   4.191 +# instance to not check methods defines in Zope's Interface base class.
   4.192 +ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
   4.193 +
   4.194 +# Tells wether missing members accessed in mixin class should be ignored. A
   4.195 +# mixin class is detected if its name ends with "mixin" (case insensitive).
   4.196 +ignore-mixin-members=yes
   4.197 +
   4.198 +
   4.199 +
   4.200 +# checks for                                                              
   4.201 +#     * external modules dependencies                                            
   4.202 +#     * relative / wildcard imports                                                         
   4.203 +#     * cyclic imports                                                           
   4.204 +#     * uses of deprecated modules
   4.205 +#                                                                                 
   4.206 +# This checker also defines the following reports:                                    
   4.207 +#   * R0401: External dependencies                                                
   4.208 +#   * R0402: Modules dependencies graph                                           
   4.209 +# 
   4.210 +[IMPORTS]
   4.211 +# Enable / disable this checker
   4.212 +enable-imports=no
   4.213 +
   4.214 +# Deprecated modules which should not be used, separated by a comma
   4.215 +deprecated-modules=regsub,string,TERMIOS,Bastion,rexec
   4.216 +
   4.217 +# Create a graph of every (i.e. internal and external) dependencies in the given
   4.218 +# file (report R0402 must not be disabled)
   4.219 +import-graph=
   4.220 +
   4.221 +# Create a graph of external dependencies in the given file (report R0402 must
   4.222 +# not be disabled)
   4.223 +ext-import-graph=
   4.224 +
   4.225 +# Create a graph of internal dependencies in the given file (report R0402 must
   4.226 +# not be disabled)
   4.227 +int-import-graph=
   4.228 +
   4.229 +
   4.230 +
   4.231 +# checks for                                                              
   4.232 +#     * excepts without exception filter                                         
   4.233 +#     * string exceptions                                                        
   4.234 +#     
   4.235 +[EXCEPTIONS]
   4.236 +# Enable / disable this checker
   4.237 +enable-exceptions=yes
   4.238 +
   4.239 +
   4.240 +
   4.241 +# checks for :                                                            
   4.242 +#     * unauthorized constructions                                               
   4.243 +#     * strict indentation                                                       
   4.244 +#     * line length                                                              
   4.245 +#     * use of <> instead of !=
   4.246 +#     
   4.247 +[FORMAT]
   4.248 +# Enable / disable this checker
   4.249 +enable-format=no
   4.250 +
   4.251 +# Maximum number of characters on a single line.
   4.252 +max-line-length=80
   4.253 +
   4.254 +# Maximum number of lines in a module
   4.255 +max-module-lines=1000
   4.256 +
   4.257 +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 tab).
   4.258 +indent-string='    '
   4.259 +
   4.260 +
   4.261 +
   4.262 +# does not check anything but gives some raw metrics :                    
   4.263 +#     * total number of lines                                                    
   4.264 +#     * total number of code lines                                               
   4.265 +#     * total number of docstring lines                                          
   4.266 +#     * total number of comments lines                                           
   4.267 +#     * total number of empty lines                                              
   4.268 +#                                                                                 
   4.269 +# This checker also defines the following reports:                                    
   4.270 +#   * R0701: Raw metrics                                                          
   4.271 +# 
   4.272 +[METRICS]
   4.273 +# Enable / disable this checker
   4.274 +enable-metrics=yes
   4.275 +
   4.276 +
   4.277 +
   4.278 +# checks for:                                                             
   4.279 +#     * warning notes in the code like FIXME, XXX                                
   4.280 +#     * PEP 263: source code with non ascii character but no encoding declaration
   4.281 +#     
   4.282 +[MISCELLANEOUS]
   4.283 +# Enable / disable this checker
   4.284 +enable-miscellaneous=yes
   4.285 +
   4.286 +# List of note tags to take in consideration, separated by a comma. Default to
   4.287 +# FIXME, XXX, TODO
   4.288 +notes=FIXME,XXX,TODO
   4.289 +
   4.290 +
   4.291 +
   4.292 +# checks for similarities and duplicated code. This computation may be
   4.293 +#     memory / CPU intensive, so you should disable it if you experiments some
   4.294 +#     problems.
   4.295 +#                                                                                 
   4.296 +# This checker also defines the following reports:                                    
   4.297 +#   * R0801: Duplication                                                          
   4.298 +# 
   4.299 +[SIMILARITIES]
   4.300 +# Enable / disable this checker
   4.301 +enable-similarities=yes
   4.302 +
   4.303 +# Minimum lines number of a similarity.
   4.304 +min-similarity-lines=4
   4.305 +
   4.306 +# Ignore comments when computing similarities.
   4.307 +ignore-comments=yes
   4.308 +
   4.309 +
   4.310 +
     5.1 --- a/tools/python/xen/sv/DomInfo.py	Sun Sep 11 21:12:40 2005 +0100
     5.2 +++ b/tools/python/xen/sv/DomInfo.py	Sun Sep 11 21:40:15 2005 +0100
     5.3 @@ -75,7 +75,7 @@ class DomGeneralTab( CompositeTab ):
     5.4         
     5.5  class DomGenTab( GeneralTab ):
     5.6  
     5.7 -    def __init__( self, urlWriter ):
     5.8 +    def __init__( self, _ ):
     5.9      
    5.10          titles = {}
    5.11      
    5.12 @@ -103,7 +103,7 @@ class DomGenTab( GeneralTab ):
    5.13              
    5.14  class DomSXPTab( PreTab ):
    5.15  
    5.16 -    def __init__( self, urlWriter ):
    5.17 +    def __init__( self, _ ):
    5.18          self.dom = 0
    5.19          PreTab.__init__( self, "" )
    5.20  
    5.21 @@ -126,7 +126,7 @@ class DomSXPTab( PreTab ):
    5.22         
    5.23  class DomActionTab( ActionTab ):
    5.24  
    5.25 -    def __init__( self, urlWriter ):
    5.26 +    def __init__( self, _ ):
    5.27      	actions = { "shutdown" : "Shutdown",
    5.28          	    "reboot" : "Reboot",
    5.29                      "pause" : "Pause",
    5.30 @@ -188,19 +188,19 @@ class DomDeviceListTab( NullTab ):
    5.31  
    5.32      title = "Device List"
    5.33  
    5.34 -    def __init__( self, urlWriter ):
    5.35 +    def __init__( self, _ ):
    5.36          pass
    5.37  
    5.38  class DomDeviceOptionsTab( NullTab ):
    5.39  
    5.40      title = "Device Options"
    5.41  
    5.42 -    def __init__( self, urlWriter ):
    5.43 +    def __init__( self, _ ):
    5.44          pass
    5.45  
    5.46  class DomDeviceActionTab( ActionTab ):
    5.47  
    5.48 -    def __init__( self, urlWriter ):
    5.49 +    def __init__( self, _ ):
    5.50          ActionTab.__init__( self, { "addvcpu" : "Add VCPU", "addvbd" : "Add VBD", "addvif" : "Add VIF" } )
    5.51  
    5.52  class DomMigrateTab( CompositeTab ):
    5.53 @@ -218,7 +218,7 @@ class DomMigrateExtraTab( Sheet ):
    5.54                                                                                                              
    5.55  class DomMigrateActionTab( ActionTab ):
    5.56  
    5.57 -    def __init__( self, urlWriter ):
    5.58 +    def __init__( self, _ ):
    5.59          actions = { "migrate" : "Migrate" }
    5.60          ActionTab.__init__( self, actions )
    5.61                  
    5.62 @@ -249,7 +249,7 @@ class DomSaveExtraTab( Sheet ):
    5.63                 
    5.64  class DomSaveActionTab( ActionTab ):
    5.65  
    5.66 -    def __init__( self, urlWriter ):
    5.67 +    def __init__( self, _ ):
    5.68          actions = { "save" : "Save" }
    5.69          ActionTab.__init__( self, actions )
    5.70  
     6.1 --- a/tools/python/xen/xend/XendVnet.py	Sun Sep 11 21:12:40 2005 +0100
     6.2 +++ b/tools/python/xen/xend/XendVnet.py	Sun Sep 11 21:40:15 2005 +0100
     6.3 @@ -145,7 +145,7 @@ class XendVnet:
     6.4      def vnet_get(self, id):
     6.5          """Get a vnet.
     6.6  
     6.7 -        @param id: vnet id
     6.8 +        @param id vnet id
     6.9          """
    6.10          id = str(id)
    6.11          return self.vnet.get(id)
     7.1 --- a/tools/python/xen/xend/scheduler.py	Sun Sep 11 21:12:40 2005 +0100
     7.2 +++ b/tools/python/xen/xend/scheduler.py	Sun Sep 11 21:40:15 2005 +0100
     7.3 @@ -20,8 +20,8 @@ import threading
     7.4  def later(delay, fn, args=(), kwargs={}):
     7.5      """Schedule a function to be called later.
     7.6  
     7.7 -    @param _delay: delay in seconds
     7.8 -    @param _fn:    function
     7.9 +    @param delay:  delay in seconds
    7.10 +    @param fn:     function
    7.11      @param args:   arguments (list)
    7.12      @param kwargs  keyword arguments (map)
    7.13      """
    7.14 @@ -32,7 +32,7 @@ def later(delay, fn, args=(), kwargs={})
    7.15  def now(fn, args=(), kwargs={}):
    7.16      """Schedule a function to be called now.
    7.17  
    7.18 -    @param _fn:    function
    7.19 +    @param fn:     function
    7.20      @param args:   arguments (list)
    7.21      @param kwargs  keyword arguments (map)
    7.22      """