Mercurial > p > roundup > code
view scripts/weekly-report @ 6578:b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
Secrets (passwords, secrets) can specify a file using file:// or
file:///. The first line of the file is used as the secret. This
allows committing config.ini to a VCS.
Following settings are changed:
[tracker] secret_key
[tracker] jwt_secret
[rdbms] password
[mail] password
details:
in roundup/configuration.py:
Defined SecretMandatoryOptions and SecretNullableOptions. Converted
all secret keys and password to one of the above.
Also if [mail] username is defined but [mail] password is not it
throws an error at load.
Cleaned up a couple of methods whose call signature included:
def ...(..., settings={}):
settings=None and it is set to empty dict inside the method.
Also replace exception.message with str(exception) for python3
compatibility.
in test/test_config:
changed munge_configini to support changing only within a section,
replacing keyword text.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 03 Jan 2022 22:18:57 -0500 |
| parents | c75defc1c2f0 |
| children | 20ab9a4b76e9 |
line wrap: on
line source
#! /usr/bin/env python # This script generates a simple report outlining the activity in one # tracker for the most recent week. # This script is free software, you may redistribute it # and/or modify under the same terms as Python. from __future__ import print_function import sys, math from roundup import instance, date # open the instance if len(sys.argv) != 2: print('You need to specify an instance home dir') instance_home = sys.argv[1] instance = instance.open(instance_home) db = instance.open('admin') old = date.Date('-1w') created = [] summary = {} messages = [] # loop through all the recently-active issues for issue_id in db.issue.filter(None, {'activity': '-1w;'}): num = 0 for x,ts,userid,action,data in db.issue.history(issue_id): if ts < old: continue if action == 'create': created.append(issue_id) elif action == 'set' and 'messages' in data: num += 1 summary.setdefault(db.issue.get(issue_id, 'status'), []).append(issue_id) messages.append((num, issue_id)) #print 'STATUS SUMMARY:' #for k,v in summary.items(): # print k, len(v) print('\nCREATED:') print('\n'.join(['%s: %s'%(id, db.issue.get(id, 'title')) for id in created])) print('\nRESOLVED:') resolved_id = db.status.lookup('resolved') print('\n'.join(['%s: %s'%(id, db.issue.get(id, 'title')) for id in summary.get(resolved_id, [])])) print('\nTOP TEN MOST DISCUSSED:') messages.sort() messages.reverse() nmax = messages[0][0] fmt = '%%%dd - %%s: %%s'%(int(math.log(nmax, 10)) + 1) print('\n'.join([fmt%(num, id, db.issue.get(id, 'title')) for num, id in messages[:10]])) # vim: set filetype=python ts=4 sw=4 et si
