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

Reply via email to