diff options
| author | Barry Warsaw | 2009-06-30 06:14:49 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2009-06-30 06:14:49 -0400 |
| commit | fc07eb2b464eaea1f3dcc9ce4d57343571e8527f (patch) | |
| tree | c8d7c87af7cdf0bf46cca711129c699128cf4432 | |
| parent | 9e97e8ae31450ce6a308f700fc358710462c01f8 (diff) | |
| download | mailman-fc07eb2b464eaea1f3dcc9ce4d57343571e8527f.tar.gz mailman-fc07eb2b464eaea1f3dcc9ce4d57343571e8527f.tar.zst mailman-fc07eb2b464eaea1f3dcc9ce4d57343571e8527f.zip | |
| -rwxr-xr-x | .buildout/bin/lint.sh.in | 4 | ||||
| -rw-r--r-- | buildout.cfg | 25 | ||||
| -rw-r--r-- | pylint.rc | 310 | ||||
| -rw-r--r-- | setup.py | 3 | ||||
| -rw-r--r-- | src/mailman/docs/README.txt | 91 | ||||
| -rw-r--r-- | src/sphinxconf.py | 8 |
6 files changed, 441 insertions, 0 deletions
diff --git a/.buildout/bin/lint.sh.in b/.buildout/bin/lint.sh.in new file mode 100755 index 000000000..4bb912bbc --- /dev/null +++ b/.buildout/bin/lint.sh.in @@ -0,0 +1,4 @@ +#! /bin/bash + +export PYTHONPATH=${os-paths} +bin/pylint ${package} --rcfile=pylint.rc diff --git a/buildout.cfg b/buildout.cfg index f2ff616a9..dd6708ccc 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -1,6 +1,9 @@ [buildout] parts = + docs + filetemplates interpreter + pylint tags test unzip = true @@ -24,3 +27,25 @@ defaults = '--tests-pattern ^tests --exit-with-status'.split() # Hack in extra arguments to zope.testrunner. initialization = from mailman.testing.layers import ConfigLayer; ConfigLayer.hack_options_parser() + +[docs] +recipe = z3c.recipe.sphinxdoc +eggs = mailman [docs] +index-doc = docs/README +default.css = +layout.html = +extensions = sphinxconf + +[filetemplates] +recipe = z3c.recipe.filetemplate +source-directory = .buildout +package = mailman +eggs = mailman + +[pylint] +recipe = zc.recipe.egg +eggs = + logilab.pylintinstaller + pylint==0.15.2 +entry-points = pylint=pylint.lint:Run +arguments = sys.argv[1:] diff --git a/pylint.rc b/pylint.rc new file mode 100644 index 000000000..84e3b13ac --- /dev/null +++ b/pylint.rc @@ -0,0 +1,310 @@ +# lint Python modules using external checkers. +# +# This is the main checker controlling the other ones and the reports +# generation. It is itself both a raw checker and an astng checker in order +# to: +# * handle message activation / deactivation at the module level +# * handle some basic but necessary stats'data (number of classes, methods...) +# +[MASTER] + +# Specify a configuration file. +#rcfile= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Profiled execution. +profile=no + +# Add <file or directory> to the black list. It should be a base name, not a +# path. You may set this option multiple times. +ignore=CVS + +# Pickle collected data for later comparisons. +persistent=no + +# Set the cache size for astng objects. +cache-size=500 + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + + +[MESSAGES CONTROL] + +# Enable only checker(s) with the given id(s). This option conflicts with the +# disable-checker option +#enable-checker= + +# Enable all checker(s) except those with the given id(s). This option +# conflicts with the enable-checker option +#disable-checker= + +# Enable all messages in the listed categories. +#enable-msg-cat= + +# Disable all messages in the listed categories. +#disable-msg-cat= + +# Enable the message(s) with the given id(s). +#enable-msg= + +# Disable the message(s) with the given id(s). +# I0011: *Locally disabling %s* +disable-msg=I0011 + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html +output-format=parseable + +# Include message's id in output +include-ids=yes + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". +files-output=no + +# Tells wether to display a full report or only the messages +reports=no + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectivly contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (R0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Add a comment according to your evaluation note. This is used by the global +# evaluation report (R0004). +comment=no + +# Enable the report(s) with the given id(s). +#enable-report= + +# Disable the report(s) with the given id(s). +#disable-report= + + +# checks for : +# * doc strings +# * modules / classes / functions / methods / arguments / variables name +# * number of arguments, local variables, branchs, returns and statements in +# functions, methods +# * required module attributes +# * dangerous default values as arguments +# * redefinition of function / method / class +# * uses of the global statement +# +[BASIC] + +# Required attributes for module, separated by a comma +required-attributes= + +# Regular expression which should only match functions or classes name which do +# not require a docstring +no-docstring-rgx=__.*__ + +# Regular expression which should only match correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression which should only match correct module level names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression which should only match correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression which should only match correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct method names +method-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct instance attribute names +attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct list comprehension / +# generator expression variable names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,ex,Run,_ + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata + +# List of builtins function names that should not be used, separated by a comma +bad-functions=map,filter,apply,input + + +# try to find bugs in the code using type inference +# +[TYPECHECK] + +# Tells wether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# List of classes names for which member attributes should not be checked +# (useful for classes with attributes dynamicaly set). +ignored-classes=SQLObject + +# When zope mode is activated, add a predefined set of Zope acquired attributes +# to generated-members. +zope=no + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E0201 when accessed. +generated-members=REQUEST,acl_users,aq_parent + + +# checks for +# * unused variables / imports +# * undefined variables +# * redefinition of variable from builtins or from an outer scope +# * use of variable before assigment +# +[VARIABLES] + +# Tells wether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching names used for dummy variables (i.e. not used). +dummy-variables-rgx=_|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + + +# checks for : +# * methods without self as first argument +# * overridden methods signature +# * access only to existant members via self +# * attributes not defined in the __init__ method +# * supported interfaces implementation +# * unreachable code +# +[CLASSES] + +# List of interface methods to ignore, separated by a comma. This is used for +# instance to not check methods defines in Zope's Interface base class. +ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + + +# checks for sign of poor/misdesign: +# * number of methods, attributes, local variables... +# * size, complexity of functions, methods +# +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branchs=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=50 + + +# checks for +# * external modules dependencies +# * relative / wildcard imports +# * cyclic imports +# * uses of deprecated modules +# +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=regsub,string,TERMIOS,Bastion,rexec + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report R0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report R0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report R0402 must +# not be disabled) +int-import-graph= + + +# checks for : +# * unauthorized constructions +# * strict indentation +# * line length +# * use of <> instead of != +# +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=80 + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + + +# checks for: +# * warning notes in the code like FIXME, XXX +# * PEP 263: source code with non ascii character but no encoding declaration +# +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + +# checks for similarities and duplicated code. This computation may be +# memory / CPU intensive, so you should disable it if you experiments some +# problems. +# +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes @@ -101,4 +101,7 @@ case second `m'. Any other spelling is incorrect.""", setup_requires = [ 'setuptools_bzr', ], + extras_require=dict( + docs=['Sphinx', 'z3c.recipe.sphinxdoc'], + ) ) diff --git a/src/mailman/docs/README.txt b/src/mailman/docs/README.txt new file mode 100644 index 000000000..20fe32a1c --- /dev/null +++ b/src/mailman/docs/README.txt @@ -0,0 +1,91 @@ +================================================ +Mailman - The GNU Mailing List Management System +================================================ + +This is `GNU Mailman`_, a mailing list management system distributed under the +terms of the `GNU General Public License`_ (GPL) version 3 or later. + +Mailman is written in Python_, a free object-oriented programming language. +Python is available for all platforms that Mailman is supported on, which +includes GNU/Linux and most other Unix-like operating systems (e.g. Solaris, +\*BSD, MacOSX, etc.). Mailman is not supported on Windows, although web and +mail clients on any platform should be able to interact with Mailman just +fine. + + +Copyright +========= + +Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2008, 2009 by the Free Software Foundation, Inc. + +This file is part of GNU Mailman. + +GNU Mailman is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. + +GNU Mailman is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +GNU Mailman. If not, see <http://www.gnu.org/licenses/>. + + +Spelling +======== + +The name of this software is spelled `Mailman` with a leading capital `M` +but with a lower case second `m`. Any other spelling is incorrect. Its full +name is `GNU Mailman` but is often referred colloquially as `Mailman`. + + +History +======= + +Mailman was originally developed by John Viega. Subsequent development +(through version 1.0b3) was by Ken Manheimer. Further work towards the 1.0 +final release was a group effort, with the core contributors being: Barry +Warsaw, Ken Manheimer, Scott Cotton, Harald Meland, and John Viega. Version +1.0 and beyond have been primarily maintained by Barry Warsaw with +contributions from many; see the ACKNOWLEDGMENTS file for details. Jeremy +Hylton helped considerably with the Pipermail code in Mailman 2.0. Mailman +2.1 is now being primarily maintained by Mark Sapiro and Tokio Kikuchi. Barry +Warsaw is the lead developer on Mailman 3. + + +Help +==== + +The Mailman home page is: + + http://www.list.org + +with mirrors at: + + http://www.gnu.org/software/mailman + http://mailman.sf.net + +The community driven wiki (including the FAQ_) is at: + + http://wiki.list.org + +Other help resources, such as on-line documentation, links to the mailing +lists and archives, etc., are available at: + + http://www.list.org/help.html + + +Requirements +============ + +Mailman 3.0 requires `Python 2.6` or newer. + + +.. _`GNU Mailman`: http://www.list.org +.. _`GNU General Public License`: http://www.gnu.org/licenses/gpl.txt +.. _Python: http://www.python.org +.. _FAQ: http://wiki.list.org/display/DOC/Frequently+Asked+Questions +.. _`Python 2.6`: http://www.python.org/download/releases/2.6.2/ diff --git a/src/sphinxconf.py b/src/sphinxconf.py new file mode 100644 index 000000000..2fae422d3 --- /dev/null +++ b/src/sphinxconf.py @@ -0,0 +1,8 @@ +# Sphinx documentation configuration file. +def setup(app): + # hack the 'exclude_trees' configuration value so that our bounce examples + # aren't interpreted as documentation. + app.config.config_values['exclude_trees'][0].extend([ + 'tests/bounces', + 'templates', + ]) |
