+# Break "copyright" into "copy" and "right" to avoid matching the
+# REGEXP.
+COPY_RIGHT_TEXT="""
+This file is part of %(project)s.
+
+%(project)s is free software: you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation, either
+version 3 of the License, or (at your option) any later version.
+
+%(project)s 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with %(project)s. If not, see
+<http://www.gnu.org/licenses/>.
+""".strip()
+
+COPY_RIGHT_TAG='-xyz-COPY' + '-RIGHT-zyx-' # unlikely to occur in the wild :p
+
+ALIASES = {
+ 'A. Seeholzer':
+ ['A. Seeholzer'],
+ 'Alberto Gomez-Casado':
+ ['albertogomcas'],
+ 'Massimo Sandal <devicerandom@gmail.com>':
+ ['Massimo Sandal',
+ 'devicerandom',
+ 'unknown'],
+ 'Fabrizio Benedetti':
+ ['fabrizio.benedetti.82'],
+ 'Richard Naud <richard.naud@epfl.ch>':
+ ['Richard Naud'],
+ 'Rolf Schmidt <rschmidt@alcor.concordia.ca>':
+ ['Rolf Schmidt',
+ 'illysam'],
+ 'Marco Brucale':
+ ['marcobrucale'],
+ 'Pancaldi Paolo':
+ ['pancaldi.paolo'],
+ }
+
+IGNORED_PATHS = ['./.hg/', './doc/img/', './test/data/',
+ './build/', './doc/build/']
+IGNORED_FILES = ['COPYING', 'COPYING.LESSER']
+
+# Work around missing author holes in the VCS history
+AUTHOR_HACKS = {
+ ('hooke','driver','hdf5.py'):['Massimo Sandal'],
+ ('hooke','driver','mcs.py'):['Allen Chen'],
+ ('hooke','driver','mfp3d.py'):['A. Seeholzer','Richard Naud','Rolf Schmidt',
+ 'Alberto Gomez-Casado'],
+ ('hooke','util','peak.py'):['Fabrizio Benedetti'],
+ ('hooke','plugin','showconvoluted.py'):['Rolf Schmidt'],
+ ('hooke','ui','gui','formatter.py'):['Francesco Musiani','Massimo Sandal'],
+ ('hooke','ui','gui','prettyformat.py'):['Rolf Schmidt'],
+ }
+
+# Work around missing year holes in the VCS history
+YEAR_HACKS = {
+ ('hooke','driver','hdf5.py'):2009,
+ ('hooke','driver','mfp3d.py'):2008,
+ ('hooke','driver','picoforce.py'):2006,
+ ('hooke','driver','picoforcealt.py'):2006,
+ ('hooke','util','peak.py'):2007,
+ ('hooke','plugin','showconvoluted.py'):2009,
+ ('hooke','plugin','tutorial.py'):2007,
+ ('hooke','ui','gui','formatter.py'):2006,
+ ('hooke','ui','gui','prettyformat.py'):2009,
+ }
+
+# Helpers for VCS-specific commands
+
+def splitpath(path):
+ """Recursively split a path into elements.
+
+ Examples
+ --------
+
+ >>> splitpath(os.path.join('a', 'b', 'c'))
+ ('a', 'b', 'c')
+ >>> splitpath(os.path.join('.', 'a', 'b', 'c'))
+ ('a', 'b', 'c')