# HG changeset patch
# User Thomas De Schampheleire <[email protected]>
# Date 1552681272 -3600
#      Fri Mar 15 21:21:12 2019 +0100
# Node ID c28490c48e1d51898e9ffb3c5dac112ece7b3821
# Parent  04bfb03e74e911d719bb0917c4b486b158779262
scripts: extract contributor data out of update-copyrights.py

... to allow re-use in other scripts, like shortlog.py.

diff --git a/scripts/contributor_data.py b/scripts/contributor_data.py
new file mode 100644
--- /dev/null
+++ b/scripts/contributor_data.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+
+# Some committers are so wrong that it doesn't point at any contributor:
+total_ignore = set()
+total_ignore.add('*** failed to import extension hggit: No module named hggit')
+total_ignore.add('<>')
+
+# Normalize some committer names where people have contributed under different
+# names or email addresses:
+name_fixes = {}
+name_fixes['Andrew Shadura'] = "Andrej Shadura <[email protected]>"
+name_fixes['aparkar'] = "Aparkar <[email protected]>"
+name_fixes['Aras Pranckevicius'] = "Aras Pranckevičius <[email protected]>"
+name_fixes['Augosto Hermann'] = "Augusto Herrmann 
<[email protected]>"
+name_fixes['"Bradley M. Kuhn" <[email protected]>'] = "Bradley M. Kuhn 
<[email protected]>"
+name_fixes['dmitri.kuznetsov'] = "Dmitri Kuznetsov"
+name_fixes['Dmitri Kuznetsov'] = "Dmitri Kuznetsov"
+name_fixes['domruf'] = "Dominik Ruf <[email protected]>"
+name_fixes['Ingo von borstel'] = "Ingo von Borstel <[email protected]>"
+name_fixes['Jan Heylen'] = "Jan Heylen <[email protected]>"
+name_fixes['Jason F. Harris'] = "Jason Harris <[email protected]>"
+name_fixes['Jelmer Vernooij'] = "Jelmer Vernooij <[email protected]>"
+name_fixes['jfh <[email protected]>'] = "Jason Harris 
<[email protected]>"
+name_fixes['Leonardo Carneiro<[email protected]>'] = "Leonardo Carneiro 
<[email protected]>"
+name_fixes['leonardo'] = "Leonardo Carneiro <[email protected]>"
+name_fixes['Leonardo <[email protected]>'] = "Leonardo Carneiro 
<[email protected]>"
+name_fixes['Les Peabody'] = "Les Peabody <[email protected]>"
+name_fixes['"Lorenzo M. Catucci" <[email protected]>'] = "Lorenzo 
M. Catucci <[email protected]>"
+name_fixes['Lukasz Balcerzak'] = "Łukasz Balcerzak <[email protected]>"
+name_fixes['mao <[email protected]>'] = "Ching-Chen Mao 
<[email protected]>"
+name_fixes['marcink'] = "Marcin Kuźmiński <[email protected]>"
+name_fixes['Marcin Kuzminski'] = "Marcin Kuźmiński <[email protected]>"
+name_fixes['[email protected]'] = "nansenat16 <[email protected]>"
+name_fixes['Peter Vitt'] = "Peter Vitt <[email protected]>"
+name_fixes['[email protected]'] = "Philip Jameson <[email protected]>"
+name_fixes['Søren Løvborg'] = "Søren Løvborg <[email protected]>"
+name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire 
<[email protected]>"
+name_fixes['Weblate'] = "<>"
+name_fixes['xpol'] = "xpol <[email protected]>"
+name_fixes['Lars <[email protected]>'] = "Lars Kruse <[email protected]>"
+
+# Some committer email address domains that indicate that another entity might
+# hold some copyright too:
+domain_extra = {}
+domain_extra['unity3d.com'] = "Unity Technologies"
+domain_extra['rhodecode.com'] = "RhodeCode GmbH"
+
+# Repository history show some old contributions that traditionally hasn't been
+# listed in about.html - preserve that:
+no_about = set(total_ignore)
+# The following contributors were traditionally not listed in about.html and it
+# seems unclear if the copyright is personal or belongs to a company.
+no_about.add(('Thayne Harbaugh <[email protected]>', '2011'))
+no_about.add(('Dies Koper <[email protected]>', '2012'))
+no_about.add(('Erwin Kroon <[email protected]>', '2012'))
+no_about.add(('Vincent Caron <[email protected]>', '2012'))
+# These contributors' contributions might be too small to be copyrightable:
+no_about.add(('[email protected]', '2012'))
+no_about.add(('Stefan Engel <[email protected]>', '2012'))
+no_about.add(('Ton Plomp <[email protected]>', '2013'))
+# Was reworked and contributed later and shadowed by other contributions:
+no_about.add(('Sean Farley <[email protected]>', '2013'))
+
+# Preserve contributors listed in about.html but not appearing in repository
+# history:
+other_about = [
+    ("2011", "Aparkar <[email protected]>"),
+    ("2010", "RhodeCode GmbH"),
+    ("2011", "RhodeCode GmbH"),
+    ("2012", "RhodeCode GmbH"),
+    ("2013", "RhodeCode GmbH"),
+]
+
+# Preserve contributors listed in CONTRIBUTORS but not appearing in repository
+# history:
+other_contributors = [
+    ("", "Andrew Kesterson <[email protected]>"),
+    ("", "cejones"),
+    ("", "David A. Sjøen <[email protected]>"),
+    ("", "James Rhodes <[email protected]>"),
+    ("", "Jonas Oberschweiber <[email protected]>"),
+    ("", "larikale"),
+    ("", "RhodeCode GmbH"),
+    ("", "Sebastian Kreutzberger <[email protected]>"),
+    ("", "Steve Romanow <[email protected]>"),
+    ("", "SteveCohen"),
+    ("", "Thomas <[email protected]>"),
+    ("", "Thomas Waldmann <[email protected]>"),
+]
diff --git a/scripts/update-copyrights.py b/scripts/update-copyrights.py
--- a/scripts/update-copyrights.py
+++ b/scripts/update-copyrights.py
@@ -38,100 +38,10 @@ When the copyright might belong to a dif
 contributor, the legal entity is given credit too.
 """
 
-
-# Some committers are so wrong that it doesn't point at any contributor:
-total_ignore = set()
-total_ignore.add('*** failed to import extension hggit: No module named hggit')
-total_ignore.add('<>')
-
-# Normalize some committer names where people have contributed under different
-# names or email addresses:
-name_fixes = {}
-name_fixes['Andrew Shadura'] = "Andrej Shadura <[email protected]>"
-name_fixes['aparkar'] = "Aparkar <[email protected]>"
-name_fixes['Aras Pranckevicius'] = "Aras Pranckevičius <[email protected]>"
-name_fixes['Augosto Hermann'] = "Augusto Herrmann 
<[email protected]>"
-name_fixes['"Bradley M. Kuhn" <[email protected]>'] = "Bradley M. Kuhn 
<[email protected]>"
-name_fixes['dmitri.kuznetsov'] = "Dmitri Kuznetsov"
-name_fixes['Dmitri Kuznetsov'] = "Dmitri Kuznetsov"
-name_fixes['domruf'] = "Dominik Ruf <[email protected]>"
-name_fixes['Ingo von borstel'] = "Ingo von Borstel <[email protected]>"
-name_fixes['Jan Heylen'] = "Jan Heylen <[email protected]>"
-name_fixes['Jason F. Harris'] = "Jason Harris <[email protected]>"
-name_fixes['Jelmer Vernooij'] = "Jelmer Vernooij <[email protected]>"
-name_fixes['jfh <[email protected]>'] = "Jason Harris 
<[email protected]>"
-name_fixes['Leonardo Carneiro<[email protected]>'] = "Leonardo Carneiro 
<[email protected]>"
-name_fixes['leonardo'] = "Leonardo Carneiro <[email protected]>"
-name_fixes['Leonardo <[email protected]>'] = "Leonardo Carneiro 
<[email protected]>"
-name_fixes['Les Peabody'] = "Les Peabody <[email protected]>"
-name_fixes['"Lorenzo M. Catucci" <[email protected]>'] = "Lorenzo 
M. Catucci <[email protected]>"
-name_fixes['Lukasz Balcerzak'] = "Łukasz Balcerzak <[email protected]>"
-name_fixes['mao <[email protected]>'] = "Ching-Chen Mao 
<[email protected]>"
-name_fixes['marcink'] = "Marcin Kuźmiński <[email protected]>"
-name_fixes['Marcin Kuzminski'] = "Marcin Kuźmiński <[email protected]>"
-name_fixes['[email protected]'] = "nansenat16 <[email protected]>"
-name_fixes['Peter Vitt'] = "Peter Vitt <[email protected]>"
-name_fixes['[email protected]'] = "Philip Jameson <[email protected]>"
-name_fixes['Søren Løvborg'] = "Søren Løvborg <[email protected]>"
-name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire 
<[email protected]>"
-name_fixes['Weblate'] = "<>"
-name_fixes['xpol'] = "xpol <[email protected]>"
-name_fixes['Lars <[email protected]>'] = "Lars Kruse <[email protected]>"
-
-
-# Some committer email address domains that indicate that another entity might
-# hold some copyright too:
-domain_extra = {}
-domain_extra['unity3d.com'] = "Unity Technologies"
-domain_extra['rhodecode.com'] = "RhodeCode GmbH"
-
-# Repository history show some old contributions that traditionally hasn't been
-# listed in about.html - preserve that:
-no_about = set(total_ignore)
-# The following contributors were traditionally not listed in about.html and it
-# seems unclear if the copyright is personal or belongs to a company.
-no_about.add(('Thayne Harbaugh <[email protected]>', '2011'))
-no_about.add(('Dies Koper <[email protected]>', '2012'))
-no_about.add(('Erwin Kroon <[email protected]>', '2012'))
-no_about.add(('Vincent Caron <[email protected]>', '2012'))
-# These contributors' contributions might be too small to be copyrightable:
-no_about.add(('[email protected]', '2012'))
-no_about.add(('Stefan Engel <[email protected]>', '2012'))
-no_about.add(('Ton Plomp <[email protected]>', '2013'))
-# Was reworked and contributed later and shadowed by other contributions:
-no_about.add(('Sean Farley <[email protected]>', '2013'))
-
-# Preserve contributors listed in about.html but not appearing in repository
-# history:
-other_about = [
-    ("2011", "Aparkar <[email protected]>"),
-    ("2010", "RhodeCode GmbH"),
-    ("2011", "RhodeCode GmbH"),
-    ("2012", "RhodeCode GmbH"),
-    ("2013", "RhodeCode GmbH"),
-]
-
-# Preserve contributors listed in CONTRIBUTORS but not appearing in repository
-# history:
-other_contributors = [
-    ("", "Andrew Kesterson <[email protected]>"),
-    ("", "cejones"),
-    ("", "David A. Sjøen <[email protected]>"),
-    ("", "James Rhodes <[email protected]>"),
-    ("", "Jonas Oberschweiber <[email protected]>"),
-    ("", "larikale"),
-    ("", "RhodeCode GmbH"),
-    ("", "Sebastian Kreutzberger <[email protected]>"),
-    ("", "Steve Romanow <[email protected]>"),
-    ("", "SteveCohen"),
-    ("", "Thomas <[email protected]>"),
-    ("", "Thomas Waldmann <[email protected]>"),
-]
-
-
 import os
 import re
 from collections import defaultdict
+import contributor_data
 
 
 def sortkey(x):
@@ -209,7 +119,7 @@ def insert_entries(
 
 def main():
     repo_entries = [
-        (year, name_fixes.get(name) or name_fixes.get(name.rsplit('<', 
1)[0].strip()) or name)
+        (year, contributor_data.name_fixes.get(name) or 
contributor_data.name_fixes.get(name.rsplit('<', 1)[0].strip()) or name)
         for year, name in
         (line.strip().split(' ', 1)
          for line in os.popen("""hg log -r '::.' -T '{date(date,"%Y")} 
{author}\n'""").readlines())
@@ -217,9 +127,9 @@ def main():
 
     insert_entries(
         filename='kallithea/templates/about.html',
-        all_entries=repo_entries + other_about,
-        no_entries=no_about,
-        domain_extra=domain_extra,
+        all_entries=repo_entries + contributor_data.other_about,
+        no_entries=contributor_data.no_about,
+        domain_extra=contributor_data.domain_extra,
         split_re=r'(?:  <li>Copyright &copy; [^\n]*</li>\n)*',
         normalize_name=lambda name: name.split('<', 1)[0].strip(),
         format_f=lambda years, name: '  <li>Copyright &copy; %s, %s</li>\n' % 
(nice_years(years, '&ndash;', ', '), name),
@@ -227,9 +137,9 @@ def main():
 
     insert_entries(
         filename='CONTRIBUTORS',
-        all_entries=repo_entries + other_contributors,
-        no_entries=total_ignore,
-        domain_extra=domain_extra,
+        all_entries=repo_entries + contributor_data.other_contributors,
+        no_entries=contributor_data.total_ignore,
+        domain_extra=contributor_data.domain_extra,
         split_re=r'(?:    [^\n]*\n)*',
         normalize_name=lambda name: name,
         format_f=lambda years, name: ('    %s%s%s\n' % (name, ' ' if years 
else '', nice_years(years))),
@@ -238,7 +148,7 @@ def main():
     insert_entries(
         filename='kallithea/templates/base/base.html',
         all_entries=repo_entries,
-        no_entries=total_ignore,
+        no_entries=contributor_data.total_ignore,
         domain_extra={},
         split_re=r'(?<=&copy;) .* (?=by various authors)',
         normalize_name=lambda name: '',
_______________________________________________
kallithea-general mailing list
[email protected]
https://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to