update to use python3 by default
Set tox to use python3 as the base python so that all of the environments default to python3. Fix various issues with code associated with the change to make it work under python 3. Change-Id: I29f9514f83aa97740e55adddaeff76d0800135bc Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
parent
4bf3da91a6
commit
446fc28df7
@ -55,9 +55,9 @@ class ExtraATCsTable(tables.Table):
|
||||
try:
|
||||
col_widths = self.get_column_widths(len(self.HEADERS))
|
||||
title, messages = self.make_title()
|
||||
except SystemMessagePropagation, detail:
|
||||
except SystemMessagePropagation as detail:
|
||||
return [detail.args[0]]
|
||||
except Exception, err:
|
||||
except Exception as err:
|
||||
error = self.state_machine.reporter.error(
|
||||
'Error processing memberstable directive:\n%s' % err,
|
||||
nodes.literal_block(self.block_text, self.block_text),
|
||||
@ -125,7 +125,7 @@ class ExtraATCsTable(tables.Table):
|
||||
# in re match group with empty string.
|
||||
cell = row.get(self.HEADER_MAP[h]) or ''
|
||||
entry = nodes.entry()
|
||||
para = nodes.paragraph(text=unicode(cell))
|
||||
para = nodes.paragraph(text=str(cell))
|
||||
entry += para
|
||||
trow += entry
|
||||
rows.append(trow)
|
||||
|
@ -15,7 +15,8 @@ Generate badges for the projects
|
||||
"""
|
||||
|
||||
import os
|
||||
from itertools import chain, izip_longest
|
||||
from itertools import chain
|
||||
from itertools import zip_longest
|
||||
|
||||
from PIL import ImageFont
|
||||
|
||||
@ -124,14 +125,14 @@ def _organize_badges(badges):
|
||||
sbadges = sorted(badges, key=lambda badge: badge['width'])
|
||||
|
||||
# NOTE(flaper87): 4 is the number of columns
|
||||
ziped = list(izip_longest(*(iter(sbadges),) * 4))
|
||||
ziped = list(zip_longest(*(iter(sbadges),) * 4))
|
||||
|
||||
result = []
|
||||
for y, group in enumerate(ziped):
|
||||
result.append([])
|
||||
col_x = 0
|
||||
for x, badge in enumerate(group):
|
||||
# NOTE(flaper87): izip_longest fills the
|
||||
# NOTE(flaper87): zip_longest fills the
|
||||
# empty slots with None. We don't care about
|
||||
# those.
|
||||
if badge is None:
|
||||
@ -156,7 +157,7 @@ def _organize_badges(badges):
|
||||
|
||||
def _to_svg(badges):
|
||||
for badge in badges:
|
||||
yield FLAT_BADGE_TEMPLATE.format(**badge).encode('utf-8')
|
||||
yield FLAT_BADGE_TEMPLATE.format(**badge)
|
||||
|
||||
|
||||
def _generate_teams_badges(app):
|
||||
@ -169,8 +170,8 @@ def _generate_teams_badges(app):
|
||||
|
||||
filename = os.path.join(badges_dir, 'project-unofficial.svg')
|
||||
svg_data = _generate_badge('project', 'unofficial', colorscheme='red')
|
||||
svg = FLAT_BADGE_TEMPLATE.format(**svg_data).encode('utf-8')
|
||||
with open(filename, 'w') as f:
|
||||
svg = FLAT_BADGE_TEMPLATE.format(**svg_data)
|
||||
with open(filename, 'w', encoding='utf-8') as f:
|
||||
f.write(SVG_ROOT.format(height=20, width=106, svg=svg))
|
||||
files.append(filename)
|
||||
|
||||
|
@ -77,9 +77,9 @@ class MembersTable(tables.Table):
|
||||
try:
|
||||
col_widths = self.get_column_widths(len(self.HEADERS))
|
||||
title, messages = self.make_title()
|
||||
except SystemMessagePropagation, detail:
|
||||
except SystemMessagePropagation as detail:
|
||||
return [detail.args[0]]
|
||||
except Exception, err:
|
||||
except Exception as err:
|
||||
error = self.state_machine.reporter.error(
|
||||
'Error processing memberstable directive:\n%s' % err,
|
||||
nodes.literal_block(self.block_text, self.block_text),
|
||||
@ -138,7 +138,7 @@ class MembersTable(tables.Table):
|
||||
# in re match group with empty string.
|
||||
cell = row.get(self.HEADER_MAP[h]) or ''
|
||||
entry = nodes.entry()
|
||||
para = nodes.paragraph(text=unicode(cell))
|
||||
para = nodes.paragraph(text=str(cell))
|
||||
entry += para
|
||||
trow += entry
|
||||
rows.append(trow)
|
||||
|
@ -37,5 +37,5 @@ def setup(app):
|
||||
|
||||
filename = os.path.abspath('reference/projects.yaml')
|
||||
app.info('reading %s' % filename)
|
||||
with open(filename, 'r') as f:
|
||||
_projects_yaml = yaml.safe_load(f.read().decode('utf-8'))
|
||||
with open(filename, 'r', encoding='utf-8') as f:
|
||||
_projects_yaml = yaml.safe_load(f.read())
|
||||
|
@ -111,8 +111,8 @@ def _write_team_pages(app):
|
||||
slug = projects.slugify(team)
|
||||
filename = 'reference/projects/%s.rst' % slug
|
||||
app.info('generating team page for %s' % team)
|
||||
with open(filename, 'w') as f:
|
||||
f.write('\n'.join(_team_to_rst(team, info)).encode('utf-8'))
|
||||
with open(filename, 'w', encoding='utf-8') as f:
|
||||
f.write('\n'.join(_team_to_rst(team, info)))
|
||||
files.append(filename)
|
||||
return files
|
||||
|
||||
|
@ -21,7 +21,7 @@ with open('defcore.csv', 'r') as infile:
|
||||
# Add the spreadsheet row numbers
|
||||
for i, row in enumerate(rows, 3):
|
||||
row.insert(0, str(i))
|
||||
print rows[0]
|
||||
print(rows[0])
|
||||
rows[0][0] = 'Row'
|
||||
|
||||
# Candidate Capabilities,TC Future Direction,Complete,Stable
|
||||
@ -33,9 +33,9 @@ with open('defcore.csv', 'r') as infile:
|
||||
|
||||
header = ' '.join('=' * wid for wid in widths)
|
||||
|
||||
print header
|
||||
print fmt.format(*rows[0])
|
||||
print header
|
||||
print(header)
|
||||
print(fmt.format(*rows[0]))
|
||||
print(header)
|
||||
for row in rows[1:]:
|
||||
print fmt.format(*row)
|
||||
print header
|
||||
print(fmt.format(*row))
|
||||
print(header)
|
||||
|
@ -155,7 +155,7 @@ def get_diversity_stats(project):
|
||||
team_stats['reviews_top2'] = (
|
||||
(float(sum(top2)) / reviews_total * 100) if reviews_total else 0)
|
||||
core_review_values = [company['reviews'] for company in
|
||||
core_reviews_by_company.itervalues()]
|
||||
core_reviews_by_company.values()]
|
||||
if len(core_review_values) == 1:
|
||||
core_review_values = [core_review_values[0], 0]
|
||||
core_review_values.sort(reverse=True)
|
||||
@ -167,7 +167,7 @@ def get_diversity_stats(project):
|
||||
((float(core_review_values[0]) + float(core_review_values[1])) /
|
||||
core_reviews_total * 100) if core_reviews_total else 0)
|
||||
core_reviewers_values = [company['reviewers'] for company in
|
||||
core_reviews_by_company.itervalues()]
|
||||
core_reviews_by_company.values()]
|
||||
if len(core_reviewers_values) == 1:
|
||||
core_reviewers_values = [core_reviewers_values[0], 0]
|
||||
core_reviewers_values.sort(reverse=True)
|
||||
@ -210,19 +210,19 @@ def is_single_vendor(team):
|
||||
|
||||
def print_diversity(team):
|
||||
team_stats = get_diversity_stats(team)
|
||||
print '%-18s (%.2f%% | %.2f%% | %.2f%% | %.2f%%)' % (
|
||||
print('%-18s (%.2f%% | %.2f%% | %.2f%% | %.2f%%)' % (
|
||||
team, team_stats['commits_top'], team_stats['reviews_top'],
|
||||
team_stats['core_reviews_top'], team_stats['core_reviewers_top'])
|
||||
print '%-18s (%.2f%% | %.2f%% | %.2f%% | %.2f%%)' % (
|
||||
team_stats['core_reviews_top'], team_stats['core_reviewers_top']))
|
||||
print('%-18s (%.2f%% | %.2f%% | %.2f%% | %.2f%%)' % (
|
||||
'', team_stats['commits_top2'], team_stats['reviews_top2'],
|
||||
team_stats['core_reviews_top2'], team_stats['core_reviewers_top2'])
|
||||
team_stats['core_reviews_top2'], team_stats['core_reviewers_top2']))
|
||||
|
||||
|
||||
def print_team_size(team):
|
||||
team_stats = get_team_size_stats(team)
|
||||
print '%-18s (%6s | %6s)' % (
|
||||
print('%-18s (%6s | %6s)' % (
|
||||
'', team_stats['active_committers'],
|
||||
team_stats['active_reviewers'])
|
||||
team_stats['active_reviewers']))
|
||||
|
||||
|
||||
class ValidateDiversity(base.ValidatorBase):
|
||||
@ -254,11 +254,11 @@ def main():
|
||||
with open(filename, 'r') as f:
|
||||
projects = [k for k in yaml.safe_load(f.read())]
|
||||
projects.sort()
|
||||
print '<Team> (top commit % | top review % | top core review % | ' \
|
||||
'top core reviewer %)'
|
||||
print ' (top 2 commit % | top 2 review % | top 2 core review % | ' \
|
||||
'top 2 core reviewer %)'
|
||||
print ' (active committers | active reviewers)'
|
||||
print('<Team> (top commit % | top review % | top core review % | '
|
||||
'top core reviewer %)')
|
||||
print(' (top 2 commit % | top 2 review % | top 2 core review % | '
|
||||
'top 2 core reviewer %)')
|
||||
print(' (active committers | active reviewers)')
|
||||
for project in projects:
|
||||
print_diversity(project)
|
||||
print_team_size(project)
|
||||
|
3
tox.ini
3
tox.ini
@ -4,6 +4,7 @@ minversion = 1.6
|
||||
skipsdist = True
|
||||
|
||||
[testenv]
|
||||
basepython = python3
|
||||
usedevelop = True
|
||||
install_command = pip install -U {opts} {packages}
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
@ -24,4 +25,4 @@ commands = {posargs}
|
||||
commands = python setup.py build_sphinx
|
||||
|
||||
[testenv:validate]
|
||||
commands = python tools/validate_tags.py
|
||||
commands = python3 tools/validate_tags.py
|
||||
|
Loading…
x
Reference in New Issue
Block a user