You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2014/01/11 00:17:15 UTC

[1/3] Pylint cleanup

Updated Branches:
  refs/heads/master c93733acb -> 0ca218aba


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py b/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
index 48b0deb..8c4abd9 100644
--- a/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
+++ b/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
@@ -15,11 +15,9 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import sys
 import logging
 
 from pylons import tmpl_context as c
-from ming.orm import session
 from ming.orm.ormsession import ThreadLocalORMSession
 
 from forgeblog import model as BM

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/migrations/024-migrate-custom-profile-text.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/024-migrate-custom-profile-text.py b/scripts/migrations/024-migrate-custom-profile-text.py
index b69b5f8..18a82da 100644
--- a/scripts/migrations/024-migrate-custom-profile-text.py
+++ b/scripts/migrations/024-migrate-custom-profile-text.py
@@ -25,7 +25,6 @@ from ming.orm import ThreadLocalORMSession
 from allura import model as M
 from allura.lib import utils
 from forgewiki import model as WM
-from forgewiki.wiki_main import ForgeWikiApp
 
 log = logging.getLogger(__name__)
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/migrations/025-add-is-nbhd-project.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/025-add-is-nbhd-project.py b/scripts/migrations/025-add-is-nbhd-project.py
index 85bb07b..ca3fc77 100644
--- a/scripts/migrations/025-add-is-nbhd-project.py
+++ b/scripts/migrations/025-add-is-nbhd-project.py
@@ -16,11 +16,6 @@
 #       under the License.
 
 import logging
-import re
-
-from pylons import tmpl_context as c
-
-from ming.orm import ThreadLocalORMSession, session
 
 from allura import model as M
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/migrations/027-change-ticket-write-permissions.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/027-change-ticket-write-permissions.py b/scripts/migrations/027-change-ticket-write-permissions.py
index 1e64504..3c6877a 100644
--- a/scripts/migrations/027-change-ticket-write-permissions.py
+++ b/scripts/migrations/027-change-ticket-write-permissions.py
@@ -16,17 +16,11 @@
 #       under the License.
 
 import logging
-import re
-
-from pylons import tmpl_context as c
-
 from ming.orm import ThreadLocalORMSession
 
 from allura import model as M
 
 from allura.lib import utils
-from forgetracker import model as TM
-from forgewiki.wiki_main import ForgeWikiApp
 
 log = logging.getLogger(__name__)
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/perf/call_count.py
----------------------------------------------------------------------
diff --git a/scripts/perf/call_count.py b/scripts/perf/call_count.py
index 1d4ef6d..671e6f2 100755
--- a/scripts/perf/call_count.py
+++ b/scripts/perf/call_count.py
@@ -27,7 +27,6 @@ import csv
 from pylons import tmpl_context as c
 from testfixtures import LogCapture
 from mock import patch
-import timermiddleware
 from ming.odm import ThreadLocalODMSession
 
 from allura import model as M

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/perf/md_perf.py
----------------------------------------------------------------------
diff --git a/scripts/perf/md_perf.py b/scripts/perf/md_perf.py
index e40cb66..e8d0f70 100644
--- a/scripts/perf/md_perf.py
+++ b/scripts/perf/md_perf.py
@@ -47,12 +47,8 @@ sys     0m1.112s
 
 import argparse
 import cProfile
-import re
-import sys
 import time
 
-from mock import patch
-
 try:
     import re2
     re2.set_fallback_notification(re2.FALLBACK_WARNING)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/rethumb.py
----------------------------------------------------------------------
diff --git a/scripts/rethumb.py b/scripts/rethumb.py
index cbda4d7..fa27f32 100644
--- a/scripts/rethumb.py
+++ b/scripts/rethumb.py
@@ -16,20 +16,15 @@
 #       under the License.
 
 import sys
-import time
 
 import PIL
-import tg
 from pylons import tmpl_context as c
-from paste.deploy.converters import asint
 
-from ming.orm import mapper, ThreadLocalORMSession, session, state, Mapper
+from ming.orm import ThreadLocalORMSession, state, Mapper
 
 from allura.command import base
 from allura.lib.helpers import iter_entry_points
 
-import forgetracker.model
-
 
 class RethumbCommand(base.Command):
     min_args = 1

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/wiki-export.py
----------------------------------------------------------------------
diff --git a/scripts/wiki-export.py b/scripts/wiki-export.py
index e096949..e64458e 100755
--- a/scripts/wiki-export.py
+++ b/scripts/wiki-export.py
@@ -17,8 +17,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-
-import json
 import sys
 from optparse import OptionParser
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/wiki-post.py
----------------------------------------------------------------------
diff --git a/scripts/wiki-post.py b/scripts/wiki-post.py
index 07369f5..038cf70 100755
--- a/scripts/wiki-post.py
+++ b/scripts/wiki-post.py
@@ -17,8 +17,8 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-
-from sys import stdin, stdout
+import types
+from sys import stdout
 import hmac
 import hashlib
 from datetime import datetime
@@ -26,7 +26,6 @@ import os
 import urllib
 from urllib2 import urlopen, HTTPError
 from urlparse import urlparse, urljoin
-import urllib
 from optparse import OptionParser
 from ConfigParser import ConfigParser
 


[2/3] Pylint cleanup

Posted by tv...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_filesystem.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_filesystem.py b/Allura/allura/tests/model/test_filesystem.py
index 312807f..1f4c1da 100644
--- a/Allura/allura/tests/model/test_filesystem.py
+++ b/Allura/allura/tests/model/test_filesystem.py
@@ -22,7 +22,7 @@ from unittest import TestCase
 from cStringIO import StringIO
 from io import BytesIO
 
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 from ming.orm import session, Mapper
 from nose.tools import assert_equal
 from mock import patch

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_neighborhood.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_neighborhood.py b/Allura/allura/tests/model/test_neighborhood.py
index afc53c6..e5188ff 100644
--- a/Allura/allura/tests/model/test_neighborhood.py
+++ b/Allura/allura/tests/model/test_neighborhood.py
@@ -21,11 +21,8 @@
 Model tests for neighborhood
 """
 from nose.tools import with_setup
-from pylons import tmpl_context as c
-from ming.orm.ormsession import ThreadLocalORMSession
 
 from allura import model as M
-from allura.lib import helpers as h
 from allura.tests import decorators as td
 from alluratest.controller import setup_basic_test, setup_global_objects
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_notification.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_notification.py b/Allura/allura/tests/model/test_notification.py
index d5f0a14..88bdf45 100644
--- a/Allura/allura/tests/model/test_notification.py
+++ b/Allura/allura/tests/model/test_notification.py
@@ -25,7 +25,7 @@ from ming.orm import ThreadLocalORMSession
 import mock
 import bson
 
-from alluratest.controller import setup_basic_test, setup_global_objects, REGISTRY
+from alluratest.controller import setup_basic_test, setup_global_objects
 from allura import model as M
 from allura.model.notification import MailFooter
 from allura.lib import helpers as h
@@ -190,7 +190,7 @@ class TestPostNotifications(unittest.TestCase):
 
     def test_post_user_notification(self):
         u = M.User.query.get(username='test-admin')
-        n = M.Notification.post_user(u, self.pg, 'metadata')
+        M.Notification.post_user(u, self.pg, 'metadata')
         ThreadLocalORMSession.flush_all()
         ThreadLocalORMSession.close_all()
         flash_msgs = list(h.pop_user_notifications(u))

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_project.py b/Allura/allura/tests/model/test_project.py
index 855432a..b33596c 100644
--- a/Allura/allura/tests/model/test_project.py
+++ b/Allura/allura/tests/model/test_project.py
@@ -20,7 +20,7 @@
 """
 Model tests for project
 """
-from nose.tools import with_setup, assert_equals, assert_in
+from nose.tools import assert_equals, assert_in
 from pylons import tmpl_context as c
 from ming.orm.ormsession import ThreadLocalORMSession
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_repo.py b/Allura/allura/tests/model/test_repo.py
index 24ab25d..cd019ae 100644
--- a/Allura/allura/tests/model/test_repo.py
+++ b/Allura/allura/tests/model/test_repo.py
@@ -379,7 +379,7 @@ class TestLastCommit(unittest.TestCase):
         self.assertEqual(lcd.by_name['file4'], commit4._id)
 
     def test_missing_add_record(self):
-        commit1 = self._add_commit('Commit 1', ['file1'])
+        self._add_commit('Commit 1', ['file1'])
         commit2 = self._add_commit('Commit 2', ['file2'])
         commit2.changed_paths = []
         result = self.repo.last_commit_ids(commit2, ['file2'])

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_app.py b/Allura/allura/tests/test_app.py
index 9389238..f5f5ac4 100644
--- a/Allura/allura/tests/test_app.py
+++ b/Allura/allura/tests/test_app.py
@@ -15,16 +15,12 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import re
-import unittest
-
 from pylons import tmpl_context as c, app_globals as g
 import mock
 from ming.base import Object
 
 from allura import app
 from allura.lib.app_globals import Globals
-from allura import model as M
 
 
 def setUp():

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_commands.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_commands.py b/Allura/allura/tests/test_commands.py
index 4dda1be..1ecfb39 100644
--- a/Allura/allura/tests/test_commands.py
+++ b/Allura/allura/tests/test_commands.py
@@ -26,7 +26,6 @@ from alluratest.controller import setup_basic_test, setup_global_objects
 from allura.command import base, script, set_neighborhood_features, \
     create_neighborhood, show_models, taskd_cleanup
 from allura import model as M
-from forgeblog import model as BM
 from allura.lib.exceptions import InvalidNBFeatureValueError
 from allura.tests import decorators as td
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 6627e56..ea7313d 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -24,11 +24,10 @@ import allura
 import unittest
 import hashlib
 from mock import patch
-from urllib import quote
 
 from bson import ObjectId
 
-from nose.tools import with_setup, assert_equal, assert_in, assert_not_in
+from nose.tools import with_setup, assert_equal, assert_in
 from pylons import tmpl_context as c, app_globals as g
 
 from ming.orm import ThreadLocalORMSession
@@ -551,9 +550,8 @@ def test_hideawards_macro():
     project = M.Project.query.get(
         neighborhood_id=p_nbhd._id, shortname=u'test')
 
-    award_grant = M.AwardGrant(award=award,
-                               granted_by_neighborhood=p_nbhd,
-                               granted_to_project=project)
+    M.AwardGrant(award=award, granted_by_neighborhood=p_nbhd,
+            granted_to_project=project)
 
     ThreadLocalORMSession.flush_all()
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_helpers.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_helpers.py b/Allura/allura/tests/test_helpers.py
index 259ecba..48f4309 100644
--- a/Allura/allura/tests/test_helpers.py
+++ b/Allura/allura/tests/test_helpers.py
@@ -19,10 +19,10 @@
 
 from unittest import TestCase
 from os import path
-from datetime import datetime
+from datetime import datetime, timedelta
+import time
 
 from mock import Mock, patch
-import tg
 from pylons import tmpl_context as c
 from nose.tools import eq_, assert_equals
 from IPython.testing.decorators import skipif, module_not_available
@@ -187,8 +187,6 @@ def test_encode_keys():
 
 
 def test_ago():
-    from datetime import datetime, timedelta
-    import time
     assert_equals(h.ago(datetime.utcnow() - timedelta(days=2)), '2 days ago')
     assert_equals(h.ago_ts(time.time() - 60 * 60 * 2), '2 hours ago')
     d_str = (datetime.utcnow() - timedelta(hours=3)).isoformat()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_mail_util.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_mail_util.py b/Allura/allura/tests/test_mail_util.py
index 8473cec..0ae42a0 100644
--- a/Allura/allura/tests/test_mail_util.py
+++ b/Allura/allura/tests/test_mail_util.py
@@ -20,7 +20,6 @@
 import unittest
 from email.MIMEMultipart import MIMEMultipart
 from email.MIMEText import MIMEText
-from email import header
 
 import mock
 from nose.tools import raises, assert_equal, assert_false, assert_true

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_plugin.py b/Allura/allura/tests/test_plugin.py
index 1c00f61..24a163a 100644
--- a/Allura/allura/tests/test_plugin.py
+++ b/Allura/allura/tests/test_plugin.py
@@ -15,10 +15,8 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from functools import partial
 from nose.tools import assert_equals, assert_raises, assert_is_none, assert_is
 from mock import Mock, MagicMock, patch
-from formencode import Invalid
 from datetime import timedelta
 
 from allura import model as M

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_security.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_security.py b/Allura/allura/tests/test_security.py
index 1445e91..44b2831 100644
--- a/Allura/allura/tests/test_security.py
+++ b/Allura/allura/tests/test_security.py
@@ -79,7 +79,6 @@ class TestSecurity(TestController):
     @td.with_wiki
     def test_all_allowed(self):
         wiki = c.project.app_instance('wiki')
-        page = WM.Page.query.get(app_config_id=wiki.config._id)
         admin_role = M.ProjectRole.by_name('Admin')
         dev_role = M.ProjectRole.by_name('Developer')
         member_role = M.ProjectRole.by_name('Member')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_tasks.py b/Allura/allura/tests/test_tasks.py
index 101ed8a..e948276 100644
--- a/Allura/allura/tests/test_tasks.py
+++ b/Allura/allura/tests/test_tasks.py
@@ -17,7 +17,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import os
 import operator
 import shutil
 import sys
@@ -33,7 +32,6 @@ from nose.tools import assert_in
 from ming.orm import FieldProperty, Mapper
 from ming.orm import ThreadLocalORMSession
 from testfixtures import LogCapture
-from IPython.testing.decorators import onlyif
 
 from alluratest.controller import setup_basic_test, setup_global_objects
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/test_utils.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_utils.py b/Allura/allura/tests/test_utils.py
index 4812cb7..232763a 100644
--- a/Allura/allura/tests/test_utils.py
+++ b/Allura/allura/tests/test_utils.py
@@ -58,10 +58,9 @@ class TestConfigProxy(unittest.TestCase):
 class TestChunkedIterator(unittest.TestCase):
 
     def setUp(self):
-        from allura import model as M
         setup_unit_test()
         for i in range(10):
-            p = M.User.upsert('sample-user-%d' % i)
+            M.User.upsert('sample-user-%d' % i)
 
     def test_can_iterate(self):
         chunks = list(utils.chunked_find(M.User, {}, 2))

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/tscript.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/tscript.py b/Allura/allura/tests/tscript.py
index 77e45a8..6691331 100644
--- a/Allura/allura/tests/tscript.py
+++ b/Allura/allura/tests/tscript.py
@@ -15,14 +15,9 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import sys
 import logging
 
-from tg import config
-from pylons import tmpl_context as c
-
 from allura import model as M
-from allura.lib import helpers as h
 
 log = logging.getLogger(__name__)
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/unit/test_app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/unit/test_app.py b/Allura/allura/tests/unit/test_app.py
index adbfc40..e429407 100644
--- a/Allura/allura/tests/unit/test_app.py
+++ b/Allura/allura/tests/unit/test_app.py
@@ -15,7 +15,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import re
 from unittest import TestCase
 
 from allura.app import Application

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/unit/test_helpers/test_set_context.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/unit/test_helpers/test_set_context.py b/Allura/allura/tests/unit/test_helpers/test_set_context.py
index 7784f74..8b56a0f 100644
--- a/Allura/allura/tests/unit/test_helpers/test_set_context.py
+++ b/Allura/allura/tests/unit/test_helpers/test_set_context.py
@@ -26,7 +26,6 @@ from allura.tests.unit import patches
 from allura.tests.unit.factories import (create_project,
                                          create_app_config,
                                          create_neighborhood)
-from allura.model.project import Neighborhood
 
 
 class TestWhenProjectIsFoundAndAppIsNot(WithDatabase):
@@ -102,7 +101,7 @@ class TestWhenProjectIsNotFound(WithDatabase):
                       neighborhood=nbhd)
 
     def test_proper_exception_when_id_lookup(self):
-        nbhd = create_neighborhood()
+        create_neighborhood()
         assert_raises(NoSuchProjectError,
                       set_context,
                       ObjectId(),

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/unit/test_package_path_loader.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/unit/test_package_path_loader.py b/Allura/allura/tests/unit/test_package_path_loader.py
index 61bd887..c0c1519 100644
--- a/Allura/allura/tests/unit/test_package_path_loader.py
+++ b/Allura/allura/tests/unit/test_package_path_loader.py
@@ -16,10 +16,9 @@
 #       under the License.
 
 from unittest import TestCase
-from collections import defaultdict
 
 import jinja2
-from nose.tools import assert_equal, assert_in, assert_raises
+from nose.tools import assert_equal, assert_raises
 import mock
 
 from allura.lib.package_path_loader import PackagePathLoader

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/unit/test_repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/unit/test_repo.py b/Allura/allura/tests/unit/test_repo.py
index 567b6cc..eef8656 100644
--- a/Allura/allura/tests/unit/test_repo.py
+++ b/Allura/allura/tests/unit/test_repo.py
@@ -17,7 +17,7 @@
 
 import datetime
 import unittest
-from mock import patch, Mock, MagicMock, call
+from mock import patch, Mock, MagicMock
 from nose.tools import assert_equal
 
 from pylons import tmpl_context as c

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/websetup/bootstrap.py
----------------------------------------------------------------------
diff --git a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
index 252bfc9..abe8234 100644
--- a/Allura/allura/websetup/bootstrap.py
+++ b/Allura/allura/websetup/bootstrap.py
@@ -37,7 +37,6 @@ import allura
 from allura.lib import plugin
 from allura.lib import helpers as h
 from allura import model as M
-from allura.websetup import schema
 from allura.command import EnsureIndexCommand
 from allura.command import CreateTroveCategoriesCommand
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/docs/conf.py
----------------------------------------------------------------------
diff --git a/Allura/docs/conf.py b/Allura/docs/conf.py
index 9b8e40a..38e6c65 100644
--- a/Allura/docs/conf.py
+++ b/Allura/docs/conf.py
@@ -28,9 +28,6 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-import sys
-import os
-
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/AlluraTest/alluratest/controller.py
----------------------------------------------------------------------
diff --git a/AlluraTest/alluratest/controller.py b/AlluraTest/alluratest/controller.py
index ca75ae5..8386d0b 100644
--- a/AlluraTest/alluratest/controller.py
+++ b/AlluraTest/alluratest/controller.py
@@ -26,10 +26,9 @@ from paste.deploy import loadapp
 from paste.deploy.converters import asbool
 from paste.script.appinstall import SetupCommand
 from pylons import tmpl_context as c, app_globals as g
-from pylons import url, request, response, session
+from pylons import url, response, session
 import tg
-from webtest import TestApp
-from webob import Request, Response
+from webob import Response
 import ew
 from ming.orm import ThreadLocalORMSession
 import ming.orm

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/AlluraTest/alluratest/test_syntax.py
----------------------------------------------------------------------
diff --git a/AlluraTest/alluratest/test_syntax.py b/AlluraTest/alluratest/test_syntax.py
index a4c03ee..c782aac 100644
--- a/AlluraTest/alluratest/test_syntax.py
+++ b/AlluraTest/alluratest/test_syntax.py
@@ -16,7 +16,6 @@
 #       under the License.
 
 import os.path
-from glob import glob
 from subprocess import Popen, PIPE
 import sys
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/AlluraTest/alluratest/validation.py
----------------------------------------------------------------------
diff --git a/AlluraTest/alluratest/validation.py b/AlluraTest/alluratest/validation.py
index 6742594..4af5012 100644
--- a/AlluraTest/alluratest/validation.py
+++ b/AlluraTest/alluratest/validation.py
@@ -20,7 +20,7 @@
 """
 Functions to syntax-validate output content
 """
-from os import path, environ, getcwd
+from os import path
 import os
 import sys
 import logging
@@ -30,17 +30,9 @@ import json
 import urllib2
 import re
 
-import tg
-import mock
-import beaker.session
-from paste.deploy import loadapp
-from paste.script.appinstall import SetupCommand
-from pylons import tmpl_context as c, app_globals as g
-from pylons import url, request, response, session
 import webtest
 from webtest import TestApp
-from webob import Request, Response
-from nose.tools import ok_, assert_true, assert_false
+from nose.tools import ok_
 from poster.encode import multipart_encode
 from poster.streaminghttp import register_openers
 from ming.utils import LazyProperty

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/AlluraTest/setup.py
----------------------------------------------------------------------
diff --git a/AlluraTest/setup.py b/AlluraTest/setup.py
index 9958a75..5a03015 100644
--- a/AlluraTest/setup.py
+++ b/AlluraTest/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 setup(name='AlluraTest',
       version='0.1',

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeActivity/forgeactivity/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeActivity/forgeactivity/tests/functional/test_root.py b/ForgeActivity/forgeactivity/tests/functional/test_root.py
index cafdfe4..c308112 100644
--- a/ForgeActivity/forgeactivity/tests/functional/test_root.py
+++ b/ForgeActivity/forgeactivity/tests/functional/test_root.py
@@ -45,7 +45,7 @@ class TestActivityController(TestController):
 
     def test_index_disabled(self):
         config['activitystream.enabled'] = 'false'
-        resp = self.app.get('/activity/', status=404)
+        self.app.get('/activity/', status=404)
 
     def test_index_override(self):
         config['activitystream.enabled'] = 'false'
@@ -130,7 +130,7 @@ class TestActivityController(TestController):
     @td.with_user_project('test-admin')
     @patch('forgeactivity.main.g.director')
     def test_viewing_own_user_project(self, director):
-        resp = self.app.get('/u/test-admin/activity/')
+        self.app.get('/u/test-admin/activity/')
         assert director.get_timeline.call_count == 1
         assert director.get_timeline.call_args[0][0].username == 'test-admin'
         assert director.get_timeline.call_args[1]['actor_only'] == False
@@ -139,7 +139,7 @@ class TestActivityController(TestController):
     @td.with_user_project('test-user-1')
     @patch('forgeactivity.main.g.director')
     def test_viewing_other_user_project(self, director):
-        resp = self.app.get('/u/test-user-1/activity/')
+        self.app.get('/u/test-user-1/activity/')
         assert director.get_timeline.call_count == 1
         assert director.get_timeline.call_args[0][0].username == 'test-user-1'
         assert director.get_timeline.call_args[1]['actor_only'] == True
@@ -147,7 +147,7 @@ class TestActivityController(TestController):
     @td.with_tool('test', 'activity')
     @patch('forgeactivity.main.g.director')
     def test_viewing_project_activity(self, director):
-        resp = self.app.get('/p/test/activity/')
+        self.app.get('/p/test/activity/')
         assert director.get_timeline.call_count == 1
         assert director.get_timeline.call_args[0][0].shortname == 'test'
         assert director.get_timeline.call_args[1]['actor_only'] == False

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeBlog/forgeblog/command/rssfeeds.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/command/rssfeeds.py b/ForgeBlog/forgeblog/command/rssfeeds.py
index ce02487..7771a5c 100644
--- a/ForgeBlog/forgeblog/command/rssfeeds.py
+++ b/ForgeBlog/forgeblog/command/rssfeeds.py
@@ -17,7 +17,6 @@
 
 import calendar
 from datetime import datetime
-import re
 
 import feedparser
 from bson import ObjectId
@@ -30,7 +29,6 @@ from pylons import tmpl_context as c
 
 from allura import model as M
 from forgeblog import model as BM
-from forgeblog import version
 from forgeblog.main import ForgeBlogApp
 from allura.lib import exceptions
 from allura.lib.helpers import exceptionless

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeBlog/forgeblog/main.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/main.py b/ForgeBlog/forgeblog/main.py
index 1bb4ced..9e70769 100644
--- a/ForgeBlog/forgeblog/main.py
+++ b/ForgeBlog/forgeblog/main.py
@@ -17,7 +17,6 @@
 
 #-*- python -*-
 import logging
-from datetime import datetime
 import urllib2
 import json
 
@@ -25,13 +24,12 @@ import json
 import pymongo
 from tg import config, expose, validate, redirect, flash, jsonify
 from tg.decorators import with_trailing_slash, without_trailing_slash
-from pylons import tmpl_context as c, app_globals as g
-from pylons import request, response
+from pylons import tmpl_context as c
+from pylons import request
 from paste.deploy.converters import asbool
 import formencode
 from formencode import validators
 from webob import exc
-from urllib import unquote
 
 from ming.orm import session
 
@@ -157,7 +155,6 @@ class ForgeBlogApp(Application):
         return links
 
     def admin_menu(self):
-        import sys
         admin_url = c.project.url() + 'admin/' + \
             self.config.options.mount_point + '/'
         # temporarily disabled until some bugs are fixed
@@ -256,7 +253,6 @@ class RootController(BaseController, FeedController):
     @without_trailing_slash
     def new(self, **kw):
         require_access(c.app, 'write')
-        now = datetime.utcnow()
         post = dict(
             state='published')
         c.form = W.new_post_form

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeBlog/forgeblog/tests/test_commands.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/tests/test_commands.py b/ForgeBlog/forgeblog/tests/test_commands.py
index a086519..7f2d0f7 100644
--- a/ForgeBlog/forgeblog/tests/test_commands.py
+++ b/ForgeBlog/forgeblog/tests/test_commands.py
@@ -16,7 +16,7 @@
 #       under the License.
 
 from datetime import datetime, timedelta
-from pylons import tmpl_context as c, app_globals as g
+from pylons import app_globals as g
 from datadiff.tools import assert_equal
 from IPython.testing.decorators import module_not_available, skipif
 import pkg_resources

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeBlog/setup.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/setup.py b/ForgeBlog/setup.py
index 40befd6..7eda917 100644
--- a/ForgeBlog/setup.py
+++ b/ForgeBlog/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgeblog.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeChat/forgechat/command.py
----------------------------------------------------------------------
diff --git a/ForgeChat/forgechat/command.py b/ForgeChat/forgechat/command.py
index e667843..16f730f 100644
--- a/ForgeChat/forgechat/command.py
+++ b/ForgeChat/forgechat/command.py
@@ -28,7 +28,7 @@ import tg
 from paste.script import command
 from paste.deploy.converters import asint
 
-from ming.orm import session, ThreadLocalORMSession
+from ming.orm import ThreadLocalORMSession
 
 import allura
 from allura.command import base

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeChat/forgechat/main.py
----------------------------------------------------------------------
diff --git a/ForgeChat/forgechat/main.py b/ForgeChat/forgechat/main.py
index c579ea5..39a6807 100644
--- a/ForgeChat/forgechat/main.py
+++ b/ForgeChat/forgechat/main.py
@@ -24,7 +24,7 @@ from datetime import date, time, datetime, timedelta
 # Non-stdlib imports
 from tg import expose, validate, redirect, flash
 from tg.decorators import with_trailing_slash
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 from formencode import validators
 
 # Pyforge-specific imports

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeChat/setup.py
----------------------------------------------------------------------
diff --git a/ForgeChat/setup.py b/ForgeChat/setup.py
index 6cb2c59..242841b 100644
--- a/ForgeChat/setup.py
+++ b/ForgeChat/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgechat.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeDiscussion/forgediscussion/controllers/root.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/controllers/root.py b/ForgeDiscussion/forgediscussion/controllers/root.py
index 82f4187..b315dca 100644
--- a/ForgeDiscussion/forgediscussion/controllers/root.py
+++ b/ForgeDiscussion/forgediscussion/controllers/root.py
@@ -23,7 +23,7 @@ import calendar
 from collections import OrderedDict
 
 
-from tg import expose, validate, redirect, flash, response, jsonify
+from tg import expose, validate, redirect, flash
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from pylons import tmpl_context as c, app_globals as g
 from pylons import request
@@ -131,7 +131,7 @@ class RootController(BaseController, DispatchIndex, FeedController):
         require_access(discussion, 'post')
         thd = discussion.get_discussion_thread(dict(
             headers=dict(Subject=subject)))[0]
-        post = thd.post(subject, text)
+        thd.post(subject, text)
         flash('Message posted')
         redirect(thd.url())
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeDiscussion/forgediscussion/forum_main.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/forum_main.py b/ForgeDiscussion/forgediscussion/forum_main.py
index b9f033c..d179a29 100644
--- a/ForgeDiscussion/forgediscussion/forum_main.py
+++ b/ForgeDiscussion/forgediscussion/forum_main.py
@@ -18,14 +18,12 @@
 #-*- python -*-
 import logging
 import urllib
-from itertools import islice
 import json
 
 # Non-stdlib imports
-import pymongo
 from pylons import tmpl_context as c, app_globals as g
 from pylons import request
-from tg import expose, redirect, flash, url, validate, jsonify
+from tg import expose, redirect, flash, validate, jsonify
 from tg.decorators import with_trailing_slash
 from bson import ObjectId
 from ming import schema

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index e3b5682..e23f38a 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -25,9 +25,8 @@ from email.mime.image import MIMEImage
 from email.mime.multipart import MIMEMultipart
 
 import pkg_resources
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 from nose.tools import assert_equal, assert_in
-from ming.orm import ThreadLocalORMSession
 
 from allura import model as M
 from allura.tasks import mail_tasks
@@ -317,27 +316,26 @@ class TestForum(TestController):
         assert_equal(len(r.html.findAll('a', rel='nofollow')), 1)
 
     def test_forum_search(self):
-        r = self.app.get('/discussion/search')
-        r = self.app.get('/discussion/search', params=dict(q='foo'))
+        self.app.get('/discussion/search')
+        self.app.get('/discussion/search', params=dict(q='foo'))
 
     def test_render_markdown_syntax(self):
-        summary = 'test render markdown syntax'
         r = self.app.get('/discussion/markdown_syntax')
         assert 'Markdown Syntax' in r
 
     def test_forum_subscribe(self):
-        r = self.app.post('/discussion/subscribe', params={
+        self.app.post('/discussion/subscribe', params={
             'forum-0.shortname': 'testforum',
             'forum-0.subscribed': 'on',
         })
-        r = self.app.post('/discussion/subscribe', params={
+        self.app.post('/discussion/subscribe', params={
             'forum-0.shortname': 'testforum',
             'forum-0.subscribed': '',
         })
 
     def test_forum_index(self):
-        r = self.app.get('/discussion/testforum/')
-        r = self.app.get('/discussion/testforum/childforum/')
+        self.app.get('/discussion/testforum/')
+        self.app.get('/discussion/testforum/childforum/')
 
     def test_threads_with_zero_posts(self):
         # Make sure that threads with zero posts (b/c all posts have been
@@ -587,7 +585,6 @@ class TestForum(TestController):
                     'value') and field['value'] or ''
         self.app.post(str(subscribe_url), params=params)
         self.app.get('/discussion/general/subscribe_to_forum?subscribe=True')
-        url = thread.request.url
         f = thread.html.find(
             'div', {'class': 'row reply_post_form'}).find('form')
         rep_url = f.get('action')
@@ -598,7 +595,7 @@ class TestForum(TestController):
                 params[field['name']] = field.has_key(
                     'value') and field['value'] or ''
         params[f.find('textarea')['name']] = 'Reply 2'
-        thread_reply = self.app.post(str(rep_url), params=params)
+        self.app.post(str(rep_url), params=params)
         assert M.Notification.query.find(
             dict(subject='[test:discussion] Re: Post subject')).count() == 1
 
@@ -630,7 +627,6 @@ class TestForum(TestController):
         r = self.app.post('/discussion/save_new_topic', params=params).follow()
         url = r.request.url
         thread_id = url.rstrip('/').rsplit('/', 1)[-1]
-        thread = FM.ForumThread.query.get(_id=thread_id)
         r = self.app.post(url + 'moderate', params=dict(
             flags='Announcement',
             discussion='testforum'))
@@ -676,8 +672,6 @@ class TestForum(TestController):
         params[f.find('select')['name']] = 'testforum'
         params[f.find('input', {'style': 'width: 90%'})['name']] = 'topic2'
         r = self.app.post('/discussion/save_new_topic', params=params).follow()
-        url2 = r.request.url
-        tid2 = url2.rstrip('/').rsplit('/', 1)[-1]
 
         # Check that threads are ordered in reverse creation order
         r = self.app.get('/discussion/testforum/')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_import.py b/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
index b641b2d..deeb349 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
@@ -21,10 +21,10 @@ from datetime import datetime, timedelta
 from nose.tools import assert_equal
 
 import ming
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 
 from allura import model as M
-from alluratest.controller import TestController, TestRestApiBase
+from alluratest.controller import TestRestApiBase
 
 
 class TestImportController(TestRestApiBase):  # TestController):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeDiscussion/forgediscussion/widgets/admin.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/widgets/admin.py b/ForgeDiscussion/forgediscussion/widgets/admin.py
index bb954b1..cf2ff8f 100644
--- a/ForgeDiscussion/forgediscussion/widgets/admin.py
+++ b/ForgeDiscussion/forgediscussion/widgets/admin.py
@@ -15,13 +15,11 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from pylons import tmpl_context as c
 from formencode import validators as fev
 from formencode import All
 import formencode
 from bson import ObjectId
 
-import ew as ew_core
 import ew.jinja2_ew as ew
 
 from allura.lib.widgets import forms as ff

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeDiscussion/setup.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/setup.py b/ForgeDiscussion/setup.py
index c978edd..165ce4b 100644
--- a/ForgeDiscussion/setup.py
+++ b/ForgeDiscussion/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgediscussion.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeGit/forgegit/git_main.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/git_main.py b/ForgeGit/forgegit/git_main.py
index fda6914..5a7dfd4 100644
--- a/ForgeGit/forgegit/git_main.py
+++ b/ForgeGit/forgegit/git_main.py
@@ -28,8 +28,6 @@ import git
 
 # Pyforge-specific imports
 import allura.tasks.repo_tasks
-from allura.lib import helpers as h
-from allura import model as M
 from allura.controllers.repository import RepoRootController, RefsController, CommitsController
 from allura.controllers.repository import MergeRequestsController, RepoRestController
 from allura.lib.repository import RepositoryApp
@@ -89,7 +87,7 @@ class ForgeGitApp(RepositoryApp):
     def install(self, project):
         '''Create repo object for this tool'''
         super(ForgeGitApp, self).install(project)
-        repo = GM.Repository(
+        GM.Repository(
             name=self.config.options.mount_point + '.git',
             tool='git',
             status='initializing',

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index e5dce43..09fca39 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -16,17 +16,10 @@
 #       under the License.
 
 import os
-import sys
 import shutil
 import string
 import logging
-import random
-import itertools
-from collections import namedtuple
 from datetime import datetime
-from glob import glob
-import gzip
-from time import time
 
 import tg
 import git
@@ -34,14 +27,13 @@ import gitdb
 from pylons import app_globals as g
 from pylons import tmpl_context as c
 from pymongo.errors import DuplicateKeyError
-from paste.deploy.converters import asbool, asint
+from paste.deploy.converters import asbool
 
 from ming.base import Object
-from ming.orm import Mapper, session, mapper
+from ming.orm import Mapper, session
 from ming.utils import LazyProperty
 
 from allura.lib import helpers as h
-from allura.lib import utils
 from allura.model.repository import topological_sort, prefix_paths_union
 from allura import model as M
 
@@ -489,7 +481,7 @@ class GitImplementation(M.RepositoryImplementation):
         try:
             node = ci.tree / path
             return node.type == 'blob'
-        except KeyError as e:
+        except KeyError:
             return False
 
     @LazyProperty

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeGit/forgegit/tests/functional/test_auth.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/functional/test_auth.py b/ForgeGit/forgegit/tests/functional/test_auth.py
index 93a1af0..1a230d4 100644
--- a/ForgeGit/forgegit/tests/functional/test_auth.py
+++ b/ForgeGit/forgegit/tests/functional/test_auth.py
@@ -31,7 +31,7 @@ class TestGitUserPermissions(TestController):
     disallow = dict(allow_read=False, allow_write=False, allow_create=False)
 
     def test_unknown_project(self):
-        r = self._check_repo('/git/foo/bar', status=404)
+        self._check_repo('/git/foo/bar', status=404)
 
     def test_unknown_app(self):
         r = self._check_repo('/git/test/bar')
@@ -64,7 +64,7 @@ class TestGitUserPermissions(TestController):
         assert r == self.read, r
 
     def test_unknown_user(self):
-        r = self._check_repo(
+        self._check_repo(
             '/git/test.p/src-git.git',
             username='test-usera',
             status=404)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeGit/forgegit/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index 68d117e..5fd0805 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -26,7 +26,6 @@ import tg
 import pkg_resources
 from pylons import tmpl_context as c
 from ming.orm import ThreadLocalORMSession
-from datadiff.tools import assert_equal
 
 from allura import model as M
 from allura.lib import helpers as h
@@ -101,7 +100,7 @@ class TestRootController(_TestCase):
         self.app.get('/git/')
 
     def test_commit_browser(self):
-        resp = self.app.get('/src-git/commit_browser')
+        self.app.get('/src-git/commit_browser')
 
     def test_commit_browser_data(self):
         resp = self.app.get('/src-git/commit_browser_data')
@@ -158,7 +157,7 @@ class TestRootController(_TestCase):
         assert 'url_commit="/p/test/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/">' not in r
 
     def test_tags(self):
-        resp = self.app.get('/src-git/ref/master~/tags/')
+        self.app.get('/src-git/ref/master~/tags/')
 
     def _get_ci(self):
         r = self.app.get('/src-git/ref/master/')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeGit/forgegit/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index eb68a1b..215ba0b 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -24,8 +24,6 @@ import unittest
 import pkg_resources
 import datetime
 
-import pymongo
-
 import mock
 from pylons import tmpl_context as c, app_globals as g
 import tg

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeGit/setup.py
----------------------------------------------------------------------
diff --git a/ForgeGit/setup.py b/ForgeGit/setup.py
index ee01f0b..e91068b 100644
--- a/ForgeGit/setup.py
+++ b/ForgeGit/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgegit.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/docs/conf.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/docs/conf.py b/ForgeImporters/docs/conf.py
index b19661b..ea18df2 100644
--- a/ForgeImporters/docs/conf.py
+++ b/ForgeImporters/docs/conf.py
@@ -28,9 +28,6 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-import sys
-import os
-
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/forge/tracker.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/forge/tracker.py b/ForgeImporters/forgeimporters/forge/tracker.py
index c06db73..5407743 100644
--- a/ForgeImporters/forgeimporters/forge/tracker.py
+++ b/ForgeImporters/forgeimporters/forge/tracker.py
@@ -183,7 +183,7 @@ class ForgeTrackerImporter(ToolImporter):
             app.globals.invalidate_bin_counts()
             ThreadLocalORMSession.flush_all()
             return app
-        except Exception as e:
+        except Exception:
             h.make_app_admin_only(app)
             raise
         finally:

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/github/code.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/code.py b/ForgeImporters/forgeimporters/github/code.py
index 83095ff..ede36b4 100644
--- a/ForgeImporters/forgeimporters/github/code.py
+++ b/ForgeImporters/forgeimporters/github/code.py
@@ -30,7 +30,6 @@ from tg.decorators import (
 )
 
 from allura.lib.decorators import require_post
-from allura.lib import helpers as h
 from allura.controllers import BaseController
 from allura import model as M
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/github/project.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/project.py b/ForgeImporters/forgeimporters/github/project.py
index 9c8e549..fc7247b 100644
--- a/ForgeImporters/forgeimporters/github/project.py
+++ b/ForgeImporters/forgeimporters/github/project.py
@@ -23,7 +23,6 @@ from tg import expose, validate
 from tg.decorators import with_trailing_slash
 
 from allura.lib.decorators import require_post
-from allura.lib import helpers as h
 
 from .. import base
 from . import tasks

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/github/tests/test_code.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/tests/test_code.py b/ForgeImporters/forgeimporters/github/tests/test_code.py
index 8a6f95b..8fa6a2f 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_code.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_code.py
@@ -119,6 +119,6 @@ class TestGitHubImportController(TestController, TestCase):
     @with_git
     @patch.object(GitHubOAuthMixin, 'oauth_begin')
     def test_oauth(self, oauth_begin):
-        r = self.app.get(
+        self.app.get(
             '/p/{}/admin/ext/import/github-repo/'.format(test_project_with_repo))
         oauth_begin.assert_called_once()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/github/tests/test_tracker.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/tests/test_tracker.py b/ForgeImporters/forgeimporters/github/tests/test_tracker.py
index c494453..72e1148 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_tracker.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_tracker.py
@@ -81,5 +81,5 @@ class TestGitHubTrackerImportController(TestController, TestCase):
     @with_tracker
     @patch.object(GitHubOAuthMixin, 'oauth_begin')
     def test_oauth(self, oauth_begin):
-        r = self.app.get(self.url)
+        self.app.get(self.url)
         oauth_begin.assert_called_once()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/github/tests/test_wiki.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/tests/test_wiki.py b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
index 29e9757..1eb996a 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_wiki.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
@@ -18,7 +18,7 @@
 #       under the License.
 
 from unittest import TestCase
-from nose.tools import assert_equal, assert_not_in
+from nose.tools import assert_equal
 from mock import Mock, patch, call
 from ming.odm import ThreadLocalORMSession
 
@@ -589,5 +589,5 @@ class TestGitHubWikiImportController(TestController, TestCase):
     @with_wiki
     @patch.object(GitHubOAuthMixin, 'oauth_begin')
     def test_oauth(self, oauth_begin):
-        r = self.app.get(self.url)
+        self.app.get(self.url)
         oauth_begin.assert_called_once()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/github/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/wiki.py b/ForgeImporters/forgeimporters/github/wiki.py
index 74789d2..9c00048 100644
--- a/ForgeImporters/forgeimporters/github/wiki.py
+++ b/ForgeImporters/forgeimporters/github/wiki.py
@@ -178,7 +178,7 @@ class GitHubWikiImporter(ToolImporter):
                 url=self.app.url)
             g.post_event('project_updated')
             return self.app
-        except Exception as e:
+        except Exception:
             h.make_app_admin_only(self.app)
             raise
         finally:

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/google/__init__.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/__init__.py b/ForgeImporters/forgeimporters/google/__init__.py
index e2ff4df..57ff4d1 100644
--- a/ForgeImporters/forgeimporters/google/__init__.py
+++ b/ForgeImporters/forgeimporters/google/__init__.py
@@ -20,10 +20,8 @@ import urllib
 from urllib2 import HTTPError
 from urlparse import urlparse, urljoin, parse_qs
 from collections import defaultdict
-from contextlib import closing
 import logging
 import os
-import re
 
 from BeautifulSoup import BeautifulSoup
 from formencode import validators as fev

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/google/project.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/project.py b/ForgeImporters/forgeimporters/google/project.py
index bb74c80..9ffade1 100644
--- a/ForgeImporters/forgeimporters/google/project.py
+++ b/ForgeImporters/forgeimporters/google/project.py
@@ -17,8 +17,6 @@
 
 import logging
 
-from formencode import validators as fev
-
 from tg import expose, validate
 from tg.decorators import with_trailing_slash
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/google/tests/test_code.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/tests/test_code.py b/ForgeImporters/forgeimporters/google/tests/test_code.py
index e8f6e35..00c5328 100644
--- a/ForgeImporters/forgeimporters/google/tests/test_code.py
+++ b/ForgeImporters/forgeimporters/google/tests/test_code.py
@@ -16,11 +16,10 @@
 #       under the License.
 
 from unittest import TestCase
-from mock import Mock, patch, MagicMock
+from mock import Mock, patch
 from ming.odm import ThreadLocalORMSession
 
 from allura.tests import TestController
-from allura.tests.decorators import with_tool
 from allura import model as M
 
 
@@ -32,7 +31,6 @@ test_project_with_repo = 'test2'
 from forgeimporters.google.code import (
     get_repo_url,
     GoogleRepoImporter,
-    GoogleRepoImportController,
 )
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/google/tracker.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/tracker.py b/ForgeImporters/forgeimporters/google/tracker.py
index ab131a8..b3abc10 100644
--- a/ForgeImporters/forgeimporters/google/tracker.py
+++ b/ForgeImporters/forgeimporters/google/tracker.py
@@ -16,9 +16,6 @@
 #       under the License.
 
 from collections import defaultdict
-from datetime import datetime
-
-from formencode import validators as fev
 
 from pylons import tmpl_context as c
 from pylons import app_globals as g
@@ -152,7 +149,7 @@ class GoogleCodeTrackerImporter(ToolImporter):
             g.post_event('project_updated')
             app.globals.invalidate_bin_counts()
             return app
-        except Exception as e:
+        except Exception:
             h.make_app_admin_only(app)
             raise
         finally:

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/tests/google/functional/test_tracker.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/google/functional/test_tracker.py b/ForgeImporters/forgeimporters/tests/google/functional/test_tracker.py
index e689971..96d789d 100644
--- a/ForgeImporters/forgeimporters/tests/google/functional/test_tracker.py
+++ b/ForgeImporters/forgeimporters/tests/google/functional/test_tracker.py
@@ -17,12 +17,10 @@
 
 from unittest import TestCase
 import pkg_resources
-from functools import wraps
 from datetime import datetime
 
 from BeautifulSoup import BeautifulSoup
 import mock
-from ming.orm import ThreadLocalORMSession
 from pylons import tmpl_context as c
 from IPython.testing.decorators import module_not_available, skipif
 from datadiff.tools import assert_equal
@@ -30,11 +28,9 @@ from datadiff.tools import assert_equal
 from alluratest.controller import setup_basic_test
 from allura.tests.decorators import without_module
 from allura import model as M
-from allura.lib import helpers as h
 from forgetracker import model as TM
 from forgeimporters import base
 from forgeimporters import google
-from forgeimporters.google import tracker
 
 
 class TestGCTrackerImporter(TestCase):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/tests/google/test_extractor.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/google/test_extractor.py b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
index 3635ac5..1eab6f6 100644
--- a/ForgeImporters/forgeimporters/tests/google/test_extractor.py
+++ b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
@@ -139,7 +139,6 @@ class TestGoogleCodeProjectExtractor(TestCase):
             fullname='Other/Proprietary License')
 
     def _make_extractor(self, html):
-        from BeautifulSoup import BeautifulSoup
         with mock.patch.object(base.ProjectExtractor, 'urlopen'):
             extractor = google.GoogleCodeProjectExtractor(
                 'allura-google-importer')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/tests/test_base.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/test_base.py b/ForgeImporters/forgeimporters/tests/test_base.py
index 91d9dff..2156471 100644
--- a/ForgeImporters/forgeimporters/tests/test_base.py
+++ b/ForgeImporters/forgeimporters/tests/test_base.py
@@ -21,7 +21,7 @@ import errno
 from formencode import Invalid
 import mock
 from tg import expose, config
-from nose.tools import assert_equal, assert_raises, assert_in, assert_not_in
+from nose.tools import assert_equal, assert_raises
 from webob.exc import HTTPUnauthorized
 
 from alluratest.controller import TestController

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
index 7ddb729..e9366f2 100644
--- a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
@@ -17,10 +17,9 @@
 
 import json
 import os
-from datetime import datetime
 
 from unittest import TestCase
-from mock import Mock, patch, MagicMock
+from mock import Mock, patch
 from ming.orm import ThreadLocalORMSession
 from pylons import tmpl_context as c
 from IPython.testing.decorators import module_not_available, skipif

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeLink/forgelink/link_main.py
----------------------------------------------------------------------
diff --git a/ForgeLink/forgelink/link_main.py b/ForgeLink/forgelink/link_main.py
index 0f2292a..bb55a3e 100644
--- a/ForgeLink/forgelink/link_main.py
+++ b/ForgeLink/forgelink/link_main.py
@@ -20,9 +20,8 @@ import logging
 import json
 
 # Non-stdlib imports
-import pkg_resources
-from tg import expose, validate, redirect, response, flash, jsonify
-from pylons import tmpl_context as c, app_globals as g
+from tg import expose, redirect, flash, jsonify
+from pylons import tmpl_context as c
 from pylons import request
 
 # Pyforge-specific imports

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeLink/setup.py
----------------------------------------------------------------------
diff --git a/ForgeLink/setup.py b/ForgeLink/setup.py
index 711d2c1..fc91792 100644
--- a/ForgeLink/setup.py
+++ b/ForgeLink/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgelink.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeSVN/forgesvn/controllers.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/controllers.py b/ForgeSVN/forgesvn/controllers.py
index f4461f0..35af8e7 100644
--- a/ForgeSVN/forgesvn/controllers.py
+++ b/ForgeSVN/forgesvn/controllers.py
@@ -20,7 +20,7 @@ from tg.decorators import with_trailing_slash
 from pylons import tmpl_context as c
 
 from allura.controllers import repository
-from allura.controllers.feed import FeedController, FeedArgs
+from allura.controllers.feed import FeedController
 
 
 class BranchBrowser(repository.BranchBrowser, FeedController):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index 9823f1e..6aa5499 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -15,7 +15,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import sys
 import re
 import os
 import shutil
@@ -36,7 +35,7 @@ from pymongo.errors import DuplicateKeyError
 from pylons import tmpl_context as c, app_globals as g
 
 from ming.base import Object
-from ming.orm import Mapper, FieldProperty, session
+from ming.orm import Mapper, FieldProperty
 from ming.utils import LazyProperty
 
 from allura import model as M

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeSVN/forgesvn/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/functional/test_controllers.py b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
index ca02196..b3108eb 100644
--- a/ForgeSVN/forgesvn/tests/functional/test_controllers.py
+++ b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
@@ -93,7 +93,7 @@ class TestRootController(SVNTestController):
         self.app.get('/svn/')
 
     def test_commit_browser(self):
-        resp = self.app.get('/src/commit_browser')
+        self.app.get('/src/commit_browser')
 
     def test_commit_browser_data(self):
         resp = self.app.get('/src/commit_browser_data')
@@ -156,7 +156,7 @@ class TestRootController(SVNTestController):
         assert 'var hash = window.location.hash.substring(1);' in resp
 
     def test_invalid_file(self):
-        resp = self.app.get('/src/1/tree/READMEz', status=404)
+        self.app.get('/src/1/tree/READMEz', status=404)
 
     def test_diff(self):
         resp = self.app.get('/src/3/tree/README?diff=2')
@@ -292,7 +292,7 @@ class TestImportController(SVNTestController):
 
     @patch('forgesvn.svn_main.allura.tasks.repo_tasks')
     def test_do_import(self, tasks):
-        r = self.app.post('/p/test/admin/src/importer/do_import',
+        self.app.post('/p/test/admin/src/importer/do_import',
                           {'checkout_url': 'http://fake.svn/'})
         assert not tasks.reclone.post.called
 
@@ -304,7 +304,7 @@ class TestImportController(SVNTestController):
     @patch('forgesvn.svn_main.allura.tasks.repo_tasks')
     @with_tool('test', 'SVN', 'empty', 'empty SVN')
     def test_do_import_empty_repo(self, tasks):
-        r = self.app.post('/p/test/admin/empty/importer/do_import',
+        self.app.post('/p/test/admin/empty/importer/do_import',
                           {'checkout_url': 'http://fake.svn/'})
         assert tasks.reclone.post.called
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeSVN/forgesvn/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index babafb3..7f0c7b9 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -33,13 +33,11 @@ from ming.base import Object
 from ming.orm import session, ThreadLocalORMSession
 from testfixtures import TempDirectory
 from IPython.testing.decorators import onlyif
-import pysvn
 
 from alluratest.controller import setup_basic_test, setup_global_objects
 from allura import model as M
 from allura.model.repo_refresh import send_notifications
 from allura.lib import helpers as h
-from allura.tests import decorators as td
 from allura.tests.model.test_repo import RepoImplTestBase
 
 from forgesvn import model as SM

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeSVN/forgesvn/tests/test_tasks.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/test_tasks.py b/ForgeSVN/forgesvn/tests/test_tasks.py
index fb48d56..35b426e 100644
--- a/ForgeSVN/forgesvn/tests/test_tasks.py
+++ b/ForgeSVN/forgesvn/tests/test_tasks.py
@@ -23,11 +23,10 @@ import os
 
 import tg
 import mock
-from pylons import tmpl_context as c, app_globals as g
-from ming.orm import ThreadLocalORMSession
+from pylons import tmpl_context as c
 from paste.deploy.converters import asbool
 
-from alluratest.controller import setup_basic_test, setup_global_objects
+from alluratest.controller import setup_basic_test
 
 from allura import model as M
 from allura.lib import helpers as h

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeSVN/setup.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/setup.py b/ForgeSVN/setup.py
index a14fdd3..40dcf73 100644
--- a/ForgeSVN/setup.py
+++ b/ForgeSVN/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgesvn.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeShortUrl/forgeshorturl/main.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/main.py b/ForgeShortUrl/forgeshorturl/main.py
index 72c7b1e..64ba3e1 100644
--- a/ForgeShortUrl/forgeshorturl/main.py
+++ b/ForgeShortUrl/forgeshorturl/main.py
@@ -15,7 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from tg import expose, validate, redirect, flash, request, config
+from tg import expose, validate, redirect, flash, request
 from tg.decorators import without_trailing_slash
 
 from allura.app import Application, SitemapEntry, DefaultAdminController

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 5dfaec0..ecba850 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -69,7 +69,6 @@ from allura.lib import utils
 from allura.lib import helpers as h
 from allura.lib.plugin import ImportIdConverter
 from allura.tasks import mail_tasks
-from paste.deploy.converters import asbool
 
 
 log = logging.getLogger(__name__)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_rest.py b/ForgeTracker/forgetracker/tests/functional/test_rest.py
index b7f4101..455cff5 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_rest.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_rest.py
@@ -146,7 +146,7 @@ class TestRestIndex(TestTrackerApiBase):
     def test_move_ticket_redirect(self):
         p = M.Project.query.get(shortname='test')
         dummy_tracker = p.app_instance('dummy')
-        r = self.app.post(
+        self.app.post(
             '/p/test/bugs/1/move',
             params={'tracker': str(dummy_tracker.config._id)}).follow()
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_globals_model.py b/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
index ac0c2a9..e3945dc 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
@@ -21,7 +21,6 @@ import mock
 from nose.tools import assert_equal
 from pylons import tmpl_context as c
 from ming.orm.ormsession import ThreadLocalORMSession
-from bson import ObjectId
 
 import forgetracker
 from forgetracker.model import Globals

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py b/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
index e35d9ec..b77cf74 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
@@ -18,15 +18,11 @@
 #       under the License.
 
 
-from mock import Mock, patch, MagicMock
-from ming.orm.ormsession import session
+from mock import Mock
 from nose.tools import assert_equal
 
 from allura.lib import helpers as h
-from allura.model import User
 from pylons import tmpl_context as c
-from forgetracker.tests.unit import TrackerTestWithModel
-from forgetracker.model import Ticket, Globals
 from forgetracker.tracker_main import MilestoneController
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
index cbe926c..256ba86 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
@@ -22,7 +22,7 @@ from allura.lib import helpers as h
 from allura.model import User
 from pylons import tmpl_context as c
 from forgetracker.tests.unit import TrackerTestWithModel
-from forgetracker.model import Ticket, Globals
+from forgetracker.model import Ticket
 from forgetracker import tracker_main
 import unittest
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/unit/test_ticket_custom_fields_form.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_ticket_custom_fields_form.py b/ForgeTracker/forgetracker/tests/unit/test_ticket_custom_fields_form.py
index 7e393b6..3c8ea70 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_ticket_custom_fields_form.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_ticket_custom_fields_form.py
@@ -22,7 +22,6 @@ from pylons import tmpl_context as c
 
 from forgetracker.tests.unit import TrackerTestWithModel
 from forgetracker.widgets import ticket_form
-from forgetracker.model import Globals
 
 
 class TestTicketCustomFields(TrackerTestWithModel):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/unit/test_ticket_form.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_ticket_form.py b/ForgeTracker/forgetracker/tests/unit/test_ticket_form.py
index bc5bbf2..a0743eb 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_ticket_form.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_ticket_form.py
@@ -15,14 +15,12 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from mock import patch
 from ming.orm.ormsession import ThreadLocalORMSession
 
 from pylons import tmpl_context as c
 
 from forgetracker.tests.unit import TrackerTestWithModel
 from forgetracker.widgets import ticket_form
-from forgetracker.model import Globals
 
 
 class TestTicketForm(TrackerTestWithModel):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
index 2dd2515..f9f4bcb 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
@@ -22,7 +22,7 @@ import urllib2
 from ming.orm.ormsession import ThreadLocalORMSession
 from ming.orm import session
 from ming import schema
-from nose.tools import raises, assert_raises, assert_equal, assert_in
+from nose.tools import raises, assert_equal, assert_in
 
 from forgetracker.model import Ticket, TicketAttachment
 from forgetracker.tests.unit import TrackerTestWithModel
@@ -87,9 +87,8 @@ class TestTicketModel(TrackerTestWithModel):
         assert_equal(t.activity_extras['summary'], t.summary)
 
     def test_private_ticket(self):
-        from pylons import tmpl_context as c
-        from allura.model import ProjectRole, User
-        from allura.model import ACE, ALL_PERMISSIONS, DENY_ALL
+        from allura.model import ProjectRole
+        from allura.model import ACE, DENY_ALL
         from allura.lib.security import Credentials, has_access
         from allura.websetup import bootstrap
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index 1ad73de..cb8db76 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -20,15 +20,12 @@ import logging
 import re
 from datetime import datetime, timedelta
 from urllib import urlencode, unquote
-from urllib2 import urlopen
 from webob import exc
 import json
-from itertools import ifilter, imap
-import jinja2
 
 # Non-stdlib imports
 import pkg_resources
-from tg import expose, validate, redirect, flash, url, config, jsonify
+from tg import expose, validate, redirect, flash, url, jsonify
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from paste.deploy.converters import aslist
 from pylons import tmpl_context as c, app_globals as g
@@ -38,7 +35,6 @@ from bson import ObjectId
 from bson.son import SON
 from bson.errors import InvalidId
 from webhelpers import feedgenerator as FG
-from paste.deploy.converters import asbool
 
 from ming import schema
 from ming.orm.ormsession import ThreadLocalORMSession
@@ -62,7 +58,6 @@ from allura.controllers import AppDiscussionController, AppDiscussionRestControl
 from allura.controllers import attachments as ac
 from allura.controllers import BaseController
 from allura.controllers.feed import FeedArgs, FeedController
-from allura.tasks import mail_tasks
 
 # Local imports
 from forgetracker import model as TM

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/widgets/admin_custom_fields.py b/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
index 2938685..19b55ec 100644
--- a/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
+++ b/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
@@ -21,10 +21,6 @@ import ew.jinja2_ew as ew
 from allura.lib.widgets import form_fields as ffw
 from allura.lib.widgets import forms as f
 
-from pylons import tmpl_context as c
-from forgetracker import model
-from formencode import validators as fev
-
 
 class MilestonesAdmin(ffw.SortableTable):
     defaults = dict(

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/forgetracker/widgets/ticket_search.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/widgets/ticket_search.py b/ForgeTracker/forgetracker/widgets/ticket_search.py
index 453ed68..96888c7 100644
--- a/ForgeTracker/forgetracker/widgets/ticket_search.py
+++ b/ForgeTracker/forgetracker/widgets/ticket_search.py
@@ -15,10 +15,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import tg
-
-from pylons import tmpl_context as c
-
 import ew as ew_core
 import ew.jinja2_ew as ew
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeTracker/setup.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/setup.py b/ForgeTracker/setup.py
index 71b069c..d3e00cc 100644
--- a/ForgeTracker/setup.py
+++ b/ForgeTracker/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgetracker.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/forgeuserstats/controllers/userstats.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/controllers/userstats.py b/ForgeUserStats/forgeuserstats/controllers/userstats.py
index c0ecfc3..6194257 100644
--- a/ForgeUserStats/forgeuserstats/controllers/userstats.py
+++ b/ForgeUserStats/forgeuserstats/controllers/userstats.py
@@ -25,7 +25,6 @@ from pylons import tmpl_context as c
 from allura.lib.security import require_access
 from forgeuserstats.widgets.forms import StatsPreferencesForm
 from allura.lib.decorators import require_post
-from allura.lib import validators as V
 
 stats_preferences_form = StatsPreferencesForm()
 
@@ -200,7 +199,6 @@ class ForgeUserStatsController(BaseController):
 def _getDataForCategory(category, stats):
     totcommits = stats.getCommits(category)
     tottickets = stats.getTickets(category)
-    averagetime = tottickets.get('averagesolvingtime')
     artifacts_by_type = stats.getArtifactsByType(category)
     totartifacts = artifacts_by_type.get(None)
     if totartifacts:
@@ -212,8 +210,6 @@ def _getDataForCategory(category, stats):
     lm_totartifacts = stats.getLastMonthArtifacts(category)
     lm_tickets = stats.getLastMonthTickets(category)
 
-    averagetime = lm_tickets.get('averagesolvingtime')
-
     days = (datetime.utcnow() - stats.start_date).days
     if days >= 30:
         pmartifacts = dict(

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/forgeuserstats/main.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/main.py b/ForgeUserStats/forgeuserstats/main.py
index 44e606b..eb25140 100644
--- a/ForgeUserStats/forgeuserstats/main.py
+++ b/ForgeUserStats/forgeuserstats/main.py
@@ -18,21 +18,16 @@
 #-*- python -*-
 import logging
 from pylons import tmpl_context as c
-import formencode
-from formencode import validators
-from webob import exc
 from datetime import datetime
 
 from allura.app import Application, SitemapEntry
 from allura.lib import helpers as h
-from allura.lib.security import has_access
 from allura import model as M
 from allura.eventslistener import EventsListener
 from model.stats import UserStats
 from controllers.userstats import ForgeUserStatsController
 
 from forgeuserstats import version
-from forgeuserstats.controllers.userstats import ForgeUserStatsController
 
 from ming.orm import session
 
@@ -55,7 +50,7 @@ class UserStatsListener(EventsListener):
         stats.addModifiedArtifact(art_type, art_datetime, project)
 
     def newUser(self, user):
-        stats = UserStats.create(user)
+        UserStats.create(user)
 
     def ticketEvent(self, event_type, ticket, project, user):
         if user is None:

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/forgeuserstats/model/stats.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/model/stats.py b/ForgeUserStats/forgeuserstats/model/stats.py
index 03d6e83..2da4618 100644
--- a/ForgeUserStats/forgeuserstats/model/stats.py
+++ b/ForgeUserStats/forgeuserstats/model/stats.py
@@ -18,7 +18,7 @@
 from ming.orm import FieldProperty
 from ming import schema as S
 from datetime import datetime, timedelta
-from ming.orm import session, Mapper
+from ming.orm import Mapper
 from pylons import request
 
 from allura.lib import plugin

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/forgeuserstats/tests/test_model.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/tests/test_model.py b/ForgeUserStats/forgeuserstats/tests/test_model.py
index aef4db7..08a38d0 100644
--- a/ForgeUserStats/forgeuserstats/tests/test_model.py
+++ b/ForgeUserStats/forgeuserstats/tests/test_model.py
@@ -41,8 +41,6 @@ with_git = td.with_tool(test_project_with_repo, 'Git',
 class TestUserStats(unittest.TestCase):
 
     def setUp(self):
-        from allura.model import User
-
         setup_basic_test()
         setup_global_objects()
         self.user = User.by_username('test-user-2')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/forgeuserstats/tests/test_stats.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/tests/test_stats.py b/ForgeUserStats/forgeuserstats/tests/test_stats.py
index 20fbc3b..01b2ae2 100644
--- a/ForgeUserStats/forgeuserstats/tests/test_stats.py
+++ b/ForgeUserStats/forgeuserstats/tests/test_stats.py
@@ -18,7 +18,6 @@
 import pkg_resources
 import unittest
 
-from pylons import app_globals as g
 from pylons import tmpl_context as c
 
 from alluratest.controller import TestController, setup_basic_test, setup_global_objects
@@ -27,7 +26,6 @@ from allura.lib import helpers as h
 from allura.model import User
 from allura import model as M
 
-from forgewiki import model as WM
 from forgetracker import model as TM
 
 
@@ -48,7 +46,7 @@ class TestStats(TestController):
     def test_login(self):
         user = User.by_username('test-user')
         init_logins = user.stats.tot_logins_count
-        r = self.app.post('/auth/do_login', params=dict(
+        self.app.post('/auth/do_login', params=dict(
             username=user.username, password='foo'))
 
         assert user.stats.tot_logins_count == 1 + init_logins
@@ -102,7 +100,7 @@ class TestStats(TestController):
         initial_tickets_artifacts = c.user.stats.getArtifacts(
             art_type="Ticket")
 
-        r = self.app.post('/tickets/save_ticket',
+        self.app.post('/tickets/save_ticket',
                           params={'ticket_form.summary': 'test',
                                   'ticket_form.assigned_to': str(c.user.username)},
                           extra_environ=dict(username=str(c.user.username)))
@@ -120,7 +118,7 @@ class TestStats(TestController):
         assert tickets_artifacts[
             'modified'] == initial_tickets_artifacts['modified']
 
-        r = self.app.post('/tickets/%s/update_ticket_from_widget' % ticketnum,
+        self.app.post('/tickets/%s/update_ticket_from_widget' % ticketnum,
                           params={'ticket_form.ticket_num': ticketnum,
                                   'ticket_form.summary': 'footext3',
                                   'ticket_form.status': 'closed'},
@@ -137,7 +135,7 @@ class TestStats(TestController):
         assert tickets_artifacts[
             'modified'] == initial_tickets_artifacts['modified'] + 1
 
-        r = self.app.post('/tickets/save_ticket',
+        self.app.post('/tickets/save_ticket',
                           params={'ticket_form.summary': 'test2'},
                           extra_environ=dict(username=str(c.user.username)))
 
@@ -154,7 +152,7 @@ class TestStats(TestController):
         assert tickets_artifacts[
             'modified'] == initial_tickets_artifacts['modified'] + 1
 
-        r = self.app.post('/tickets/%s/update_ticket_from_widget' % ticketnum,
+        self.app.post('/tickets/%s/update_ticket_from_widget' % ticketnum,
                           params={'ticket_form.ticket_num': ticketnum,
                                   'ticket_form.summary': 'test2',
                                   'ticket_form.assigned_to': str(c.user.username)},
@@ -171,7 +169,7 @@ class TestStats(TestController):
         assert tickets_artifacts[
             'modified'] == initial_tickets_artifacts['modified'] + 2
 
-        r = self.app.post('/tickets/%s/update_ticket_from_widget' % ticketnum,
+        self.app.post('/tickets/%s/update_ticket_from_widget' % ticketnum,
                           params={'ticket_form.ticket_num': ticketnum,
                                   'ticket_form.summary': 'test2',
                                   'ticket_form.assigned_to': 'test-user'},
@@ -197,7 +195,7 @@ class TestGitCommit(TestController, unittest.TestCase):
 
         user = User.by_username('test-admin')
         user.set_password('testpassword')
-        addr = M.EmailAddress.upsert('rcopeland@geek.net')
+        M.EmailAddress.upsert('rcopeland@geek.net')
         user.claim_address('rcopeland@geek.net')
         self.setup_with_tools()
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/forgeuserstats/widgets/forms.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/widgets/forms.py b/ForgeUserStats/forgeuserstats/widgets/forms.py
index c7b987f..a807e8c 100644
--- a/ForgeUserStats/forgeuserstats/widgets/forms.py
+++ b/ForgeUserStats/forgeuserstats/widgets/forms.py
@@ -15,11 +15,8 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from allura.lib import validators as V
 from allura.lib.widgets.forms import ForgeForm
 
-from formencode import validators as fev
-
 import ew as ew_core
 import ew.jinja2_ew as ew
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeUserStats/setup.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/setup.py b/ForgeUserStats/setup.py
index ab57945..1ad5c3a 100644
--- a/ForgeUserStats/setup.py
+++ b/ForgeUserStats/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgeuserstats.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeWiki/forgewiki/scripts/wiki_from_trac/loaders.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/scripts/wiki_from_trac/loaders.py b/ForgeWiki/forgewiki/scripts/wiki_from_trac/loaders.py
index 45d056c..58701a3 100644
--- a/ForgeWiki/forgewiki/scripts/wiki_from_trac/loaders.py
+++ b/ForgeWiki/forgewiki/scripts/wiki_from_trac/loaders.py
@@ -16,7 +16,6 @@
 #       under the License.
 
 import json
-from optparse import OptionParser
 
 from allura.lib.import_api import AlluraImportApiClient
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeWiki/forgewiki/scripts/wiki_from_trac/wiki_from_trac.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/scripts/wiki_from_trac/wiki_from_trac.py b/ForgeWiki/forgewiki/scripts/wiki_from_trac/wiki_from_trac.py
index afc6f41..0897f00 100644
--- a/ForgeWiki/forgewiki/scripts/wiki_from_trac/wiki_from_trac.py
+++ b/ForgeWiki/forgewiki/scripts/wiki_from_trac/wiki_from_trac.py
@@ -18,7 +18,6 @@
 import argparse
 import logging
 from tempfile import NamedTemporaryFile
-from tg.decorators import cached_property
 
 from forgewiki.scripts.wiki_from_trac.extractors import WikiExporter
 from forgewiki.scripts.wiki_from_trac.loaders import load_data

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeWiki/forgewiki/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/functional/test_root.py b/ForgeWiki/forgewiki/tests/functional/test_root.py
index 5b05aad..0222e5a 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_root.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_root.py
@@ -20,7 +20,6 @@
 import os
 import StringIO
 import allura
-import json
 
 import PIL
 from nose.tools import assert_true, assert_equal, assert_in

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index 0244f73..7a90a3b 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -20,12 +20,10 @@ import json
 import logging
 from pprint import pformat
 from urllib import unquote
-from datetime import datetime
 
 # Non-stdlib imports
-from tg import expose, validate, redirect, response, flash, jsonify
+from tg import expose, validate, redirect, flash, jsonify
 from tg.decorators import with_trailing_slash, without_trailing_slash
-from tg.controllers import RestController
 from pylons import tmpl_context as c, app_globals as g
 from pylons import request
 from formencode import validators

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/ForgeWiki/setup.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/setup.py b/ForgeWiki/setup.py
index 6bc7944..041eadc 100644
--- a/ForgeWiki/setup.py
+++ b/ForgeWiki/setup.py
@@ -16,8 +16,6 @@
 #       under the License.
 
 from setuptools import setup, find_packages
-import sys
-import os
 
 from forgewiki.version import __version__
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/create-allura-sitemap.py
----------------------------------------------------------------------
diff --git a/scripts/create-allura-sitemap.py b/scripts/create-allura-sitemap.py
index 5357df7..e3f08bc 100644
--- a/scripts/create-allura-sitemap.py
+++ b/scripts/create-allura-sitemap.py
@@ -39,7 +39,7 @@ from pylons import tmpl_context as c
 
 from allura import model as M
 from allura.lib import security, utils
-from ming.orm import session, ThreadLocalORMSession
+from ming.orm import ThreadLocalORMSession
 
 MAX_SITEMAP_URLS = 50000
 BASE_URL = 'http://sourceforge.net'

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/migrations/000-fix-tracker-fields.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/000-fix-tracker-fields.py b/scripts/migrations/000-fix-tracker-fields.py
index fc9d77a..5d2b6b1 100644
--- a/scripts/migrations/000-fix-tracker-fields.py
+++ b/scripts/migrations/000-fix-tracker-fields.py
@@ -16,12 +16,11 @@
 #       under the License.
 
 import sys
-import json
 import logging
 
 from pylons import tmpl_context as c
 
-from ming.orm import session, MappedClass
+from ming.orm import session
 
 from allura import model as M
 from forgetracker import model as TM

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/scripts/migrations/008-remove-forumpost-subject.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/008-remove-forumpost-subject.py b/scripts/migrations/008-remove-forumpost-subject.py
index 892eb61..af344d5 100644
--- a/scripts/migrations/008-remove-forumpost-subject.py
+++ b/scripts/migrations/008-remove-forumpost-subject.py
@@ -22,10 +22,7 @@ Remove the subject FieldProperty from all ForumPost objects. [#2071]
 import logging
 import sys
 
-from ming.orm import state
-
 from allura import model as M
-from forgediscussion import model as DM
 
 log = logging.getLogger(__name__)
 


[3/3] git commit: Pylint cleanup

Posted by tv...@apache.org.
Pylint cleanup

Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/0ca218ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/0ca218ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/0ca218ab

Branch: refs/heads/master
Commit: 0ca218aba03f58a871c639dfb596963312e7b88a
Parents: c93733a
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Fri Jan 10 23:16:59 2014 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Fri Jan 10 23:16:59 2014 +0000

----------------------------------------------------------------------
 Allura/allura/app.py                            |  6 +-
 Allura/allura/command/base.py                   |  2 -
 Allura/allura/command/reclone_repo.py           |  1 -
 .../allura/command/set_neighborhood_features.py |  2 +-
 Allura/allura/controllers/attachments.py        |  4 +-
 Allura/allura/controllers/auth.py               |  2 -
 .../allura/controllers/basetest_project_root.py | 13 +---
 Allura/allura/controllers/discuss.py            |  7 +-
 Allura/allura/controllers/project.py            |  6 +-
 Allura/allura/controllers/repository.py         |  7 +-
 Allura/allura/controllers/rest.py               |  2 +-
 Allura/allura/controllers/root.py               | 20 ++----
 Allura/allura/controllers/search.py             |  2 +-
 Allura/allura/controllers/site_admin.py         | 12 ++--
 Allura/allura/controllers/static.py             |  2 +-
 Allura/allura/controllers/trovecategories.py    | 12 +---
 Allura/allura/ext/admin/admin_main.py           |  4 +-
 Allura/allura/ext/admin/widgets.py              |  3 +-
 Allura/allura/ext/project_home/project_main.py  |  1 -
 Allura/allura/ext/user_profile/user_main.py     |  9 +--
 Allura/allura/lib/AsciiDammit.py                |  1 -
 Allura/allura/lib/base.py                       |  2 +-
 Allura/allura/lib/custom_middleware.py          |  1 -
 Allura/allura/lib/macro.py                      |  2 +-
 Allura/allura/lib/package_path_loader.py        |  2 -
 Allura/allura/lib/plugin.py                     |  1 -
 Allura/allura/lib/repository.py                 |  3 +-
 Allura/allura/lib/spam/akismetfilter.py         |  1 -
 Allura/allura/lib/widgets/auth_widgets.py       |  2 +-
 Allura/allura/lib/widgets/discuss.py            |  2 -
 Allura/allura/lib/widgets/form_fields.py        |  2 +-
 Allura/allura/lib/widgets/forms.py              |  1 -
 Allura/allura/lib/widgets/oauth_widgets.py      |  3 -
 Allura/allura/lib/widgets/project_list.py       |  2 +-
 Allura/allura/lib/widgets/repo.py               |  2 -
 Allura/allura/lib/widgets/subscriptions.py      |  2 -
 Allura/allura/model/artifact.py                 |  8 +--
 Allura/allura/model/auth.py                     |  1 -
 Allura/allura/model/filesystem.py               |  2 -
 Allura/allura/model/neighborhood.py             |  2 +-
 Allura/allura/model/notification.py             |  2 +-
 Allura/allura/model/oauth.py                    |  3 +-
 Allura/allura/model/openid_model.py             |  3 +-
 Allura/allura/model/project.py                  |  5 +-
 Allura/allura/model/repo.py                     | 11 ++-
 Allura/allura/model/repo_refresh.py             |  2 +-
 Allura/allura/model/repository.py               | 13 +---
 Allura/allura/model/session.py                  |  1 -
 Allura/allura/model/stats.py                    | 12 +---
 Allura/allura/scripts/refresh_last_commits.py   |  4 --
 Allura/allura/scripts/refreshrepo.py            |  1 -
 Allura/allura/scripts/trac_export.py            |  1 -
 Allura/allura/tasks/export_tasks.py             |  4 +-
 Allura/allura/tasks/repo_tasks.py               |  4 +-
 Allura/allura/tests/functional/test_admin.py    |  5 --
 Allura/allura/tests/functional/test_auth.py     | 70 +++++++++-----------
 Allura/allura/tests/functional/test_discuss.py  |  2 +-
 Allura/allura/tests/functional/test_home.py     |  5 +-
 .../tests/functional/test_neighborhood.py       |  4 +-
 Allura/allura/tests/functional/test_rest.py     |  1 -
 Allura/allura/tests/functional/test_root.py     | 10 ++-
 Allura/allura/tests/functional/test_search.py   |  8 +--
 .../allura/tests/functional/test_site_admin.py  |  4 +-
 .../tests/functional/test_user_profile.py       |  5 +-
 Allura/allura/tests/model/test_auth.py          |  1 -
 Allura/allura/tests/model/test_discussion.py    | 25 +++----
 Allura/allura/tests/model/test_filesystem.py    |  2 +-
 Allura/allura/tests/model/test_neighborhood.py  |  3 -
 Allura/allura/tests/model/test_notification.py  |  4 +-
 Allura/allura/tests/model/test_project.py       |  2 +-
 Allura/allura/tests/model/test_repo.py          |  2 +-
 Allura/allura/tests/test_app.py                 |  4 --
 Allura/allura/tests/test_commands.py            |  1 -
 Allura/allura/tests/test_globals.py             |  8 +--
 Allura/allura/tests/test_helpers.py             |  6 +-
 Allura/allura/tests/test_mail_util.py           |  1 -
 Allura/allura/tests/test_plugin.py              |  2 -
 Allura/allura/tests/test_security.py            |  1 -
 Allura/allura/tests/test_tasks.py               |  2 -
 Allura/allura/tests/test_utils.py               |  3 +-
 Allura/allura/tests/tscript.py                  |  5 --
 Allura/allura/tests/unit/test_app.py            |  1 -
 .../tests/unit/test_helpers/test_set_context.py |  3 +-
 .../tests/unit/test_package_path_loader.py      |  3 +-
 Allura/allura/tests/unit/test_repo.py           |  2 +-
 Allura/allura/websetup/bootstrap.py             |  1 -
 Allura/docs/conf.py                             |  3 -
 AlluraTest/alluratest/controller.py             |  5 +-
 AlluraTest/alluratest/test_syntax.py            |  1 -
 AlluraTest/alluratest/validation.py             | 12 +---
 AlluraTest/setup.py                             |  2 -
 .../forgeactivity/tests/functional/test_root.py |  8 +--
 ForgeBlog/forgeblog/command/rssfeeds.py         |  2 -
 ForgeBlog/forgeblog/main.py                     |  8 +--
 ForgeBlog/forgeblog/tests/test_commands.py      |  2 +-
 ForgeBlog/setup.py                              |  2 -
 ForgeChat/forgechat/command.py                  |  2 +-
 ForgeChat/forgechat/main.py                     |  2 +-
 ForgeChat/setup.py                              |  2 -
 .../forgediscussion/controllers/root.py         |  4 +-
 ForgeDiscussion/forgediscussion/forum_main.py   |  4 +-
 .../tests/functional/test_forum.py              | 22 +++---
 .../tests/functional/test_import.py             |  4 +-
 .../forgediscussion/widgets/admin.py            |  2 -
 ForgeDiscussion/setup.py                        |  2 -
 ForgeGit/forgegit/git_main.py                   |  4 +-
 ForgeGit/forgegit/model/git_repo.py             | 14 +---
 ForgeGit/forgegit/tests/functional/test_auth.py |  4 +-
 .../tests/functional/test_controllers.py        |  5 +-
 .../forgegit/tests/model/test_repository.py     |  2 -
 ForgeGit/setup.py                               |  2 -
 ForgeImporters/docs/conf.py                     |  3 -
 ForgeImporters/forgeimporters/forge/tracker.py  |  2 +-
 ForgeImporters/forgeimporters/github/code.py    |  1 -
 ForgeImporters/forgeimporters/github/project.py |  1 -
 .../forgeimporters/github/tests/test_code.py    |  2 +-
 .../forgeimporters/github/tests/test_tracker.py |  2 +-
 .../forgeimporters/github/tests/test_wiki.py    |  4 +-
 ForgeImporters/forgeimporters/github/wiki.py    |  2 +-
 .../forgeimporters/google/__init__.py           |  2 -
 ForgeImporters/forgeimporters/google/project.py |  2 -
 .../forgeimporters/google/tests/test_code.py    |  4 +-
 ForgeImporters/forgeimporters/google/tracker.py |  5 +-
 .../tests/google/functional/test_tracker.py     |  4 --
 .../tests/google/test_extractor.py              |  1 -
 .../forgeimporters/tests/test_base.py           |  2 +-
 .../forgeimporters/trac/tests/test_tickets.py   |  3 +-
 ForgeLink/forgelink/link_main.py                |  5 +-
 ForgeLink/setup.py                              |  2 -
 ForgeSVN/forgesvn/controllers.py                |  2 +-
 ForgeSVN/forgesvn/model/svn.py                  |  3 +-
 .../tests/functional/test_controllers.py        |  8 +--
 .../forgesvn/tests/model/test_repository.py     |  2 -
 ForgeSVN/forgesvn/tests/test_tasks.py           |  5 +-
 ForgeSVN/setup.py                               |  2 -
 ForgeShortUrl/forgeshorturl/main.py             |  2 +-
 ForgeTracker/forgetracker/model/ticket.py       |  1 -
 .../forgetracker/tests/functional/test_rest.py  |  2 +-
 .../tests/unit/test_globals_model.py            |  1 -
 .../tests/unit/test_milestone_controller.py     |  6 +-
 .../tests/unit/test_root_controller.py          |  2 +-
 .../unit/test_ticket_custom_fields_form.py      |  1 -
 .../forgetracker/tests/unit/test_ticket_form.py |  2 -
 .../tests/unit/test_ticket_model.py             |  7 +-
 ForgeTracker/forgetracker/tracker_main.py       |  7 +-
 .../forgetracker/widgets/admin_custom_fields.py |  4 --
 .../forgetracker/widgets/ticket_search.py       |  4 --
 ForgeTracker/setup.py                           |  2 -
 .../forgeuserstats/controllers/userstats.py     |  4 --
 ForgeUserStats/forgeuserstats/main.py           |  7 +-
 ForgeUserStats/forgeuserstats/model/stats.py    |  2 +-
 .../forgeuserstats/tests/test_model.py          |  2 -
 .../forgeuserstats/tests/test_stats.py          | 16 ++---
 ForgeUserStats/forgeuserstats/widgets/forms.py  |  3 -
 ForgeUserStats/setup.py                         |  2 -
 .../forgewiki/scripts/wiki_from_trac/loaders.py |  1 -
 .../scripts/wiki_from_trac/wiki_from_trac.py    |  1 -
 .../forgewiki/tests/functional/test_root.py     |  1 -
 ForgeWiki/forgewiki/wiki_main.py                |  4 +-
 ForgeWiki/setup.py                              |  2 -
 scripts/create-allura-sitemap.py                |  2 +-
 scripts/migrations/000-fix-tracker-fields.py    |  3 +-
 .../migrations/008-remove-forumpost-subject.py  |  3 -
 .../015-add-neighborhood_id-to-blog-posts.py    |  2 -
 .../024-migrate-custom-profile-text.py          |  1 -
 scripts/migrations/025-add-is-nbhd-project.py   |  5 --
 .../027-change-ticket-write-permissions.py      |  6 --
 scripts/perf/call_count.py                      |  1 -
 scripts/perf/md_perf.py                         |  4 --
 scripts/rethumb.py                              |  7 +-
 scripts/wiki-export.py                          |  2 -
 scripts/wiki-post.py                            |  5 +-
 172 files changed, 208 insertions(+), 529 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/app.py b/Allura/allura/app.py
index 29acf12..abefd3c 100644
--- a/Allura/allura/app.py
+++ b/Allura/allura/app.py
@@ -30,14 +30,14 @@ from bson import ObjectId
 from bson.errors import InvalidId
 from formencode import validators as V
 
-from ming.orm import session, state
+from ming.orm import session
 from ming.utils import LazyProperty
 
 from allura.lib import helpers as h
-from allura.lib.security import require, has_access, require_access
+from allura.lib.security import has_access, require_access
 from allura import model
 from allura.controllers import BaseController
-from allura.lib.decorators import require_post, event_handler, memoize
+from allura.lib.decorators import require_post, memoize
 from allura.lib.utils import permanent_redirect, ConfigProxy
 
 log = logging.getLogger(__name__)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/command/base.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/base.py b/Allura/allura/command/base.py
index 427362c..7fa566a 100644
--- a/Allura/allura/command/base.py
+++ b/Allura/allura/command/base.py
@@ -16,10 +16,8 @@
 #       under the License.
 
 import os
-import sys
 import logging
 import shlex
-from multiprocessing import Process
 
 import pylons
 from paste.script import command

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/command/reclone_repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/reclone_repo.py b/Allura/allura/command/reclone_repo.py
index 7cc06a5..d401b0b 100644
--- a/Allura/allura/command/reclone_repo.py
+++ b/Allura/allura/command/reclone_repo.py
@@ -20,7 +20,6 @@ import warnings
 from pylons import tmpl_context as c
 
 from allura import model as M
-from allura.tasks import repo_tasks
 
 from . import base
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/command/set_neighborhood_features.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/set_neighborhood_features.py b/Allura/allura/command/set_neighborhood_features.py
index c4de43c..36ba22b 100644
--- a/Allura/allura/command/set_neighborhood_features.py
+++ b/Allura/allura/command/set_neighborhood_features.py
@@ -21,7 +21,7 @@ from allura.command import base
 
 from bson import ObjectId
 from allura import model as M
-from allura.lib import plugin, exceptions
+from allura.lib import exceptions
 from ming.orm import session
 
 # Example usage:

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/attachments.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/attachments.py b/Allura/allura/controllers/attachments.py
index fc0fbbc..4ab3b92 100644
--- a/Allura/allura/controllers/attachments.py
+++ b/Allura/allura/controllers/attachments.py
@@ -18,10 +18,10 @@
 from urllib import unquote
 from webob import exc
 
-from tg import expose, request, response, redirect
+from tg import expose, request, redirect
 from ming.utils import LazyProperty
 
-from allura.lib.security import require, has_access, require_access
+from allura.lib.security import require_access
 from .base import BaseController
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index 587d151..8e08e13 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -30,7 +30,6 @@ from webob import exc as wexc
 
 import allura.tasks.repo_tasks
 from allura import model as M
-from allura.model.project import TroveCategory
 from allura.lib import validators as V
 from allura.lib.oid_helper import verify_oid, process_oid
 from allura.lib.security import require_authenticated, has_access
@@ -45,7 +44,6 @@ from allura.lib.widgets import (
     LoginForm,
     ForgottenPasswordForm)
 from allura.lib.widgets import forms
-from allura.lib import exceptions as exc
 from allura.controllers import BaseController
 
 log = logging.getLogger(__name__)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/basetest_project_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/basetest_project_root.py b/Allura/allura/controllers/basetest_project_root.py
index 91cf690..638d28d 100644
--- a/Allura/allura/controllers/basetest_project_root.py
+++ b/Allura/allura/controllers/basetest_project_root.py
@@ -18,20 +18,14 @@
 #       under the License.
 
 """Main Controller"""
-import os
 import logging
 from urllib import unquote
 
-import pkg_resources
 from pylons import tmpl_context as c
-from pylons import request, response
+from pylons import request
 from webob import exc
 from tg import expose
-from tg.decorators import without_trailing_slash
 
-import ming.orm.ormsession
-
-import allura
 from allura.lib.base import WsgiDispatchController
 from allura.lib.security import require, require_authenticated, require_access, has_access
 from allura.lib import helpers as h
@@ -39,10 +33,6 @@ from allura.lib import plugin
 from allura import model as M
 from .root import RootController
 from .project import ProjectController
-from .auth import AuthController
-from .static import NewForgeController
-from .search import SearchController
-from .error import ErrorController
 from .rest import RestController
 
 __all__ = ['RootController']
@@ -91,7 +81,6 @@ class BasetestProjectRootController(WsgiDispatchController, ProjectController):
         c.memoize_cache = {}
         count = 20
         while c.project is None:
-            import sys
             import time
             time.sleep(0.5)
             log.warning('Project "test" not found, retrying...')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index 2eef299..88ec552 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -19,10 +19,8 @@ from urllib import unquote
 from datetime import datetime
 import logging
 
-from tg import expose, redirect, validate, request, response, flash
-from tg.decorators import before_validate, with_trailing_slash, without_trailing_slash
+from tg import expose, redirect, validate, request, flash
 from pylons import tmpl_context as c, app_globals as g
-from formencode import validators
 from webob import exc
 
 from ming.base import Object
@@ -33,8 +31,7 @@ from base import BaseController
 from allura.lib import utils
 from allura.lib import helpers as h
 from allura.lib.decorators import require_post
-from allura.lib.security import require, has_access, require_access
-from allura.lib.helpers import DateTimeConverter
+from allura.lib.security import require_access
 
 from allura.lib.widgets import discuss as DW
 from .attachments import AttachmentsController, AttachmentController

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index cdbba4c..b231205 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -19,16 +19,14 @@ import re
 import logging
 from datetime import datetime, timedelta
 from urllib import unquote
-from itertools import chain, islice
 
 from bson import ObjectId
-from tg import expose, flash, redirect, validate, request, response, config
-from tg.decorators import with_trailing_slash, without_trailing_slash, override_template
+from tg import expose, flash, redirect, validate, request, config
+from tg.decorators import with_trailing_slash, without_trailing_slash
 from pylons import tmpl_context as c, app_globals as g
 from paste.deploy.converters import asbool
 from webob import exc
 import pymongo
-from formencode import validators
 from formencode.api import Invalid
 
 from ming.utils import LazyProperty

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 05e7202..e571734 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -16,11 +16,9 @@
 #       under the License.
 
 import os
-import json
 import logging
-import re
 import difflib
-from urllib import quote, unquote, quote_plus
+from urllib import quote, unquote
 from collections import defaultdict
 from itertools import islice
 
@@ -28,7 +26,7 @@ from pylons import tmpl_context as c, app_globals as g
 from pylons import request, response
 from webob import exc
 import tg
-from tg import redirect, expose, flash, url, validate
+from tg import redirect, expose, flash, validate
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from tg import session as web_session
 from formencode import validators
@@ -53,7 +51,6 @@ from allura.controllers.base import DispatchIndex
 from allura.controllers.feed import FeedController, FeedArgs
 from allura.lib.diff import HtmlSideBySideDiff
 from paste.deploy.converters import asbool
-from allura.app import SitemapEntry
 from .base import BaseController
 
 log = logging.getLogger(__name__)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/rest.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/rest.py b/Allura/allura/controllers/rest.py
index cab7084..6eb12a8 100644
--- a/Allura/allura/controllers/rest.py
+++ b/Allura/allura/controllers/rest.py
@@ -264,7 +264,7 @@ class NeighborhoodRestController(object):
         try:
             provider.shortname_validator.to_python(
                 name, check_allowed=False, neighborhood=self._neighborhood)
-        except Invalid as e:
+        except Invalid:
             raise exc.HTTPNotFound, name
         name = self._neighborhood.shortname_prefix + name
         project = M.Project.query.get(

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/root.py b/Allura/allura/controllers/root.py
index 0d7f96b..198493c 100644
--- a/Allura/allura/controllers/root.py
+++ b/Allura/allura/controllers/root.py
@@ -19,25 +19,14 @@
 
 """Main Controller"""
 import logging
-import string
-import os
-from datetime import datetime
-from collections import defaultdict
-
-import pkg_resources
-from tg import expose, flash, redirect, session, config, response, request, config
-from tg.decorators import with_trailing_slash, without_trailing_slash
-from tg.flash import TGFlash
-from pylons import tmpl_context as c, app_globals as g
-from pylons import cache
 
-import ew
-import ming
+from tg import expose, request, config
+from tg.decorators import with_trailing_slash
+from tg.flash import TGFlash
+from pylons import tmpl_context as c
 
-import allura
 from allura.app import SitemapEntry
 from allura.lib.base import WsgiDispatchController
-from allura.lib import helpers as h
 from allura.lib import plugin
 from allura.controllers.error import ErrorController
 from allura import model as M
@@ -47,7 +36,6 @@ from .trovecategories import TroveCategoryController
 from .search import SearchController, ProjectBrowseController
 from .static import NewForgeController
 from .site_admin import SiteAdminController
-from .project import NeighborhoodController, HostNeighborhoodController
 from .rest import RestController
 
 __all__ = ['RootController']

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/search.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/search.py b/Allura/allura/controllers/search.py
index 7afeb4d..eaf8446 100644
--- a/Allura/allura/controllers/search.py
+++ b/Allura/allura/controllers/search.py
@@ -15,7 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from tg import expose, redirect, flash, config, validate, request
+from tg import expose, validate, request
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from formencode import validators as V
 from pylons import tmpl_context as c

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index b61da6c..e6e374c 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -16,10 +16,8 @@
 #       under the License.
 
 import re
-import json
 import logging
 from datetime import datetime, timedelta
-from collections import defaultdict
 
 from tg import expose, validate, flash, config, redirect
 from tg.decorators import with_trailing_slash, without_trailing_slash
@@ -27,7 +25,7 @@ from ming.orm import session
 import pymongo
 import bson
 import tg
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 from pylons import request
 from formencode import validators, Invalid
 from webob.exc import HTTPNotFound
@@ -284,11 +282,11 @@ class TaskManagerController(object):
         now = datetime.utcnow()
         try:
             page_num = int(page_num)
-        except ValueError as e:
+        except ValueError:
             page_num = 1
         try:
             minutes = int(minutes)
-        except ValueError as e:
+        except ValueError:
             minutes = 1
         start_dt = now - timedelta(minutes=(page_num - 1) * minutes)
         end_dt = now - timedelta(minutes=page_num * minutes)
@@ -327,7 +325,7 @@ class TaskManagerController(object):
     def view(self, task_id):
         try:
             task = M.monq_model.MonQTask.query.get(_id=bson.ObjectId(task_id))
-        except bson.errors.InvalidId as e:
+        except bson.errors.InvalidId:
             task = None
         if task:
             task.project = M.Project.query.get(_id=task.context.project_id)
@@ -364,7 +362,7 @@ class TaskManagerController(object):
     def resubmit(self, task_id):
         try:
             task = M.monq_model.MonQTask.query.get(_id=bson.ObjectId(task_id))
-        except bson.errors.InvalidId as e:
+        except bson.errors.InvalidId:
             task = None
         if task is None:
             raise HTTPNotFound()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/static.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/static.py b/Allura/allura/controllers/static.py
index 100b3a5..60d77c1 100644
--- a/Allura/allura/controllers/static.py
+++ b/Allura/allura/controllers/static.py
@@ -21,7 +21,7 @@ from tg import expose
 from tg.decorators import without_trailing_slash
 from webob import exc
 
-from pylons import tmpl_context as c, app_globals as g
+from pylons import app_globals as g
 from allura.lib import helpers as h
 from allura.lib import utils
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/controllers/trovecategories.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/trovecategories.py b/Allura/allura/controllers/trovecategories.py
index 21601db..6c57f33 100644
--- a/Allura/allura/controllers/trovecategories.py
+++ b/Allura/allura/controllers/trovecategories.py
@@ -15,16 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import logging
-import string
-import os
-from urllib import urlencode
-
-import bson
-from tg import expose, session, flash, redirect, validate, config
-from tg.decorators import with_trailing_slash
-from pylons import tmpl_context as c, app_globals as g
-from pylons import request, response
+from tg import expose, flash, redirect, validate
 from string import digits, lowercase
 
 from allura.lib.security import require_authenticated
@@ -32,7 +23,6 @@ from allura import model as M
 from allura.lib.decorators import require_post
 from allura.controllers import BaseController
 from allura.lib.widgets import forms
-from allura.model import TroveCategory
 
 
 class F(object):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/ext/admin/admin_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index 607c151..34641b9 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -16,11 +16,9 @@
 #       under the License.
 
 import logging
-from collections import defaultdict
 from datetime import datetime
 from urlparse import urlparse
 import json
-import os
 from operator import itemgetter
 
 import pkg_resources
@@ -286,7 +284,7 @@ class ProjectAdminController(BaseController):
                 raise ValueError('Invalid threshold')
             c.project.set_tool_data(
                 'allura', grouping_threshold=grouping_threshold)
-        except ValueError as e:
+        except ValueError:
             flash('Invalid threshold', 'error')
         redirect('tools')
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/ext/admin/widgets.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/widgets.py b/Allura/allura/ext/admin/widgets.py
index 7457d28..805fa41 100644
--- a/Allura/allura/ext/admin/widgets.py
+++ b/Allura/allura/ext/admin/widgets.py
@@ -15,7 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 
 import ew as ew_core
 from ew import jinja2_ew as ew
@@ -24,7 +24,6 @@ from formencode import validators as fev
 
 from allura import model as M
 from allura.lib import validators as V
-from allura.lib import security
 from allura.lib.widgets import forms as ff
 from allura.lib.widgets import form_fields as ffw
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/ext/project_home/project_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/project_home/project_main.py b/Allura/allura/ext/project_home/project_main.py
index 378ca0a..a02b807 100644
--- a/Allura/allura/ext/project_home/project_main.py
+++ b/Allura/allura/ext/project_home/project_main.py
@@ -64,7 +64,6 @@ class ProjectHomeApp(Application):
     @property
     @h.exceptionless([], log)
     def sitemap(self):
-        menu_id = 'Home'
         return [
             SitemapEntry('Home', '..')]
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/ext/user_profile/user_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/user_profile/user_main.py b/Allura/allura/ext/user_profile/user_main.py
index a9ab929..9198696 100644
--- a/Allura/allura/ext/user_profile/user_main.py
+++ b/Allura/allura/ext/user_profile/user_main.py
@@ -16,23 +16,20 @@
 #       under the License.
 
 import logging
-from pprint import pformat
 
 import pkg_resources
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 from pylons import request
 from formencode import validators
-from tg import expose, redirect, validate, response, config, flash
+from tg import expose, redirect, validate, flash
 from webob import exc
-from datetime import timedelta, datetime
 
 from allura import version
 from allura.app import Application, SitemapEntry
 from allura.lib import helpers as h
-from allura.lib.helpers import DateTimeConverter
 from allura.lib.security import require_access
 from allura.lib.plugin import AuthenticationProvider
-from allura.model import User, Feed, ACE, ProjectRole
+from allura.model import User, ACE, ProjectRole
 from allura.controllers import BaseController
 from allura.controllers.feed import FeedArgs, FeedController
 from allura.lib.decorators import require_post

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/AsciiDammit.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/AsciiDammit.py b/Allura/allura/lib/AsciiDammit.py
index e4ea156..d86c26d 100644
--- a/Allura/allura/lib/AsciiDammit.py
+++ b/Allura/allura/lib/AsciiDammit.py
@@ -23,7 +23,6 @@ __date__ = "$Date: 2009/04/28 10:45:03 $"
 __license__ = "Public domain"
 
 import re
-import string
 import types
 
 CHARS = {'\x80': ('EUR', 'euro'),

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/base.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/base.py b/Allura/allura/lib/base.py
index bac6a2b..b0c9050 100644
--- a/Allura/allura/lib/base.py
+++ b/Allura/allura/lib/base.py
@@ -20,7 +20,7 @@
 """The base Controller API."""
 from webob import exc
 import pylons
-from tg import TGController, config
+from tg import TGController
 
 __all__ = ['WsgiDispatchController']
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/custom_middleware.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/custom_middleware.py b/Allura/allura/lib/custom_middleware.py
index 9cb20da..3f65e6c 100644
--- a/Allura/allura/lib/custom_middleware.py
+++ b/Allura/allura/lib/custom_middleware.py
@@ -18,7 +18,6 @@
 import os
 import re
 import logging
-from contextlib import contextmanager
 
 import tg
 import pkg_resources

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/macro.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index 3f827ed..d22b431 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -415,5 +415,5 @@ def embed(url=None):
     consumer.addEndpoint(endpoint)
     try:
         return jinja2.Markup('<div class="grid-20">%s</div>' % consumer.embed(url)['html'])
-    except oembed.OEmbedNoEndpoint as e:
+    except oembed.OEmbedNoEndpoint:
         return '[[embed url=%s]]' % url

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/package_path_loader.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/package_path_loader.py b/Allura/allura/lib/package_path_loader.py
index 9e6548a..fa5f71b 100644
--- a/Allura/allura/lib/package_path_loader.py
+++ b/Allura/allura/lib/package_path_loader.py
@@ -262,8 +262,6 @@ class PackagePathLoader(jinja2.BaseLoader):
         - path/to/template.html
         - module:path/to/template.html
         '''
-        src = None
-
         # look in all of the customized search locations...
         try:
             parts = [self.override_root] + template.split(':')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 809d895..4617303 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -50,7 +50,6 @@ from ming.orm import ThreadLocalORMSession
 from allura.lib import helpers as h
 from allura.lib import security
 from allura.lib import exceptions as forge_exc
-from paste.deploy.converters import asbool
 
 log = logging.getLogger(__name__)
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/repository.py b/Allura/allura/lib/repository.py
index 6e5ef42..6e073d9 100644
--- a/Allura/allura/lib/repository.py
+++ b/Allura/allura/lib/repository.py
@@ -16,12 +16,11 @@
 #       under the License.
 
 import logging
-import shutil
 from urllib import quote
 
 from pylons import tmpl_context as c, app_globals as g
 from pylons import request
-from tg import expose, redirect, url
+from tg import expose, redirect
 from tg.decorators import with_trailing_slash, without_trailing_slash
 from bson import ObjectId
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/spam/akismetfilter.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/spam/akismetfilter.py b/Allura/allura/lib/spam/akismetfilter.py
index 48f24cc..775aecc 100644
--- a/Allura/allura/lib/spam/akismetfilter.py
+++ b/Allura/allura/lib/spam/akismetfilter.py
@@ -61,7 +61,6 @@ class AkismetSpamFilter(SpamFilter):
         kw['comment_type'] = content_type
         if artifact:
             kw['permalink'] = artifact.url()
-            log_msg = artifact.url()
         user = user or c.user
         if user:
             kw['comment_author'] = user.display_name or user.username

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/auth_widgets.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/auth_widgets.py b/Allura/allura/lib/widgets/auth_widgets.py
index f6c1a28..f97c976 100644
--- a/Allura/allura/lib/widgets/auth_widgets.py
+++ b/Allura/allura/lib/widgets/auth_widgets.py
@@ -20,7 +20,7 @@ import ew.jinja2_ew as ew
 from ew.core import validator
 
 from pylons import request
-from formencode import Invalid, validators
+from formencode import Invalid
 from webob import exc
 
 from .forms import ForgeForm

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 30dc128..70a1d15 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -15,14 +15,12 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from pylons import tmpl_context as c, app_globals as g
 from formencode import validators as fev
 
 import ew as ew_core
 import ew.jinja2_ew as ew
 
 from allura.lib import validators as V
-from allura.lib import helpers as h
 from allura.lib.widgets import form_fields as ffw
 from allura.lib.widgets import forms as ff
 from allura import model as M

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/form_fields.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/form_fields.py b/Allura/allura/lib/widgets/form_fields.py
index e8d9a27..2249372 100644
--- a/Allura/allura/lib/widgets/form_fields.py
+++ b/Allura/allura/lib/widgets/form_fields.py
@@ -15,7 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 from tg import request, url
 import json
 import logging

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/forms.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/forms.py b/Allura/allura/lib/widgets/forms.py
index de87746..66b176a 100644
--- a/Allura/allura/lib/widgets/forms.py
+++ b/Allura/allura/lib/widgets/forms.py
@@ -32,7 +32,6 @@ from allura.lib import helpers as h
 from allura.lib import plugin
 from allura.lib.widgets import form_fields as ffw
 from allura.lib import exceptions as forge_exc
-from allura.lib.utils import LazyProperty
 from allura import model as M
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/oauth_widgets.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/oauth_widgets.py b/Allura/allura/lib/widgets/oauth_widgets.py
index 6426beb..f04fed8 100644
--- a/Allura/allura/lib/widgets/oauth_widgets.py
+++ b/Allura/allura/lib/widgets/oauth_widgets.py
@@ -15,13 +15,10 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from pylons import tmpl_context as c
-
 import ew as ew_core
 import ew.jinja2_ew as ew
 
 from allura.lib import validators as V
-from allura import model as M
 
 from .form_fields import AutoResizeTextarea
 from .forms import ForgeForm

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/project_list.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/project_list.py b/Allura/allura/lib/widgets/project_list.py
index 343c1ba..af209cb 100644
--- a/Allura/allura/lib/widgets/project_list.py
+++ b/Allura/allura/lib/widgets/project_list.py
@@ -18,7 +18,7 @@
 import ew as ew_core
 import ew.jinja2_ew as ew
 
-from pylons import tmpl_context as c, app_globals as g
+from pylons import tmpl_context as c
 
 from allura import model as M
 from allura.lib.security import Credentials

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/repo.py b/Allura/allura/lib/widgets/repo.py
index cda4ebf..4017952 100644
--- a/Allura/allura/lib/widgets/repo.py
+++ b/Allura/allura/lib/widgets/repo.py
@@ -15,8 +15,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import pylons
-
 import ew as ew_core
 import ew.jinja2_ew as ew
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/lib/widgets/subscriptions.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/subscriptions.py b/Allura/allura/lib/widgets/subscriptions.py
index 687178a..dec1274 100644
--- a/Allura/allura/lib/widgets/subscriptions.py
+++ b/Allura/allura/lib/widgets/subscriptions.py
@@ -15,8 +15,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from pylons import tmpl_context as c
-
 import ew as ew_core
 import ew.jinja2_ew as ew
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/artifact.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index faeb1cb..8a01c42 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -16,11 +16,9 @@
 #       under the License.
 
 import logging
-import cPickle as pickle
 from collections import defaultdict
 from datetime import datetime
 
-import bson
 import pymongo
 from pylons import tmpl_context as c, app_globals as g
 from pylons import request
@@ -33,11 +31,11 @@ from webhelpers import feedgenerator as FG
 
 from allura.lib import helpers as h
 from allura.lib import security
-from .session import main_doc_session, main_orm_session
-from .session import project_doc_session, project_orm_session
+from .session import main_orm_session
+from .session import project_orm_session
 from .session import artifact_orm_session
 from .index import ArtifactReference
-from .types import ACL, ACE, MarkdownCache
+from .types import ACL, MarkdownCache
 from .project import AppConfig
 from .notification import MailFooter
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index c2e9097..bac0568 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -531,7 +531,6 @@ class User(MappedClass, ActivityNode, ActivityObject):
             convtime2 = loctime2.astimezone(chosentimezone)
 
             dif_days_start = convtime1.weekday() - today.weekday()
-            dif_days_end = convtime2.weekday() - today.weekday()
             index = (week_day.index(t['week_day']) + dif_days_start) % 7
             week_day_start = week_day[index]
             week_day_end = week_day[index]

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/filesystem.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/filesystem.py b/Allura/allura/model/filesystem.py
index 54b7a18..af1dea1 100644
--- a/Allura/allura/model/filesystem.py
+++ b/Allura/allura/model/filesystem.py
@@ -19,10 +19,8 @@ import os
 from cStringIO import StringIO
 import logging
 
-import pylons
 import PIL
 from gridfs import GridFS
-from tg import config
 
 from ming import schema
 from ming.orm import session, FieldProperty

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/neighborhood.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/neighborhood.py b/Allura/allura/model/neighborhood.py
index e2137e2..7b526d2 100644
--- a/Allura/allura/model/neighborhood.py
+++ b/Allura/allura/model/neighborhood.py
@@ -21,7 +21,7 @@ import logging
 from collections import OrderedDict
 
 from ming import schema as S
-from ming.orm import FieldProperty, RelationProperty, ForeignIdProperty
+from ming.orm import FieldProperty, RelationProperty
 from ming.orm.declarative import MappedClass
 from ming.utils import LazyProperty
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/notification.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py
index 10689f1..3bb81fc 100644
--- a/Allura/allura/model/notification.py
+++ b/Allura/allura/model/notification.py
@@ -52,7 +52,7 @@ from allura.lib import security
 from allura.lib.utils import take_while_true
 import allura.tasks.mail_tasks
 
-from .session import main_orm_session, project_orm_session
+from .session import main_orm_session
 from .auth import User
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/oauth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/oauth.py b/Allura/allura/model/oauth.py
index 670847a..fe21cc1 100644
--- a/Allura/allura/model/oauth.py
+++ b/Allura/allura/model/oauth.py
@@ -25,8 +25,7 @@ from ming.orm import FieldProperty, RelationProperty, ForeignIdProperty
 from ming.orm.declarative import MappedClass
 
 from allura.lib import helpers as h
-from .session import main_doc_session, main_orm_session
-from .session import project_doc_session, project_orm_session
+from .session import main_orm_session
 from .types import MarkdownCache
 
 log = logging.getLogger(__name__)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/openid_model.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/openid_model.py b/Allura/allura/model/openid_model.py
index adcf179..3a51954 100644
--- a/Allura/allura/model/openid_model.py
+++ b/Allura/allura/model/openid_model.py
@@ -24,8 +24,7 @@ from openid.association import Association
 
 from ming.orm import FieldProperty
 from ming.orm.declarative import MappedClass
-from .session import main_doc_session, main_orm_session
-from .session import project_doc_session, project_orm_session
+from .session import main_orm_session
 
 
 class OpenIdAssociation(MappedClass):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/project.py b/Allura/allura/model/project.py
index 1a52092..6d40cd8 100644
--- a/Allura/allura/model/project.py
+++ b/Allura/allura/model/project.py
@@ -15,7 +15,6 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import os
 import logging
 from collections import Counter, OrderedDict
 from datetime import datetime
@@ -45,7 +44,7 @@ from allura.lib.security import has_access
 from allura.model.types import MarkdownCache
 
 from .session import main_orm_session
-from .session import project_orm_session, project_doc_session
+from .session import project_orm_session
 from .neighborhood import Neighborhood
 from .auth import ProjectRole, User
 from .timeline import ActivityNode, ActivityObject
@@ -688,7 +687,7 @@ class Project(MappedClass, ActivityNode, ActivityObject):
         try:
             provider.shortname_validator.to_python(
                 name, check_allowed=False, neighborhood=self.neighborhood)
-        except exceptions.Invalid as e:
+        except exceptions.Invalid:
             raise exceptions.ToolError, 'Mount point "%s" is invalid' % name
         return provider.register_subproject(self, name, user or c.user, install_apps, project_name=project_name)
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repo.py b/Allura/allura/model/repo.py
index 9396151..a137e7a 100644
--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -17,7 +17,6 @@
 
 import os
 import re
-import sys
 import logging
 from hashlib import sha1
 from itertools import chain
@@ -40,8 +39,8 @@ from allura.lib import helpers as h
 from allura.lib.security import has_access
 
 from .auth import User
-from .project import AppConfig, Project
-from .session import main_doc_session, project_doc_session
+from .project import AppConfig
+from .session import main_doc_session
 from .session import repository_orm_session
 from .timeline import ActivityObject
 
@@ -255,7 +254,7 @@ class Commit(RepoObject, ActivityObject):
                 return None
             ci.set_context(self.repo)
             return ci
-        except IndexError as e:
+        except IndexError:
             return None
 
     def climb_commit_tree(self, predicate=None):
@@ -716,12 +715,12 @@ class Blob(object):
         if prev is not None:
             try:
                 prev = prev.get_path(path, create=False)
-            except KeyError as e:
+            except KeyError:
                 prev = None
         if next is not None:
             try:
                 next = next.get_path(path, create=False)
-            except KeyError as e:
+            except KeyError:
                 next = None
         return dict(
             prev=prev,

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/repo_refresh.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repo_refresh.py b/Allura/allura/model/repo_refresh.py
index 732d6a5..c34739a 100644
--- a/Allura/allura/model/repo_refresh.py
+++ b/Allura/allura/model/repo_refresh.py
@@ -32,7 +32,7 @@ from ming.orm import mapper, session, ThreadLocalORMSession
 from allura.lib import utils
 from allura.lib import helpers as h
 from allura.model.repo import CommitDoc, TreeDoc, TreesDoc, DiffInfoDoc
-from allura.model.repo import LastCommitDoc, CommitRunDoc
+from allura.model.repo import CommitRunDoc
 from allura.model.repo import Commit, Tree, LastCommit, ModelCache
 from allura.model.index import ArtifactReferenceDoc, ShortlinkDoc
 from allura.model.auth import User

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index aaa97cc..a328b3e 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -15,28 +15,23 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import sys
 import os
 import stat
-import errno
 import mimetypes
 import logging
 import string
 import re
 from subprocess import Popen, PIPE
-from difflib import SequenceMatcher
 from hashlib import sha1
 from datetime import datetime
 from time import time
 from collections import defaultdict
-from itertools import izip
 from urlparse import urljoin
-from urllib import quote
 from threading import Thread
 from Queue import Queue
 
 import tg
-from paste.deploy.converters import asbool, asint
+from paste.deploy.converters import asint
 from pylons import tmpl_context as c
 from pylons import app_globals as g
 import pymongo
@@ -45,17 +40,13 @@ import pymongo.errors
 from ming import schema as S
 from ming.utils import LazyProperty
 from ming.orm import FieldProperty, session, Mapper
-from ming.orm.declarative import MappedClass
 
 from allura.lib import helpers as h
 from allura.lib import utils
 
-from .artifact import Artifact, VersionedArtifact, Feed
+from .artifact import Artifact, VersionedArtifact
 from .auth import User
-from .session import repository_orm_session, project_orm_session
-from .notification import Notification
 from .repo_refresh import refresh_repo, unknown_commit_ids as unknown_commit_ids_repo
-from .repo import CommitRunDoc, QSIZE
 from .timeline import ActivityObject
 from .monq_model import MonQTask
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/session.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/session.py b/Allura/allura/model/session.py
index 92f339d..cdd3500 100644
--- a/Allura/allura/model/session.py
+++ b/Allura/allura/model/session.py
@@ -83,7 +83,6 @@ class ArtifactSessionExtension(SessionExtension):
 
     def update_index(self, objects_deleted, arefs):
         # Post delete and add indexing operations
-        from allura.tasks import index_tasks
         if objects_deleted:
             index_tasks.del_artifacts.post(
                 [obj.index_id() for obj in objects_deleted])

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/model/stats.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/stats.py b/Allura/allura/model/stats.py
index 03423e5..cbb71dd 100644
--- a/Allura/allura/model/stats.py
+++ b/Allura/allura/model/stats.py
@@ -16,23 +16,17 @@
 #       under the License.
 
 from datetime import datetime
-import pymongo
-from pylons import tmpl_context as c, app_globals as g
-from pylons import request
 from tg import config
 from paste.deploy.converters import asbool
 
-import bson
 from ming import schema as S
-from ming import Field, Index, collection
-from ming.orm import session, state, Mapper
+from ming.orm import Mapper
 from ming.orm import FieldProperty
 from ming.orm.declarative import MappedClass
-from datetime import datetime, timedelta
+from datetime import timedelta
 import difflib
 
 from allura.model.session import main_orm_session
-from allura.lib import helpers as h
 
 
 class Stats(MappedClass):
@@ -194,8 +188,6 @@ class Stats(MappedClass):
     # to which programming language should be credited a line of code modified
     # within a project including two or more languages.
     def getCommitsByLanguage(self):
-        langlist = []
-        by_lang = {}
         i = getElementIndex(self.general, category=None)
         if i is None:
             return dict(number=0, lines=0)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/scripts/refresh_last_commits.py
----------------------------------------------------------------------
diff --git a/Allura/allura/scripts/refresh_last_commits.py b/Allura/allura/scripts/refresh_last_commits.py
index b5cda5c..720af10 100644
--- a/Allura/allura/scripts/refresh_last_commits.py
+++ b/Allura/allura/scripts/refresh_last_commits.py
@@ -15,11 +15,8 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-import sys
 import argparse
 import logging
-import re
-from math import pow, log10
 from datetime import datetime
 from contextlib import contextmanager
 
@@ -28,7 +25,6 @@ from pylons import tmpl_context as c
 from ming.orm import ThreadLocalORMSession, session
 
 from allura import model as M
-from allura.lib import helpers as h
 from allura.lib.utils import chunked_find
 from allura.tasks.repo_tasks import refresh
 from allura.scripts import ScriptTask

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/scripts/refreshrepo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/scripts/refreshrepo.py b/Allura/allura/scripts/refreshrepo.py
index 1e0c3ee..c7ac08d 100644
--- a/Allura/allura/scripts/refreshrepo.py
+++ b/Allura/allura/scripts/refreshrepo.py
@@ -17,7 +17,6 @@
 
 import argparse
 import logging
-import re
 
 import faulthandler
 from pylons import tmpl_context as c

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/scripts/trac_export.py
----------------------------------------------------------------------
diff --git a/Allura/allura/scripts/trac_export.py b/Allura/allura/scripts/trac_export.py
index f5cd7c3..5f2f8d4 100644
--- a/Allura/allura/scripts/trac_export.py
+++ b/Allura/allura/scripts/trac_export.py
@@ -28,7 +28,6 @@ import re
 from optparse import OptionParser
 from itertools import islice
 
-import feedparser
 from BeautifulSoup import BeautifulSoup, NavigableString
 import dateutil.parser
 import pytz

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tasks/export_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tasks/export_tasks.py b/Allura/allura/tasks/export_tasks.py
index cafb288..b146a00 100644
--- a/Allura/allura/tasks/export_tasks.py
+++ b/Allura/allura/tasks/export_tasks.py
@@ -19,12 +19,10 @@ import os
 import os.path
 import logging
 import shutil
-from tempfile import mkstemp
 
 import tg
 from pylons import app_globals as g, tmpl_context as c
 
-from allura import model as M
 from allura.tasks import mail_tasks
 from allura.lib.decorators import task
 from allura.lib import helpers as h
@@ -113,7 +111,7 @@ class BulkExport(object):
         try:
             with open(json_file, 'w') as f:
                 app.bulk_export(f)
-        except Exception as e:
+        except Exception:
             log.error('Error exporting: %s on %s', tool,
                       app.project.shortname, exc_info=True)
             return None

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tasks/repo_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tasks/repo_tasks.py b/Allura/allura/tasks/repo_tasks.py
index df84337..fe476eb 100644
--- a/Allura/allura/tasks/repo_tasks.py
+++ b/Allura/allura/tasks/repo_tasks.py
@@ -47,7 +47,7 @@ def clone(cloned_from_path, cloned_from_name, cloned_from_url):
             c.user, c.app.repo, 'created',
             text='Repository %s/%s created' % (
                 c.project.shortname, c.app.config.options.mount_point))
-    except Exception, e:
+    except Exception:
         g.post_event('repo_clone_task_failed', cloned_from_url,
                      cloned_from_path, traceback.format_exc())
 
@@ -126,7 +126,7 @@ def reclone_repo(*args, **kwargs):
             c.user, c.app.repo, 'created',
             text='Repository %s/%s created' % (
                 c.project.shortname, c.app.config.options.mount_point))
-    except Exception, e:
+    except Exception:
         g.post_event('repo_clone_task_failed', source_url,
                      source_path, traceback.format_exc())
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_admin.py b/Allura/allura/tests/functional/test_admin.py
index a7fb5bf..78cdbcb 100644
--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -18,7 +18,6 @@
 import re
 import os
 import allura
-import shutil
 import pkg_resources
 import StringIO
 from contextlib import contextmanager
@@ -30,8 +29,6 @@ from ming.orm.ormsession import ThreadLocalORMSession
 from tg import expose
 from pylons import tmpl_context as c, app_globals as g
 import mock
-from BeautifulSoup import BeautifulSoup
-from webtest.app import AppError
 
 
 try:
@@ -46,10 +43,8 @@ from allura import model as M
 from allura.app import SitemapEntry
 from allura.lib.plugin import AdminExtension
 from allura.ext.admin.admin_main import AdminApp
-from allura.lib.security import has_access
 
 from forgetracker.tracker_main import ForgeTrackerApp
-from forgewiki.model import Page
 from forgewiki.wiki_main import ForgeWikiApp
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_auth.py b/Allura/allura/tests/functional/test_auth.py
index d9362d4..c892f87 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -15,6 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
+from datetime import datetime, time, timedelta
 import re
 import json
 from bson import ObjectId
@@ -35,12 +36,9 @@ from allura.tests import decorators as td
 from allura import model as M
 from ming.orm.ormsession import ThreadLocalORMSession, session
 from allura.lib import oid_helper
-from allura.lib.helpers import push_config
 from tg import config
 from mock import patch
-import datetime
 from allura.lib import plugin
-from pylons import request
 
 
 def unentity(s):
@@ -50,7 +48,7 @@ def unentity(s):
 class TestAuth(TestController):
 
     def test_login(self):
-        result = self.app.get('/auth/')
+        self.app.get('/auth/')
         r = self.app.post('/auth/send_verification_link',
                           params=dict(a='test@example.com'))
         email = M.User.query.get(username='test-admin').email_addresses[0]
@@ -210,7 +208,7 @@ class TestAuth(TestController):
     @mock.patch('allura.controllers.auth.verify_oid')
     def test_login_verify_oid_with_provider(self, verify_oid):
         verify_oid.return_value = dict()
-        result = self.app.get('/auth/login_verify_oid', params=dict(
+        self.app.get('/auth/login_verify_oid', params=dict(
             provider='http://www.google.com/accounts/o8/id', username='rick446@usa.net'),
             status=200)
         verify_oid.assert_called_with('http://www.google.com/accounts/o8/id',
@@ -222,7 +220,7 @@ class TestAuth(TestController):
     @mock.patch('allura.controllers.auth.verify_oid')
     def test_login_verify_oid_without_provider(self, verify_oid):
         verify_oid.return_value = dict()
-        result = self.app.get('/auth/login_verify_oid', params=dict(
+        self.app.get('/auth/login_verify_oid', params=dict(
             provider='', username='rick446@usa.net'),
             status=200)
         verify_oid.assert_called_with('rick446@usa.net',
@@ -275,7 +273,7 @@ class TestAuth(TestController):
     @mock.patch('allura.controllers.auth.verify_oid')
     def test_claim_verify_oid_with_provider(self, verify_oid):
         verify_oid.return_value = dict()
-        result = self.app.get('/auth/claim_verify_oid', params=dict(
+        self.app.get('/auth/claim_verify_oid', params=dict(
             provider='http://www.google.com/accounts/o8/id', username='rick446@usa.net'),
             status=200)
         verify_oid.assert_called_with('http://www.google.com/accounts/o8/id',
@@ -287,7 +285,7 @@ class TestAuth(TestController):
     @mock.patch('allura.controllers.auth.verify_oid')
     def test_claim_verify_oid_without_provider(self, verify_oid):
         verify_oid.return_value = dict()
-        result = self.app.get('/auth/claim_verify_oid', params=dict(
+        self.app.get('/auth/claim_verify_oid', params=dict(
             provider='', username='rick446@usa.net'),
             status=200)
         verify_oid.assert_called_with('rick446@usa.net',
@@ -404,7 +402,7 @@ class TestAuth(TestController):
         user = M.User.query.get(username='aaa')
         assert M.ProjectRole.query.find(
             dict(user_id=user._id, project_id=p._id)).count() == 0
-        r = self.app.get('/p/test/admin/permissions',
+        self.app.get('/p/test/admin/permissions',
                          extra_environ=dict(username='aaa'), status=403)
         assert M.ProjectRole.query.find(
             dict(user_id=user._id, project_id=p._id)).count() <= 1
@@ -439,7 +437,7 @@ class TestPreferences(TestController):
         from pytz import country_names
         setsex, setbirthdate, setcountry, setcity, settimezone = \
             ('Male', '19/08/1988', 'IT', 'Milan', 'Europe/Rome')
-        result = self.app.get('/auth/user_info/')
+        self.app.get('/auth/user_info/')
 
         # Check if personal data is properly set
         r = self.app.post('/auth/user_info/change_personal_data',
@@ -492,8 +490,8 @@ class TestPreferences(TestController):
     def test_contacts(self):
         # Add skype account
         testvalue = 'testaccount'
-        result = self.app.get('/auth/user_info/contacts/')
-        r = self.app.post('/auth/user_info/contacts/skype_account',
+        self.app.get('/auth/user_info/contacts/')
+        self.app.post('/auth/user_info/contacts/skype_account',
                           params=dict(skypeaccount=testvalue))
         user = M.User.query.get(username='test-admin')
         assert user.skypeaccount == testvalue
@@ -501,7 +499,7 @@ class TestPreferences(TestController):
         # Add social network account
         socialnetwork = 'Facebook'
         accounturl = 'http://www.facebook.com/test'
-        r = self.app.post('/auth/user_info/contacts/add_social_network',
+        self.app.post('/auth/user_info/contacts/add_social_network',
                           params=dict(socialnetwork=socialnetwork,
                                       accounturl=accounturl))
         user = M.User.query.get(username='test-admin')
@@ -512,7 +510,7 @@ class TestPreferences(TestController):
         # Add second social network account
         socialnetwork2 = 'Twitter'
         accounturl2 = 'http://twitter.com/test'
-        r = self.app.post('/auth/user_info/contacts/add_social_network',
+        self.app.post('/auth/user_info/contacts/add_social_network',
                           params=dict(socialnetwork=socialnetwork2,
                                       accounturl='@test'))
         user = M.User.query.get(username='test-admin')
@@ -521,7 +519,7 @@ class TestPreferences(TestController):
              {'socialnetwork': socialnetwork2, 'accounturl': accounturl2} in user.socialnetworks)
 
         # Remove first social network account
-        r = self.app.post('/auth/user_info/contacts/remove_social_network',
+        self.app.post('/auth/user_info/contacts/remove_social_network',
                           params=dict(socialnetwork=socialnetwork,
                                       account=accounturl))
         user = M.User.query.get(username='test-admin')
@@ -530,7 +528,7 @@ class TestPreferences(TestController):
              accounturl2} in user.socialnetworks
 
         # Add empty social network account
-        r = self.app.post('/auth/user_info/contacts/add_social_network',
+        self.app.post('/auth/user_info/contacts/add_social_network',
                           params=dict(accounturl=accounturl, socialnetwork=''))
         user = M.User.query.get(username='test-admin')
         assert len(user.socialnetworks) == 1 and \
@@ -538,7 +536,7 @@ class TestPreferences(TestController):
              accounturl2} in user.socialnetworks
 
         # Add invalid social network account
-        r = self.app.post('/auth/user_info/contacts/add_social_network',
+        self.app.post('/auth/user_info/contacts/add_social_network',
                           params=dict(accounturl=accounturl, socialnetwork='invalid'))
         user = M.User.query.get(username='test-admin')
         assert len(user.socialnetworks) == 1 and \
@@ -547,7 +545,7 @@ class TestPreferences(TestController):
 
         # Add telephone number
         telnumber = '+3902123456'
-        r = self.app.post('/auth/user_info/contacts/add_telnumber',
+        self.app.post('/auth/user_info/contacts/add_telnumber',
                           params=dict(newnumber=telnumber))
         user = M.User.query.get(username='test-admin')
         assert (len(user.telnumbers)
@@ -555,49 +553,47 @@ class TestPreferences(TestController):
 
         # Add second telephone number
         telnumber2 = '+3902654321'
-        r = self.app.post('/auth/user_info/contacts/add_telnumber',
+        self.app.post('/auth/user_info/contacts/add_telnumber',
                           params=dict(newnumber=telnumber2))
         user = M.User.query.get(username='test-admin')
         assert (len(user.telnumbers)
                 == 2 and telnumber in user.telnumbers and telnumber2 in user.telnumbers)
 
         # Remove first telephone number
-        r = self.app.post('/auth/user_info/contacts/remove_telnumber',
+        self.app.post('/auth/user_info/contacts/remove_telnumber',
                           params=dict(oldvalue=telnumber))
         user = M.User.query.get(username='test-admin')
         assert (len(user.telnumbers) == 1 and telnumber2 in user.telnumbers)
 
         # Add website
         website = 'http://www.testurl.com'
-        r = self.app.post('/auth/user_info/contacts/add_webpage',
+        self.app.post('/auth/user_info/contacts/add_webpage',
                           params=dict(newwebsite=website))
         user = M.User.query.get(username='test-admin')
         assert (len(user.webpages) == 1 and (website in user.webpages))
 
         # Add second website
         website2 = 'http://www.testurl2.com'
-        r = self.app.post('/auth/user_info/contacts/add_webpage',
+        self.app.post('/auth/user_info/contacts/add_webpage',
                           params=dict(newwebsite=website2))
         user = M.User.query.get(username='test-admin')
         assert (len(user.webpages)
                 == 2 and website in user.webpages and website2 in user.webpages)
 
         # Remove first website
-        r = self.app.post('/auth/user_info/contacts/remove_webpage',
+        self.app.post('/auth/user_info/contacts/remove_webpage',
                           params=dict(oldvalue=website))
         user = M.User.query.get(username='test-admin')
         assert (len(user.webpages) == 1 and website2 in user.webpages)
 
     @td.with_user_project('test-admin')
     def test_availability(self):
-        from datetime import time
-
         # Add availability timeslot
         weekday = 'Monday'
         starttime = time(9, 0, 0)
         endtime = time(12, 0, 0)
 
-        result = self.app.get('/auth/user_info/availability/')
+        self.app.get('/auth/user_info/availability/')
         r = self.app.post('/auth/user_info/availability/add_timeslot',
                           params=dict(
                               weekday=weekday,
@@ -650,14 +646,12 @@ class TestPreferences(TestController):
 
     @td.with_user_project('test-admin')
     def test_inactivity(self):
-        from datetime import datetime, timedelta
-
         # Add inactivity period
         now = datetime.utcnow().date()
         now = datetime(now.year, now.month, now.day)
         startdate = now + timedelta(days=1)
         enddate = now + timedelta(days=7)
-        result = self.app.get('/auth/user_info/availability/')
+        self.app.get('/auth/user_info/availability/')
         r = self.app.post('/auth/user_info/availability/add_inactive_period',
                           params=dict(
                               startdate=startdate.strftime('%d/%m/%Y'),
@@ -701,8 +695,6 @@ class TestPreferences(TestController):
 
     @td.with_user_project('test-admin')
     def test_skills(self):
-        from datetime import datetime
-
         # Add a skill
         skill_cat = M.TroveCategory.query.get(show_as_skill=True)
         level = 'low'
@@ -745,8 +737,8 @@ class TestPreferences(TestController):
         assert len(user.skills) == 1 and skilldict in user.skills
 
         # Remove a skill
-        result = self.app.get('/auth/user_info/skills/')
-        r = self.app.post('/auth/user_info/skills/remove_skill',
+        self.app.get('/auth/user_info/skills/')
+        self.app.post('/auth/user_info/skills/remove_skill',
                           params=dict(
                               categoryid=str(skill_cat.trove_cat_id)))
         user = M.User.query.get(username='test-admin')
@@ -775,7 +767,7 @@ class TestPasswordReset(TestController):
             {'claimed_by_user_id': user._id}).first()
         email.confirmed = False
         ThreadLocalORMSession.flush_all()
-        r = self.app.post('/auth/password_recovery_hash', {'email': email._id})
+        self.app.post('/auth/password_recovery_hash', {'email': email._id})
         hash = user.get_tool_data('AuthPasswordReset', 'hash')
         assert hash is None
 
@@ -787,7 +779,7 @@ class TestPasswordReset(TestController):
             {'claimed_by_user_id': user._id}).first()
         user.disabled = True
         ThreadLocalORMSession.flush_all()
-        r = self.app.post('/auth/password_recovery_hash', {'email': email._id})
+        self.app.post('/auth/password_recovery_hash', {'email': email._id})
         hash = user.get_tool_data('AuthPasswordReset', 'hash')
         assert hash is None
 
@@ -849,7 +841,7 @@ To reset your password on %s, please visit the following URL:
         user = M.User.by_username('test-admin')
         hash = user.get_tool_data('AuthPasswordReset', 'hash')
         user.set_tool_data('AuthPasswordReset',
-                           hash_expiry=datetime.datetime(2000, 10, 10))
+                           hash_expiry=datetime(2000, 10, 10))
         r = self.app.get('/auth/forgotten_password/%s' % hash.encode('utf-8'))
         assert_in('Unable to process reset, please try again', r.follow().body)
         r = self.app.post('/auth/set_new_password/%s' %
@@ -981,7 +973,7 @@ class TestOAuth(TestController):
         ThreadLocalORMSession.flush_all()
         req = Request.from_request.return_value = {
             'oauth_consumer_key': 'api_key'}
-        r = self.app.post('/rest/oauth/request_token',
+        self.app.post('/rest/oauth/request_token',
                           params={'key': 'value'}, status=403)
 
     def test_authorize_ok(self):
@@ -1004,7 +996,7 @@ class TestOAuth(TestController):
         assert_in('api_key', r.body)
 
     def test_authorize_invalid(self):
-        r = self.app.post('/rest/oauth/authorize',
+        self.app.post('/rest/oauth/authorize',
                           params={'oauth_token': 'api_key'}, status=403)
 
     def test_do_authorize_no(self):
@@ -1021,7 +1013,7 @@ class TestOAuth(TestController):
             user_id=user._id,
         )
         ThreadLocalORMSession.flush_all()
-        r = self.app.post('/rest/oauth/do_authorize',
+        self.app.post('/rest/oauth/do_authorize',
                           params={'no': '1', 'oauth_token': 'api_key'})
         assert_is_none(M.OAuthRequestToken.query.get(api_key='api_key'))
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_discuss.py b/Allura/allura/tests/functional/test_discuss.py
index 816b3d5..ca3fcbd 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -177,7 +177,7 @@ class TestDiscuss(TestController):
         thread_link = [a for a in home.html.findAll('a')
                        if 'thread' in a['href']][0]['href']
         # just make sure it doesn't 500
-        r = self.app.get('%s?limit=50&page=0' % thread_link)
+        self.app.get('%s?limit=50&page=0' % thread_link)
 
     @patch('allura.controllers.discuss.g.director.create_activity')
     def test_edit_post(self, create_activity):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_home.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_home.py b/Allura/allura/tests/functional/test_home.py
index f350b29..54c34b7 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -83,7 +83,6 @@ class TestProjectHome(TestController):
     def test_user_subproject_home_not_profile(self):
         u_proj = M.Project.query.get(shortname='u/test-admin')
         u_proj.new_subproject('sub1')
-        from ming.orm.ormsession import ThreadLocalORMSession
         ThreadLocalORMSession.flush_all()
 
         r = self.app.get('/u/test-admin/sub1/')
@@ -104,10 +103,10 @@ class TestProjectHome(TestController):
         assert j == {'users': []}
 
     def test_user_search_noparam(self):
-        r = self.app.get('/p/test/user_search', status=400)
+        self.app.get('/p/test/user_search', status=400)
 
     def test_user_search_shortparam(self):
-        r = self.app.get('/p/test/user_search?term=ad', status=400)
+        self.app.get('/p/test/user_search?term=ad', status=400)
 
     def test_users(self):
         r = self.app.get('/p/test/users', status=200)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_neighborhood.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_neighborhood.py b/Allura/allura/tests/functional/test_neighborhood.py
index 3d71949..21b8e37 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -474,7 +474,7 @@ class TestNeighborhood(TestController):
         assert 'adobe-1 evicted to Projects' in r
 
     def test_home(self):
-        r = self.app.get('/adobe/')
+        self.app.get('/adobe/')
 
     def test_register(self):
         r = self.app.get('/adobe/register', status=405)
@@ -912,7 +912,7 @@ class TestNeighborhood(TestController):
         self.app.get('/u/donald-duck/')
 
     def test_disabled_user_has_no_user_project(self):
-        user = M.User.register(dict(username='donald-duck'))
+        M.User.register(dict(username='donald-duck'))
         self.app.get('/u/donald-duck/')  # assert it's there
         M.User.query.update(dict(username='donald-duck'),
                             {'$set': {'disabled': True}})

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_rest.py b/Allura/allura/tests/functional/test_rest.py
index 328e117..03e8316 100644
--- a/Allura/allura/tests/functional/test_rest.py
+++ b/Allura/allura/tests/functional/test_rest.py
@@ -18,7 +18,6 @@
 #       under the License.
 
 from datetime import datetime, timedelta
-import json
 
 from pylons import app_globals as g
 import mock

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_root.py b/Allura/allura/tests/functional/test_root.py
index 8c7441e..0db57df 100644
--- a/Allura/allura/tests/functional/test_root.py
+++ b/Allura/allura/tests/functional/test_root.py
@@ -28,7 +28,6 @@ functional tests exercise the whole application and its WSGI stack.
 Please read http://pythonpaste.org/webtest/ for more information.
 
 """
-from tg import config
 from pylons import tmpl_context as c
 from nose.tools import assert_equal
 from ming.orm.ormsession import ThreadLocalORMSession
@@ -49,7 +48,7 @@ class TestRootController(TestController):
         assert n_adobe
         u_admin = M.User.query.get(username='test-admin')
         assert u_admin
-        p_adobe2 = n_adobe.register_project('adobe-2', u_admin)
+        n_adobe.register_project('adobe-2', u_admin)
 
     def test_index(self):
         response = self.app.get('/')
@@ -85,7 +84,6 @@ class TestRootController(TestController):
     def test_project_browse(self):
         com_cat = M.ProjectCategory.query.find(
             dict(label='Communications')).first()
-        fax_cat = M.ProjectCategory.query.find(dict(label='Fax')).first()
         M.Project.query.find(dict(shortname='adobe-1')
                              ).first().category_id = com_cat._id
         response = self.app.get('/browse')
@@ -152,8 +150,8 @@ class TestRootController(TestController):
         assert '<p><em>aaa</em>bb<a class="alink" href="/p/test/wiki/Home/">[wiki:Home]</a></p>' in r, r
 
     def test_slash_redirect(self):
-        r = self.app.get('/p', status=301)
-        r = self.app.get('/p/', status=302)
+        self.app.get('/p', status=301)
+        self.app.get('/p/', status=302)
 
     @skipif(module_not_available('newrelic'))
     def test_newrelic_set_transaction_name(self):
@@ -161,7 +159,7 @@ class TestRootController(TestController):
         with mock.patch('newrelic.agent.callable_name') as callable_name,\
                 mock.patch('newrelic.agent.set_transaction_name') as set_transaction_name:
             callable_name.return_value = 'foo'
-            r = self.app.get('/p/')
+            self.app.get('/p/')
             arg = callable_name.call_args[0][0]
             assert_equal(arg.undecorated,
                          NeighborhoodController.index.undecorated)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_search.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_search.py b/Allura/allura/tests/functional/test_search.py
index 1081f25..374d5f3 100644
--- a/Allura/allura/tests/functional/test_search.py
+++ b/Allura/allura/tests/functional/test_search.py
@@ -23,11 +23,11 @@ class TestSearch(TestController):
 
     @patch('allura.lib.search.search')
     def test_global_search_controller(self, search):
-        r = self.app.get('/gsearch/')
+        self.app.get('/gsearch/')
         assert not search.called, search.called
-        r = self.app.get('/gsearch/', params=dict(q='Root'))
+        self.app.get('/gsearch/', params=dict(q='Root'))
         assert search.called, search.called
 
     def test_project_search_controller(self):
-        r = self.app.get('/search/')
-        r = self.app.get('/search/', params=dict(q='Root'))
+        self.app.get('/search/')
+        self.app.get('/search/', params=dict(q='Root'))

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index b6da963..0bbff58 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -46,7 +46,7 @@ class TestSiteAdmin(TestController):
         assert cells[0].contents[0] == 'Adobe', cells[0].contents[0]
 
     def test_tickets_access(self):
-        r = self.app.get('/nf/admin/api_tickets', extra_environ=dict(
+        self.app.get('/nf/admin/api_tickets', extra_environ=dict(
             username='test-user'), status=403)
 
     def test_new_projects_access(self):
@@ -110,7 +110,7 @@ class TestSiteAdmin(TestController):
         r = self.app.get('/nf/admin/task_manager',
                          extra_environ=dict(username='*anonymous'), status=302)
         import math
-        task = M.MonQTask.post(math.ceil, (12.5,))
+        M.MonQTask.post(math.ceil, (12.5,))
         r = self.app.get('/nf/admin/task_manager?page_num=1')
         assert 'math.ceil' in r, r
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/functional/test_user_profile.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_user_profile.py b/Allura/allura/tests/functional/test_user_profile.py
index 2706776..3beb105 100644
--- a/Allura/allura/tests/functional/test_user_profile.py
+++ b/Allura/allura/tests/functional/test_user_profile.py
@@ -15,10 +15,7 @@
 #       specific language governing permissions and limitations
 #       under the License.
 
-from formencode.variabledecode import variable_encode
-
 import mock
-from nose.tools import assert_equal
 
 from allura.model import Project, User
 from allura.tests import decorators as td
@@ -34,7 +31,7 @@ class TestUserProfile(TestController):
         assert 'OpenIDs' in response
 
     def test_wrong_profile(self):
-        response = self.app.get('/u/no-such-user/profile/', status=404)
+        self.app.get('/u/no-such-user/profile/', status=404)
 
     @td.with_user_project('test-admin')
     @td.with_user_project('test-user')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_auth.py b/Allura/allura/tests/model/test_auth.py
index 5dadb07..237d2ab 100644
--- a/Allura/allura/tests/model/test_auth.py
+++ b/Allura/allura/tests/model/test_auth.py
@@ -26,7 +26,6 @@ from webob import Request
 from mock import patch
 from datetime import datetime, timedelta
 
-from mock import patch
 from pymongo.errors import DuplicateKeyError
 from ming.orm.ormsession import ThreadLocalORMSession
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/0ca218ab/Allura/allura/tests/model/test_discussion.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_discussion.py b/Allura/allura/tests/model/test_discussion.py
index 6a7878f..f814fad 100644
--- a/Allura/allura/tests/model/test_discussion.py
+++ b/Allura/allura/tests/model/test_discussion.py
@@ -25,18 +25,16 @@ import time
 from datetime import datetime, timedelta
 from cgi import FieldStorage
 
-from pylons import tmpl_context as c, app_globals as g
-from pylons import request, response
-from nose.tools import assert_raises, assert_equals, with_setup
+from pylons import tmpl_context as c
+from nose.tools import assert_equals, with_setup
 import mock
 from mock import patch
 from nose.tools import assert_equal
 
 from ming.orm import session, ThreadLocalORMSession
-from webob import Request, Response, exc
+from webob import exc
 
 from allura import model as M
-from allura.lib.app_globals import Globals
 from allura.lib import helpers as h
 from allura.tests import TestController
 from alluratest.controller import setup_global_objects
@@ -88,7 +86,7 @@ def test_thread_methods():
     p0 = t.post('This is a post')
     p1 = t.post('This is another post')
     time.sleep(0.25)
-    p2 = t.post('This is a reply', parent_id=p0._id)
+    t.post('This is a reply', parent_id=p0._id)
     ThreadLocalORMSession.flush_all()
     ThreadLocalORMSession.close_all()
     d = M.Discussion.query.get(shortname='test')
@@ -283,7 +281,7 @@ def test_discussion_delete():
              discussion_id=d._id,
              thread_id=t._id,
              post_id=p._id)
-    r = M.ArtifactReference.from_artifact(d)
+    M.ArtifactReference.from_artifact(d)
     rid = d.index_id()
     ThreadLocalORMSession.flush_all()
     d.delete()
@@ -323,11 +321,11 @@ def test_post_permission_check():
     t = M.Thread.new(discussion_id=d._id, subject='Test Thread')
     c.user = M.User.anonymous()
     try:
-        p1 = t.post('This post will fail the check.')
+        t.post('This post will fail the check.')
         assert False, "Expected an anonymous post to fail."
     except exc.HTTPUnauthorized:
         pass
-    p2 = t.post('This post will pass the check.', ignore_security=True)
+    t.post('This post will pass the check.', ignore_security=True)
 
 
 @with_setup(setUp, tearDown)
@@ -493,8 +491,7 @@ def test_thread_subject_not_included_in_text_checked(spam_checker):
     spam_checker.check.return_value = False
     d = M.Discussion(shortname='test', name='test')
     t = M.Thread(discussion_id=d._id, subject='Test Thread')
-    admin = M.User.by_username('test-admin')
-    post = t.post('Hello')
+    t.post('Hello')
     spam_checker.check.assert_called_once()
     assert_equal(spam_checker.check.call_args[0][0], 'Hello')
 
@@ -502,9 +499,9 @@ def test_thread_subject_not_included_in_text_checked(spam_checker):
 def test_post_count():
     d = M.Discussion(shortname='test', name='test')
     t = M.Thread(discussion_id=d._id, subject='Test Thread')
-    p1 = M.Post(discussion_id=d._id, thread_id=t._id, status='spam')
-    p2 = M.Post(discussion_id=d._id, thread_id=t._id, status='ok')
-    p3 = M.Post(discussion_id=d._id, thread_id=t._id, status='pending')
+    M.Post(discussion_id=d._id, thread_id=t._id, status='spam')
+    M.Post(discussion_id=d._id, thread_id=t._id, status='ok')
+    M.Post(discussion_id=d._id, thread_id=t._id, status='pending')
     ThreadLocalORMSession.flush_all()
     assert_equal(t.post_count, 2)