Rev 43: give Categories an output_stream since it cleans things up. in http://bazaar.launchpad.net/~canonical-bazaar/udd/hottest100
John Arbash Meinel
john at arbash-meinel.com
Tue Jan 26 16:17:31 GMT 2010
At http://bazaar.launchpad.net/~canonical-bazaar/udd/hottest100
------------------------------------------------------------
revno: 43
revision-id: john at arbash-meinel.com-20100126161701-rd1ioo3bh7x90ooi
parent: jelmer at samba.org-20100126155950-8yby1247er4g5pt2
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: hottest100
timestamp: Tue 2010-01-26 10:17:01 -0600
message:
give Categories an output_stream since it cleans things up.
-------------- next part --------------
=== modified file 'check-hottest.py'
--- a/check-hottest.py 2010-01-26 15:53:27 +0000
+++ b/check-hottest.py 2010-01-26 16:17:01 +0000
@@ -59,24 +59,25 @@
class Categorization(object):
"""Think of this as a pie chart with packages sorted into non-overlapping slices"""
- def __init__(self, name):
+ def __init__(self, name, output_stream):
self._name = name
self._categories = {}
+ self._output_stream = output_stream
- def categorize(self, category_name, package, output_stream):
- output_stream.write(' categorized %s\n' % (category_name,))
+ def categorize(self, category_name, package):
+ self._output_stream.write(' categorized %s\n' % (category_name,))
self._categories.setdefault(category_name, set()).add(package)
- def summarize(self, output_stream):
+ def summarize(self):
grand_total = 0
- output_stream.write('%s Summary:\n' % (self._name,))
+ self._output_stream.write('%s Summary:\n' % (self._name,))
for category_name, package_set in sorted(self._categories.items()):
count = len(package_set)
- output_stream.write('%5s %s\n' % (count, category_name))
+ self._output_stream.write('%5s %s\n' % (count, category_name))
grand_total += count
- output_stream.write('-----\n')
- output_stream.write('%5s TOTAL\n' % grand_total)
- output_stream.write('\n')
+ self._output_stream.write('-----\n')
+ self._output_stream.write('%5s TOTAL\n' % grand_total)
+ self._output_stream.write('\n')
def get_branch_age_and_tags(location, tags=True):
@@ -123,18 +124,20 @@
setup_bzrlib()
- package_categories = Categorization('Package Branch')
- upstream_branch_categories = Categorization('Upstream Branch')
+ output_stream = ui.ui_factory.make_output_stream()
+ package_categories = Categorization('Package Branch', output_stream)
+ upstream_branch_categories = Categorization('Upstream Branch',
+ output_stream)
lp = launchpad.Launchpad.login('check-hottest', '', '',
- launchpad.EDGE_SERVICE_ROOT)
+ launchpad.EDGE_SERVICE_ROOT,
+ cache='C:/lpcache')
distribution = lp.distributions['ubuntu']
current_distro_series = distribution.current_series
archive = distribution.main_archive
today = datetime.datetime.now()
reuse_transports = []
- output_stream = ui.ui_factory.make_output_stream()
pb = ui.ui_factory.nested_progress_bar()
fmt_str = ' %-40s %-4s %-12s\n'
output_stream.write(fmt_str % ('package branch url', 'age', 'soyuz'))
@@ -144,19 +147,20 @@
output_stream.write('%s\n' % (package.name,))
# package may be explicitly blocked in the input data
if 'old-version' in package.tags:
- package_categories.categorize('old', package, output_stream)
+ package_categories.categorize('old', package)
+ upstream_branch_categories.categorize('old', package)
continue
if 'metapackage' in package.tags:
- package_categories.categorize('meta', package, output_stream)
+ package_categories.categorize('meta', package)
continue
if 'special' in package.tags:
- package_categories.categorize('special', package, output_stream)
+ package_categories.categorize('special', package)
continue
if 'devfocus' in package.tags:
- package_categories.categorize('devfocus', package, output_stream)
+ package_categories.categorize('devfocus', package)
continue
if 'hg-import' in package.tags:
- package_categories.categorize('hg', package, output_stream)
+ package_categories.categorize('hg', package)
continue
if 'nested-trees' in package.tags:
package_categories.categorize('nested-trees', package, output_stream)
@@ -175,32 +179,31 @@
if str(e).find('in ubuntu has no default branch') > -1:
output_stream.write(' %s has no default branch\n'
% (package_branch_url,))
- package_categories.categorize('unregistered', package, output_stream)
+ package_categories.categorize('unregistered', package)
else:
output_stream.write(' %s\n' % (e,))
- package_categories.categorize('broken', package, output_stream)
+ package_categories.categorize('broken', package)
published_sources = list(archive.getPublishedSources(
source_name=package.name, status='Published',
distro_series=current_distro_series))
if not published_sources:
- package_categories.categorize('no_source_package', package,
- output_stream)
+ package_categories.categorize('no_source_package', package)
continue
published_source = published_sources[0]
source_package_version = published_source.source_package_version
if source_package_version not in tags:
- package_categories.categorize('package_out_of_date', package, output_stream)
+ package_categories.categorize('package_out_of_date', package)
else:
- package_categories.categorize('ok', package, output_stream)
+ package_categories.categorize('ok', package)
output_stream.write(fmt_str % (
package_branch_url, age.days, source_package_version))
source_package = published_source.distro_series.getSourcePackage(name=package.name)
if source_package.productseries is None:
- upstream_branch_categories.categorize('missing_upstream_link', package, output_stream)
+ upstream_branch_categories.categorize('missing_upstream_link', package)
continue
source_branch = source_package.productseries.branch
if source_branch is None:
- upstream_branch_categories.categorize('missing_upstream_branch', package, output_stream)
+ upstream_branch_categories.categorize('missing_upstream_branch', package)
continue
package.upstream_branch_url = source_branch.bzr_identity
try:
@@ -209,37 +212,37 @@
upstream_days = age.days
if upstream_days < opts.stale_days:
upstream_status = 'ok_upstream'
- upstream_branch_categories.categorize('ok_upstream', package, output_stream)
+ upstream_branch_categories.categorize('ok_upstream', package)
else:
upstream_status = 'stale'
- upstream_branch_categories.categorize('stale_upstream', package, output_stream)
+ upstream_branch_categories.categorize('stale_upstream', package)
except errors.BzrError, e:
upstream_days = -1
if "No such project" in str(e):
- upstream_branch_categories.categorize('missing_project', package, output_stream)
+ upstream_branch_categories.categorize('missing_project', package)
upstream_status = 'no project'
output_stream.write(' %s has no project\n'
% (package.upstream_branch_url,))
elif 'has no default branch' in str(e):
- upstream_branch_categories.categorize('no_default_upstream_branch', package, output_stream)
+ upstream_branch_categories.categorize('no_default_upstream_branch', package)
upstream_status = 'no branch'
output_stream.write(' %s has no default branch\n'
% (package.upstream_branch_url,))
else:
- upstream_branch_categories.categorize('broken_upstream', package, output_stream)
+ upstream_branch_categories.categorize('broken_upstream', package)
output_stream.write(' %s\n' % (e,))
else:
if source_branch.branch_type == 'Mirrored':
import_age = datetime.datetime.now() - source_branch.last_mirror_attempt.replace(tzinfo=None)
if import_age.days > 1:
- upstream_branch_categories.categorize('outdated_imports', package, output_stream)
+ upstream_branch_categories.categorize('outdated_imports', package)
upstream_status = 'outdated import (%d days)' % (import_age.days,)
output_stream.write(fmt_str % (package.upstream_branch_url,
upstream_days, upstream_status))
output_stream.write('\n')
- package_categories.summarize(output_stream)
- upstream_branch_categories.summarize(output_stream)
+ package_categories.summarize()
+ upstream_branch_categories.summarize()
if __name__ == '__main__':
main(sys.argv[1:])
More information about the bazaar-commits
mailing list