diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py
index c97f7371ea8..1e84dadd15c 100644
--- a/openerp/addons/base/ir/ir_attachment.py
+++ b/openerp/addons/base/ir/ir_attachment.py
@@ -18,12 +18,9 @@
# along with this program. If not, see .
#
##############################################################################
-
import itertools
-from openerp import tools
from openerp.osv import fields,osv
-from openerp.osv.orm import except_orm
class ir_attachment(osv.osv):
def check(self, cr, uid, ids, mode, context=None, values=None):
diff --git a/openerp/addons/base/ir/ir_cron.py b/openerp/addons/base/ir/ir_cron.py
index 9ab65ada5ee..bdb04f94c57 100644
--- a/openerp/addons/base/ir/ir_cron.py
+++ b/openerp/addons/base/ir/ir_cron.py
@@ -18,18 +18,14 @@
# along with this program. If not, see .
#
##############################################################################
-
-import calendar
import time
import logging
-import threading
import psycopg2
from datetime import datetime
from dateutil.relativedelta import relativedelta
import openerp
-from openerp import netsvc, pooler, tools
-from openerp.cron import WAKE_UP_NOW
+from openerp import netsvc
from openerp.osv import fields, osv
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
from openerp.tools.safe_eval import safe_eval as eval
diff --git a/openerp/addons/base/ir/ir_fields.py b/openerp/addons/base/ir/ir_fields.py
index 105176bbd9c..302b11eb526 100644
--- a/openerp/addons/base/ir/ir_fields.py
+++ b/openerp/addons/base/ir/ir_fields.py
@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
-import collections
import datetime
import functools
import operator
diff --git a/openerp/addons/base/ir/ir_rule.py b/openerp/addons/base/ir/ir_rule.py
index af2f5cb3172..7a6c79d5f51 100644
--- a/openerp/addons/base/ir/ir_rule.py
+++ b/openerp/addons/base/ir/ir_rule.py
@@ -18,10 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
-
import time
-from operator import itemgetter
-from functools import partial
from openerp import SUPERUSER_ID
from openerp import tools
diff --git a/openerp/addons/base/ir/ir_values.py b/openerp/addons/base/ir/ir_values.py
index 1487ec5837d..3be6dca4d57 100644
--- a/openerp/addons/base/ir/ir_values.py
+++ b/openerp/addons/base/ir/ir_values.py
@@ -18,12 +18,10 @@
# along with this program. If not, see .
#
##############################################################################
-
import pickle
from openerp.osv import osv, fields
from openerp.osv.orm import except_orm
-from openerp.tools.translate import _
EXCLUDED_FIELDS = set((
'report_sxw_content', 'report_rml_content', 'report_sxw', 'report_rml',
diff --git a/openerp/addons/base/ir/workflow/print_instance.py b/openerp/addons/base/ir/workflow/print_instance.py
index 17bf66d176c..e7c8f935f32 100644
--- a/openerp/addons/base/ir/workflow/print_instance.py
+++ b/openerp/addons/base/ir/workflow/print_instance.py
@@ -18,13 +18,11 @@
# along with this program. If not, see .
#
##############################################################################
-
import logging
-import time
from operator import itemgetter
import os
-from openerp import netsvc, pooler, report, tools
+from openerp import report, tools
_logger = logging.getLogger(__name__)
diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index b35e36c5553..a10b38cf586 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -18,9 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
-
-import base64
-from docutils import io, nodes
+from docutils import nodes
from docutils.core import publish_string
from docutils.transforms import Transform, writer_aux
from docutils.writers.html4css1 import Writer
diff --git a/openerp/addons/base/module/wizard/base_module_scan.py b/openerp/addons/base/module/wizard/base_module_scan.py
index 3e03c57ea9b..7ddd580d284 100644
--- a/openerp/addons/base/module/wizard/base_module_scan.py
+++ b/openerp/addons/base/module/wizard/base_module_scan.py
@@ -21,11 +21,10 @@
import os
import glob
import imp
-
-import tools
-
import zipfile
-from osv import osv
+
+from openerp import tools
+from openerp.osv import osv
class base_module_scan(osv.osv_memory):
""" scan module """
diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py
index 9e901630db1..d8a1aa3bc10 100644
--- a/openerp/addons/base/res/res_config.py
+++ b/openerp/addons/base/res/res_config.py
@@ -18,11 +18,10 @@
# along with this program. If not, see .
#
##############################################################################
-
import logging
-from operator import attrgetter, itemgetter
+from operator import attrgetter
-from openerp import netsvc, pooler
+from openerp import pooler
from openerp.osv import osv, fields
from openerp.tools import ustr
from openerp.tools.translate import _
diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py
index efc63378ae5..c6faa4c17bd 100644
--- a/openerp/addons/base/res/res_currency.py
+++ b/openerp/addons/base/res/res_currency.py
@@ -22,7 +22,7 @@
import re
import time
-from openerp import netsvc, tools
+from openerp import tools
from openerp.osv import fields, osv
from openerp.tools import float_round, float_is_zero, float_compare
from openerp.tools.translate import _
diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py
index 871d9936d53..9d7a1c1ebb3 100644
--- a/openerp/addons/base/res/res_partner.py
+++ b/openerp/addons/base/res/res_partner.py
@@ -20,7 +20,6 @@
##############################################################################
import datetime
-import logging
from lxml import etree
import math
import pytz
diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py
index 58f5eb3ea16..fea292f5cf3 100644
--- a/openerp/addons/base/res/res_users.py
+++ b/openerp/addons/base/res/res_users.py
@@ -19,21 +19,17 @@
# along with this program. If not, see .
#
##############################################################################
-
-
from functools import partial
import logging
from lxml import etree
from lxml.builder import E
-import random
import openerp
from openerp import SUPERUSER_ID
-from openerp import netsvc, pooler, tools
+from openerp import pooler, tools
import openerp.exceptions
from openerp.osv import fields,osv
from openerp.osv.orm import browse_record
-from openerp.service import security
from openerp.tools.translate import _
_logger = logging.getLogger(__name__)
diff --git a/openerp/addons/base/tests/test_menu.py b/openerp/addons/base/tests/test_menu.py
index 364cbc7b6f7..a4b5315dc82 100644
--- a/openerp/addons/base/tests/test_menu.py
+++ b/openerp/addons/base/tests/test_menu.py
@@ -1,5 +1,3 @@
-import unittest2
-
import openerp.tests.common as common
class test_menu(common.TransactionCase):
diff --git a/openerp/addons/base_quality_interrogation.py b/openerp/addons/base_quality_interrogation.py
index ae49996ec95..1560bb4664b 100755
--- a/openerp/addons/base_quality_interrogation.py
+++ b/openerp/addons/base_quality_interrogation.py
@@ -20,14 +20,11 @@
##############################################################################
import xmlrpclib
-import ConfigParser
import optparse
import sys
-import thread
import threading
import os
import time
-import pickle
import base64
import socket
diff --git a/openerp/tests/test_fields.py b/openerp/tests/test_fields.py
index efa7c67126d..774bbf41fb2 100644
--- a/openerp/tests/test_fields.py
+++ b/openerp/tests/test_fields.py
@@ -1,11 +1,8 @@
#
# test cases for fields access, etc.
#
-
-import unittest2
import common
-import openerp
from openerp.osv import fields
class TestRelatedField(common.TransactionCase):
diff --git a/openerp/tests/test_ir_filters.py b/openerp/tests/test_ir_filters.py
index c6582db1cb2..daf58a380e1 100644
--- a/openerp/tests/test_ir_filters.py
+++ b/openerp/tests/test_ir_filters.py
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
import functools
-import openerp
from openerp import exceptions
from . import common
@@ -261,4 +260,4 @@ class TestGlobalDefaults(common.TransactionCase):
self.assertItemsEqual(map(noid, filters), [
dict(name='a', user_id=False, is_default=False, domain='[]', context='{}'),
dict(name='b', user_id=False, is_default=True, domain='[]', context=context_value),
- ])
\ No newline at end of file
+ ])
diff --git a/openerp/tests/test_orm.py b/openerp/tests/test_orm.py
index 7d64df119b0..d2ec96846df 100644
--- a/openerp/tests/test_orm.py
+++ b/openerp/tests/test_orm.py
@@ -1,4 +1,3 @@
-from openerp import exceptions
from openerp.tools import mute_logger
import common
diff --git a/openerp/tests/test_uninstall.py b/openerp/tests/test_uninstall.py
index 1f74b660ce0..2425249afa4 100644
--- a/openerp/tests/test_uninstall.py
+++ b/openerp/tests/test_uninstall.py
@@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
# This assumes an existing but uninitialized database.
-import psycopg2
import unittest2
import openerp
diff --git a/openerp/tests/test_view_validation.py b/openerp/tests/test_view_validation.py
index 9c19e7b41d2..362bdc5d851 100644
--- a/openerp/tests/test_view_validation.py
+++ b/openerp/tests/test_view_validation.py
@@ -1,11 +1,9 @@
# This test can be run stand-alone with something like:
# > PYTHONPATH=. python2 openerp/tests/test_view_validation.py
-
from lxml import etree
from StringIO import StringIO
import unittest2
-import openerp
from openerp.tools.view_validation import *
invalid_form = etree.parse(StringIO('''\
diff --git a/openerp/tests/test_xmlrpc.py b/openerp/tests/test_xmlrpc.py
index 37655e72718..1198c0fa2f2 100644
--- a/openerp/tests/test_xmlrpc.py
+++ b/openerp/tests/test_xmlrpc.py
@@ -10,7 +10,6 @@ import time
import unittest2
import xmlrpclib
-import openerp
import common
DB = None
diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py
index 12ed269db8b..1fec4e49190 100644
--- a/openerp/tools/convert.py
+++ b/openerp/tools/convert.py
@@ -46,7 +46,6 @@ except:
from datetime import datetime, timedelta
from lxml import etree
import misc
-import openerp.loglevels as loglevels
import openerp.pooler as pooler
from config import config
from translate import _
diff --git a/openerp/tools/image.py b/openerp/tools/image.py
index 1c657dafa2c..f2285cdd9ec 100644
--- a/openerp/tools/image.py
+++ b/openerp/tools/image.py
@@ -23,7 +23,7 @@ import io
import StringIO
from PIL import Image
-from PIL import ImageEnhance, ImageOps
+from PIL import ImageOps
from random import random
# ----------------------------------------
diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py
index 209e4aaebdf..e8204fc4526 100644
--- a/openerp/tools/misc.py
+++ b/openerp/tools/misc.py
@@ -42,10 +42,6 @@ from itertools import islice, izip
from lxml import etree
from which import which
from threading import local
-try:
- from html2text import html2text
-except ImportError:
- html2text = None
from config import config
from cache import *
diff --git a/openerp/tools/safe_eval.py b/openerp/tools/safe_eval.py
index 1c3870004a7..b99de385af3 100644
--- a/openerp/tools/safe_eval.py
+++ b/openerp/tools/safe_eval.py
@@ -34,7 +34,6 @@ condition/math builtins.
from opcode import HAVE_ARGUMENT, opmap, opname
from types import CodeType
import logging
-import os
__all__ = ['test_expr', 'safe_eval', 'const_eval']
diff --git a/openerp/workflow/instance.py b/openerp/workflow/instance.py
index 298548288f5..eed3e984f42 100644
--- a/openerp/workflow/instance.py
+++ b/openerp/workflow/instance.py
@@ -18,13 +18,8 @@
# along with this program. If not, see .
#
##############################################################################
-
-import wkf_logs
import workitem
-import openerp.netsvc as netsvc
-import openerp.pooler as pooler
-
def create(cr, ident, wkf_id):
(uid,res_type,res_id) = ident
cr.execute('insert into wkf_instance (res_type,res_id,uid,wkf_id) values (%s,%s,%s,%s) RETURNING id', (res_type,res_id,uid,wkf_id))
diff --git a/openerp/workflow/wkf_expr.py b/openerp/workflow/wkf_expr.py
index b4d6c5b9ccc..8e93a99f038 100644
--- a/openerp/workflow/wkf_expr.py
+++ b/openerp/workflow/wkf_expr.py
@@ -19,9 +19,6 @@
#
##############################################################################
-import sys
-import openerp.netsvc as netsvc
-import openerp.osv as base
import openerp.pooler as pooler
from openerp.tools.safe_eval import safe_eval as eval
diff --git a/openerp/workflow/wkf_logs.py b/openerp/workflow/wkf_logs.py
index 560aae87170..9463fe61814 100644
--- a/openerp/workflow/wkf_logs.py
+++ b/openerp/workflow/wkf_logs.py
@@ -22,7 +22,6 @@
#
# May be uncommented to logs workflows modifications
#
-import openerp.netsvc as netsvc
def log(cr,ident,act_id,info=''):
return
diff --git a/openerp/workflow/wkf_service.py b/openerp/workflow/wkf_service.py
index a8d829aa546..2b3ce435e60 100644
--- a/openerp/workflow/wkf_service.py
+++ b/openerp/workflow/wkf_service.py
@@ -18,13 +18,8 @@
# along with this program. If not, see .
#
##############################################################################
-
-import wkf_logs
-import workitem
import instance
-
import openerp.netsvc as netsvc
-import openerp.pooler as pooler
class workflow_service(netsvc.Service):
"""
diff --git a/openerp/workflow/workitem.py b/openerp/workflow/workitem.py
index ac783b76a30..f44b4d86f92 100644
--- a/openerp/workflow/workitem.py
+++ b/openerp/workflow/workitem.py
@@ -24,7 +24,6 @@
# cr.execute('delete from wkf_triggers where model=%s and res_id=%s', (res_type,res_id))
#
-import openerp.netsvc as netsvc
import instance
import wkf_expr