Milimetric has uploaded a new change for review.
https://gerrit.wikimedia.org/r/76617
Change subject: changing to 90 character lines to make editing easier
......................................................................
changing to 90 character lines to make editing easier
Change-Id: Ic2e427939e64ab5c085d68499c5e0ae14c3b51b8
---
M setup.cfg
M tests/fixtures.py
M tests/test_controllers/test_cohorts.py
M tests/test_controllers/test_demo.py
M tests/test_controllers/test_metrics.py
M tests/test_controllers/test_reports.py
M wikimetrics/controllers/cohorts.py
M wikimetrics/controllers/demo.py
M wikimetrics/controllers/reports.py
M wikimetrics/database.py
M wikimetrics/metrics/bytes_added.py
M wikimetrics/metrics/dummy.py
M wikimetrics/metrics/form_fields.py
M wikimetrics/metrics/namespace_edits.py
M wikimetrics/models/mediawiki/revision.py
M wikimetrics/models/persistent_report.py
M wikimetrics/models/user.py
M wikimetrics/utils.py
18 files changed, 144 insertions(+), 68 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/analytics/wikimetrics
refs/changes/17/76617/1
diff --git a/setup.cfg b/setup.cfg
index 505c176..e713bab 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -11,4 +11,4 @@
# E203: sometimes it makes more readable code if you can align a series of
statements
ignore = W293,F401,E221,E203
# line lengths should be limited but not to 80
-max-line-length = 100
+max-line-length = 90
diff --git a/tests/fixtures.py b/tests/fixtures.py
index 282c55a..e08562c 100644
--- a/tests/fixtures.py
+++ b/tests/fixtures.py
@@ -99,25 +99,30 @@
# Dan edits
rev1 = Revision(
- rev_page=mw_page.page_id, rev_user=mw_user_dan.user_id,
rev_comment='Dan edit 1',
- rev_parent_id=rev_before_1.rev_id, rev_len=0,
rev_timestamp=datetime(2013, 06, 01),
+ rev_page=mw_page.page_id, rev_user=mw_user_dan.user_id,
+ rev_comment='Dan edit 1', rev_parent_id=rev_before_1.rev_id,
+ rev_len=0, rev_timestamp=datetime(2013, 06, 01),
)
rev2 = Revision(
- rev_page=mw_page.page_id, rev_user=mw_user_dan.user_id,
rev_comment='Dan edit 2',
- rev_parent_id=rev_before_2.rev_id, rev_len=10,
rev_timestamp=datetime(2013, 07, 01),
+ rev_page=mw_page.page_id, rev_user=mw_user_dan.user_id,
+ rev_comment='Dan edit 2', rev_parent_id=rev_before_2.rev_id,
+ rev_len=10, rev_timestamp=datetime(2013, 07, 01),
)
# Evan edits
rev3 = Revision(
- rev_page=mw_page.page_id, rev_user=mw_user_evan.user_id,
rev_comment='Evan edit 1',
- rev_parent_id=rev_before_3.rev_id, rev_len=100,
rev_timestamp=datetime(2013, 06, 01),
+ rev_page=mw_page.page_id, rev_user=mw_user_evan.user_id,
+ rev_comment='Evan edit 1', rev_parent_id=rev_before_3.rev_id,
+ rev_len=100, rev_timestamp=datetime(2013, 06, 01),
)
rev4 = Revision(
- rev_page=mw_page.page_id, rev_user=mw_user_evan.user_id,
rev_comment='Evan edit 2',
- rev_parent_id=rev_before_4.rev_id, rev_len=140,
rev_timestamp=datetime(2013, 07, 01),
+ rev_page=mw_page.page_id, rev_user=mw_user_evan.user_id,
+ rev_comment='Evan edit 2', rev_parent_id=rev_before_4.rev_id,
+ rev_len=140, rev_timestamp=datetime(2013, 07, 01),
)
rev5 = Revision(
- rev_page=mw_page.page_id, rev_user=mw_user_evan.user_id,
rev_comment='Evan edit 3',
- rev_parent_id=rev_before_5.rev_id, rev_len=136,
rev_timestamp=datetime(2013, 07, 24),
+ rev_page=mw_page.page_id, rev_user=mw_user_evan.user_id,
+ rev_comment='Evan edit 3', rev_parent_id=rev_before_5.rev_id,
+ rev_len=136, rev_timestamp=datetime(2013, 07, 24),
)
self.mwSession.add_all([rev1, rev2, rev3, rev4, rev5])
self.mwSession.commit()
@@ -175,7 +180,10 @@
dan_in_test = CohortWikiUser(wiki_user_id=dan.id,
cohort_id=test_cohort.id)
evan_in_test = CohortWikiUser(wiki_user_id=evan.id,
cohort_id=test_cohort.id)
andrew_in_test = CohortWikiUser(wiki_user_id=andrew.id,
cohort_id=test_cohort.id)
- diederik_in_test = CohortWikiUser(wiki_user_id=diederik.id,
cohort_id=test_cohort.id)
+ diederik_in_test = CohortWikiUser(
+ wiki_user_id=diederik.id,
+ cohort_id=test_cohort.id
+ )
self.session.add_all([
dan_in_test,
evan_in_test,
@@ -331,7 +339,8 @@
def setUp(self):
"""
- Creates a test flask environment. Logs in a test user so tests on
private urls work.
+ Creates a test flask environment.
+ Logs in a test user so tests on private urls work.
"""
DatabaseTest.setUp(self)
self.app = app.test_client()
diff --git a/tests/test_controllers/test_cohorts.py
b/tests/test_controllers/test_cohorts.py
index 943f215..27f7b05 100644
--- a/tests/test_controllers/test_cohorts.py
+++ b/tests/test_controllers/test_cohorts.py
@@ -29,13 +29,15 @@
assert_equal(len(parsed['wikiusers']), 3)
def test_full_detail(self):
- response =
self.app.get('/cohorts/detail/{0}?full_detail=true'.format(self.test_cohort_id))
+ response = self.app.get('/cohorts/detail/{0}?full_detail=true'.format(
+ self.test_cohort_id
+ ))
parsed = json.loads(response.data)
assert_equal(response.status_code, 200)
assert_equal(len(parsed['wikiusers']), 4)
def test_not_found(self):
- response =
self.app.get('/cohorts/detail/no_way_anybody_names_a_cohort_this_23982739873')
+ response = self.app.get('/cohorts/detail/1-OI--LASJLI---LIJSL$EIOJ')
assert_equal(response.status_code, 404)
@@ -43,7 +45,7 @@
# this username has a few problems that the normalize call should
handle
# 1. normal ascii space in front
# 2. lowercase
- # 3. nasty trailing unicode space (the reason this file has an
encoding definition)
+ # 3. nasty trailing unicode space (the reason this file has
coding:utf-8)
problem_username = ' danĀ '
parsed_user = parse_username(problem_username, decode=False)
diff --git a/tests/test_controllers/test_demo.py
b/tests/test_controllers/test_demo.py
index 8374702..0c3f930 100644
--- a/tests/test_controllers/test_demo.py
+++ b/tests/test_controllers/test_demo.py
@@ -20,6 +20,7 @@
'/demo/create/cohorts/ exists and is OK to GET'
)
assert_equal(
- response.data, 'OK, wiped out the database and added cohorts only
for [email protected]',
+ response.data,
+ 'OK, wiped out the database and added cohorts only for
[email protected]',
'/demo/create/cohorts/ completes successfully'
)
diff --git a/tests/test_controllers/test_metrics.py
b/tests/test_controllers/test_metrics.py
index 7a04443..78df799 100644
--- a/tests/test_controllers/test_metrics.py
+++ b/tests/test_controllers/test_metrics.py
@@ -18,10 +18,12 @@
'/metrics should get the list of metrics'
)
assert_not_equal(
- response.data.find('BytesAdded'), -1, 'BytesAdded detail should be
displayed'
+ response.data.find('BytesAdded'), -1,
+ 'BytesAdded detail should be displayed'
)
assert_not_equal(
- response.data.find('NamespaceEdits'), -1, 'NamespaceEdits detail
should be displayed'
+ response.data.find('NamespaceEdits'), -1,
+ 'NamespaceEdits detail should be displayed'
)
def test_list(self):
@@ -59,5 +61,6 @@
assert_not_equal(
response.data.find('<li class="text-error">'),
-1,
- 'Validation on the NamespaceEdits configuration, namespaces field
is not happening.'
+ 'Validation on the NamespaceEdits configuration, '
+ 'namespaces field is not happening.'
)
diff --git a/tests/test_controllers/test_reports.py
b/tests/test_controllers/test_reports.py
index 3c20afa..188a614 100644
--- a/tests/test_controllers/test_reports.py
+++ b/tests/test_controllers/test_reports.py
@@ -4,6 +4,10 @@
import celery
+def filterStatus(collection, status):
+ return filter(lambda j : j['status'] == status, collection)
+
+
class TestReportsController(WebTest):
def test_index(self):
@@ -17,7 +21,7 @@
response = self.app.get('/reports/list', follow_redirects=True)
parsed = json.loads(response.data)
assert_equal(
- len(filter(lambda j : j['status'] == celery.states.STARTED,
parsed['reports'])),
+ len(filterStatus(parsed['reports'], celery.states.STARTED)),
2,
'/reports/list should return a list of report objects, '
'but instead returned:\n{0}'.format(response.data)
@@ -27,7 +31,7 @@
response = self.app.get('/reports/list', follow_redirects=True)
parsed = json.loads(response.data)
assert_equal(
- len(filter(lambda j : j['status'] == celery.states.PENDING,
parsed['reports'])),
+ len(filterStatus(parsed['reports'], celery.states.PENDING)),
1,
'/reports/list should return a list of report objects, '
'but instead returned:\n{0}'.format(response.data)
@@ -37,7 +41,7 @@
response = self.app.get('/reports/list', follow_redirects=True)
parsed = json.loads(response.data)
assert_equal(
- len(filter(lambda j : j['status'] == celery.states.SUCCESS,
parsed['reports'])),
+ len(filterStatus(parsed['reports'], celery.states.SUCCESS)),
1,
'/reports/list should return a list of report objects,'
'but instead returned:\n{0}'.format(response.data)
diff --git a/wikimetrics/controllers/cohorts.py
b/wikimetrics/controllers/cohorts.py
index f03d609..8a83da0 100644
--- a/wikimetrics/controllers/cohorts.py
+++ b/wikimetrics/controllers/cohorts.py
@@ -68,13 +68,14 @@
def get_cohort_query():
+ allowed_roles = [CohortUserRole.OWNER, CohortUserRole.VIEWER]
db_session = db.get_session()
return (
db_session.query(Cohort)
.join(CohortUser)
.join(User)
.filter(User.id == current_user.id)
- .filter(CohortUser.role.in_([CohortUserRole.OWNER,
CohortUserRole.VIEWER]))
+ .filter(CohortUser.role.in_(allowed_roles))
.filter(Cohort.enabled),
db_session
)
@@ -132,7 +133,8 @@
project = request.form['project']
description = request.form['description']
if not csv_file or not name or len(name) is 0:
- flash('The form was invalid, please select a file and name the
cohort.', 'error')
+ flash('The form was invalid, please'
+ 'select a file and name the cohort.', 'error')
return redirect(url_for('cohort_upload'))
if get_cohort_by_name(name):
@@ -158,8 +160,8 @@
app.logger.exception(str(e))
flash(
'The file you uploaded was not in a valid format, could not be
validated,'
- 'or the project you specified is not configured on this
instance of Wiki Metrics.'
- , 'error'
+ 'or the project you specified is not configured on this
instance of '
+ 'Wiki Metrics.', 'error'
)
return redirect(url_for('cohort_upload'))
@@ -176,8 +178,8 @@
if get_cohort_by_name(name):
raise Exception('Cohort name {0} is already used'.format(name))
- # NOTE: Without re-validating here, the user might have changed the
cohort client-side
- # since the last validation. This will produce weird results but we
sort of don't care.
+ # NOTE: If we don't re-validate here, the user can change the cohort
client-side
+ # This will produce weird results but we sort of don't care.
# Save the cohort
valid = users
@@ -194,8 +196,9 @@
except Exception, e:
app.logger.exception(str(e))
- flash('There was a problem finishing the upload. The cohort was not
saved.', 'error')
- return '<<error>>'
+ return json_error(
+ 'There was a problem finishing the upload. The cohort was not
saved.'
+ )
def create_cohort(name, description, project, valid_users):
@@ -401,7 +404,9 @@
'invalid user: {0} in project {1}'
.format(record['raw_username'], normalized_project)
)
- record['reason_invalid'] = 'invalid user_name / user_id: %s' %
record['user_str']
+ record['reason_invalid'] = 'invalid user_name / user_id:
{0}'.format(
+ record['user_str']
+ )
invalid.append(record)
continue
# set the normalized values and append to valid
diff --git a/wikimetrics/controllers/demo.py b/wikimetrics/controllers/demo.py
index 2d524b7..5f71824 100644
--- a/wikimetrics/controllers/demo.py
+++ b/wikimetrics/controllers/demo.py
@@ -95,17 +95,39 @@
])
db_sess.commit()
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort1.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort2.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort3.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort4.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort5.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort6.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort7.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort8.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort9.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort10.id,
role=CohortUserRole.OWNER))
- db_sess.add(CohortUser(user_id=user.id, cohort_id=cohort11.id,
role=CohortUserRole.OWNER))
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort1.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort2.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort3.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort4.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort5.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort6.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort7.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort8.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort9.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort10.id,
role=CohortUserRole.OWNER)
+ )
+ db_sess.add(
+ CohortUser(user_id=user.id, cohort_id=cohort11.id,
role=CohortUserRole.OWNER)
+ )
# TODO: these users don't actually exist in the mediawiki databases,
add them
#db_enwiki_session = db.get_mw_session('enwiki')
@@ -113,12 +135,16 @@
wu1 = WikiUser(mediawiki_username='Dan', mediawiki_userid=1,
project='enwiki')
wu2 = WikiUser(mediawiki_username='Evan', mediawiki_userid=2,
project='enwiki')
wu3 = WikiUser(mediawiki_username='Andrew', mediawiki_userid=3,
project='enwiki')
- wu4 = WikiUser(mediawiki_username='Diederik', mediawiki_userid=4,
project='enwiki')
+ wu4 = WikiUser(
+ mediawiki_username='Diederik', mediawiki_userid=4, project='enwiki'
+ )
wu5 = WikiUser(mediawiki_username='Andrea', mediawiki_userid=5,
project='dewiki')
wu6 = WikiUser(mediawiki_username='Dennis', mediawiki_userid=6,
project='dewiki')
wu7 = WikiUser(mediawiki_username='Florian', mediawiki_userid=7,
project='dewiki')
- wu8 = WikiUser(mediawiki_username='Gabriele', mediawiki_userid=8,
project='dewiki')
+ wu8 = WikiUser(
+ mediawiki_username='Gabriele', mediawiki_userid=8, project='dewiki'
+ )
wu9 = WikiUser(mediawiki_username='n/a', mediawiki_userid=9,
project='enwiki')
wu10 = WikiUser(mediawiki_username='n/a', mediawiki_userid=10,
project='enwiki')
@@ -213,4 +239,6 @@
db_sess.commit()
db_sess.close()
- return 'OK, wiped out the database and added cohorts only for ' +
current_user.email
+ return 'OK, wiped out the database and added cohorts only for
{0}'.format(
+ current_user.email
+ )
diff --git a/wikimetrics/controllers/reports.py
b/wikimetrics/controllers/reports.py
index fbd792c..e487230 100644
--- a/wikimetrics/controllers/reports.py
+++ b/wikimetrics/controllers/reports.py
@@ -36,13 +36,14 @@
metric_reports = []
metric_names = []
cohort_names = []
+ allowed_roles = [CohortUserRole.OWNER, CohortUserRole.VIEWER]
for cohort_metric_dict in parsed:
# get cohort
cohort_dict = cohort_metric_dict['cohort']
db_session = db.get_session()
cohort = db_session.query(Cohort)\
- .filter(CohortUser.role.in_([CohortUserRole.OWNER,
CohortUserRole.VIEWER]))\
+ .filter(CohortUser.role.in_(allowed_roles))\
.filter(Cohort.enabled)\
.filter_by(id=cohort_dict['id'])\
.one()
diff --git a/wikimetrics/database.py b/wikimetrics/database.py
index 00e86bf..52fc801 100644
--- a/wikimetrics/database.py
+++ b/wikimetrics/database.py
@@ -28,7 +28,6 @@
def _asdict(self):
""" simplejson (used by flask.jsonify) looks for a method with this
name """
- #return {c.name : getattr(self, c.name) for c in
self.__table__.columns if c.name != 'id'}
return {c.name : getattr(self, c.name) for c in self.__table__.columns}
@@ -80,9 +79,13 @@
self.config['WIKIMETRICS_ENGINE_URL'],
echo=self.config['SQL_ECHO'],
)
- # This import is necessary here so WikimetricsBase knows about all
its children.
+ # This import is necessary here so that
+ # WikimetricsBase knows about all its children.
import wikimetrics.models
- self.WikimetricsBase.metadata.create_all(self.wikimetrics_engine,
checkfirst=True)
+ self.WikimetricsBase.metadata.create_all(
+ self.wikimetrics_engine,
+ checkfirst=True
+ )
self.wikimetrics_sessionmaker =
sessionmaker(self.wikimetrics_engine)
return self.wikimetrics_sessionmaker()
@@ -95,8 +98,8 @@
project : string name of the mediawiki project (for example:
enwiki, arwiki)
Returns:
- new sqlalchemy session connected to the appropriate database. As
an optimization,
- this method caches sqlalchemy session makers and creates sessions
from those.
+ new sqlalchemy session connected to the appropriate database.
This method
+ caches sqlalchemy session makers and creates sessions from those.
"""
if project in self.mediawiki_sessionmakers:
return self.mediawiki_sessionmakers[project]()
diff --git a/wikimetrics/metrics/bytes_added.py
b/wikimetrics/metrics/bytes_added.py
index 4f08f37..5d648b3 100644
--- a/wikimetrics/metrics/bytes_added.py
+++ b/wikimetrics/metrics/bytes_added.py
@@ -60,8 +60,8 @@
show_in_ui = True
id = 'bytes-added'
label = 'Bytes Added'
- description = 'Compute different aggregations of the bytes contributed or
removed from a\
- mediawiki project'
+ description = 'Compute different aggregations of the bytes\
+ contributed or removed from a mediawiki project'
start_date = DateField(default=thirty_days_ago)
end_date = DateField(default=today)
@@ -106,14 +106,19 @@
),
)\
.join(Page)\
- .outerjoin(PreviousRevision, Revision.rev_parent_id ==
PreviousRevision.c.rev_id)\
+ .outerjoin(
+ PreviousRevision,
+ Revision.rev_parent_id == PreviousRevision.c.rev_id
+ )\
.filter(Page.page_namespace.in_(self.namespaces.data))\
.filter(Revision.rev_user.in_(user_ids))\
.filter(Revision.rev_timestamp >= start_date)\
.filter(Revision.rev_timestamp <= end_date)\
.subquery()
# TODO: figure out why between isn't quite working with these
timestamps
- #.filter(between(Revision.rev_timestamp, self.start_date.data,
self.end_date.data))\
+ #.filter(between(
+ # Revision.rev_timestamp, self.start_date.data,
self.end_date.data
+ #))\
bytes_added_by_user = session.query(
BC.c.rev_user,
@@ -143,7 +148,10 @@
result_dict[user_id]['negative_only_sum'] = negative
session.close()
- return {user_id: result_dict.get(user_id, self.make_default()) for
user_id in user_ids}
+ return {
+ user_id: result_dict.get(user_id, self.make_default())
+ for user_id in user_ids
+ }
def make_default(self):
default = dict()
diff --git a/wikimetrics/metrics/dummy.py b/wikimetrics/metrics/dummy.py
index ecc30d5..977e97a 100644
--- a/wikimetrics/metrics/dummy.py
+++ b/wikimetrics/metrics/dummy.py
@@ -24,7 +24,7 @@
"""
Parameters:
user_ids : list of user ids to return random numbers for
- session : sqlalchemy session open on a mediawiki database (not
required here)
+ session : sqlalchemy session open on a mediawiki database
Returns:
dictionary from user ids to the number of edit reverts found.
diff --git a/wikimetrics/metrics/form_fields.py
b/wikimetrics/metrics/form_fields.py
index 3dd6fbf..dcaf8a1 100644
--- a/wikimetrics/metrics/form_fields.py
+++ b/wikimetrics/metrics/form_fields.py
@@ -39,6 +39,10 @@
def process_formdata(self, valuelist):
""" overrides wtforms parsing to split list into namespaces """
if valuelist:
- self.data = [int(x.strip()) for x in valuelist[0].split(',') if
x.strip().isdigit()]
+ self.data = [
+ int(x.strip())
+ for x in valuelist[0].split(',')
+ if x.strip().isdigit()
+ ]
else:
self.data = []
diff --git a/wikimetrics/metrics/namespace_edits.py
b/wikimetrics/metrics/namespace_edits.py
index bfab2d2..0497c1a 100644
--- a/wikimetrics/metrics/namespace_edits.py
+++ b/wikimetrics/metrics/namespace_edits.py
@@ -31,7 +31,10 @@
show_in_ui = True
id = 'edits'
label = 'Edits'
- description = 'Compute the number of edits in a specific namespace of a
mediawiki project'
+ description = (
+ 'Compute the number of edits in a specific'
+ 'namespace of a mediawiki project'
+ )
namespaces = CommaSeparatedIntegerListField(
None,
@@ -59,4 +62,7 @@
.group_by(Revision.rev_user)
.all()
)
- return {user_id: {'edits': revisions_by_user.get(user_id, 0)} for
user_id in user_ids}
+ return {
+ user_id: {'edits': revisions_by_user.get(user_id, 0)}
+ for user_id in user_ids
+ }
diff --git a/wikimetrics/models/mediawiki/revision.py
b/wikimetrics/models/mediawiki/revision.py
index 1b84085..b5e3c8a 100644
--- a/wikimetrics/models/mediawiki/revision.py
+++ b/wikimetrics/models/mediawiki/revision.py
@@ -17,7 +17,8 @@
rev_user_text = Column(String(255))
rev_timestamp = Column(DateTime)
rev_minor_edit = Column(Boolean)
- rev_deleted = Column(Integer) # this might be a boolean but it gets
overflown if set that way
+ # this might be a boolean but it gets overflown if set that way
+ rev_deleted = Column(Integer)
rev_len = Column(BigInteger)
rev_parent_id = Column(Integer)
rev_sha1 = Column(String(32))
diff --git a/wikimetrics/models/persistent_report.py
b/wikimetrics/models/persistent_report.py
index 769324a..f08fa79 100644
--- a/wikimetrics/models/persistent_report.py
+++ b/wikimetrics/models/persistent_report.py
@@ -27,7 +27,7 @@
def update_status(self):
# if we don't have the result key leave as is (PENDING)
if self.result_key and self.status not in (celery.states.READY_STATES):
- # TODO: fix nasty inline import. Can't import up above because of
circular reference
+ # TODO: inline import. Can't import up above because of circular
reference
from wikimetrics.models.report_nodes import Report
celery_task = Report.task.AsyncResult(self.result_key)
self.status = celery_task.status
diff --git a/wikimetrics/models/user.py b/wikimetrics/models/user.py
index d4c470c..604c561 100644
--- a/wikimetrics/models/user.py
+++ b/wikimetrics/models/user.py
@@ -55,9 +55,10 @@
def logout(self, session):
"""
- Adds this instance back to the session passed in, logs it out, and
saves it to the db.
- Important: caller might want to remove this instance from the database
session so it
- can behave properly in Flask-Login.
+ Adds this instance back to the session passed in, logs it out,
+ and saves it to the db.
+ Important: caller might want to remove this instance from the
+ database session so it can behave properly in Flask-Login.
"""
session.add(self)
self.authenticated = False
diff --git a/wikimetrics/utils.py b/wikimetrics/utils.py
index e3ec69a..2f77e6a 100644
--- a/wikimetrics/utils.py
+++ b/wikimetrics/utils.py
@@ -35,8 +35,8 @@
"""
Date/Time objects are not serializable by the built-in
json library because there is no agreed upon standard of how to do so
- This class can be used as follows to allow your json.dumps to serialize
dates properly.
- You should make sure your client is happy with this serialization:
+ This class can be used as follows to allow your json.dumps to serialize
+ dates properly. You should make sure your client is happy with this
serialization:
print json.dumps(obj, cls=BetterEncoder)
"""
--
To view, visit https://gerrit.wikimedia.org/r/76617
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic2e427939e64ab5c085d68499c5e0ae14c3b51b8
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits