diff --git a/openerp-server b/openerp-server
index be0710cbce9..5d717c834de 100755
--- a/openerp-server
+++ b/openerp-server
@@ -30,7 +30,6 @@ GNU Public Licence.
(c) 2003-TODAY, Fabien Pinckaers - OpenERP SA
"""
-import imp
import logging
import os
import signal
@@ -203,7 +202,7 @@ def quit_on_signals():
try:
while quit_signals_received == 0:
time.sleep(60)
- except KeyboardInterrupt, e:
+ except KeyboardInterrupt:
pass
if config['pidfile']:
diff --git a/openerp/netsvc.py b/openerp/netsvc.py
index 170108a13ad..c1a31602262 100644
--- a/openerp/netsvc.py
+++ b/openerp/netsvc.py
@@ -86,12 +86,12 @@ class Service(object):
cls._services.pop(name)
def LocalService(name):
- # Special case for addons support, will be removed in a few days when addons
- # are updated to directly use openerp.osv.osv.service.
- if name == 'object_proxy':
- return openerp.osv.osv.service
+ # Special case for addons support, will be removed in a few days when addons
+ # are updated to directly use openerp.osv.osv.service.
+ if name == 'object_proxy':
+ return openerp.osv.osv.service
- return Service._services[name]
+ return Service._services[name]
class ExportService(object):
""" Proxy for exported services.
@@ -238,9 +238,9 @@ def init_logger():
# server intended to test it.
def init_alternative_logger():
class H(logging.Handler):
- def emit(self, record):
- if record.levelno > 20:
- print record.levelno, record.pathname, record.msg
+ def emit(self, record):
+ if record.levelno > 20:
+ print record.levelno, record.pathname, record.msg
handler = H()
# Add the handler to the 'openerp' logger.
logger = logging.getLogger('openerp')
diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py
index 9d3b92a3d31..d81833b17a6 100644
--- a/openerp/osv/orm.py
+++ b/openerp/osv/orm.py
@@ -892,8 +892,8 @@ class BaseModel(object):
for c in cls.__dict__.get(s, []):
exist = False
for c2 in range(len(new)):
- #For _constraints, we should check field and methods as well
- if new[c2][2]==c[2] and (new[c2][0] == c[0] \
+ #For _constraints, we should check field and methods as well
+ if new[c2][2]==c[2] and (new[c2][0] == c[0] \
or getattr(new[c2][0],'__name__', True) == \
getattr(c[0],'__name__', False)):
# If new class defines a constraint with
@@ -1308,7 +1308,7 @@ class BaseModel(object):
if not line[i]:
continue
- if field[:len(prefix)] <> prefix:
+ if field[:len(prefix)] != prefix:
if line[i] and skip:
return False
continue
@@ -2709,7 +2709,7 @@ class BaseModel(object):
# if val is a many2one, just write the ID
if type(val) == tuple:
val = val[0]
- if (val<>False) or (type(val)<>bool):
+ if val is not False:
cr.execute(update_query, (ss[1](val), key))
def _check_selection_field_value(self, cr, uid, field, value, context=None):
@@ -2733,7 +2733,7 @@ class BaseModel(object):
elif val in dict(self._columns[field].selection(self, cr, uid, context=context)):
return
raise except_orm(_('ValidateError'),
- _('The value "%s" for the field "%s.%s" is not in the selection') % (value, self._table, field))
+ _('The value "%s" for the field "%s.%s" is not in the selection') % (value, self._table, field))
def _check_removed_columns(self, cr, log=False):
# iterate on the database columns to drop the NOT NULL constraints
diff --git a/openerp/report/custom.py b/openerp/report/custom.py
index 051d1f29862..596d9a9f1b9 100644
--- a/openerp/report/custom.py
+++ b/openerp/report/custom.py
@@ -21,7 +21,6 @@
import os
import time
-import openerp.netsvc as netsvc
import openerp.tools as tools
from openerp.tools.safe_eval import safe_eval as eval
@@ -67,7 +66,6 @@ class report_custom(report_int):
#
def _row_get(self, cr, uid, objs, fields, conditions, row_canvas=None, group_by=None):
result = []
- tmp = []
for obj in objs:
tobreak = False
for cond in conditions:
@@ -108,7 +106,7 @@ class report_custom(report_int):
key = levels.keys()
for l in key:
objs = eval('obj.'+l,{'obj': obj})
- if not isinstance(objs, browse_record_list) and type(objs) <> type([]):
+ if not isinstance(objs, (browse_record_list, list)):
objs = [objs]
field_new = []
cond_new = []
@@ -221,11 +219,9 @@ class report_custom(report_int):
res_dic[prev].append(line)
else:
prev = line[groupby]
- if res_dic.has_key(line[groupby]):
- res_dic[line[groupby]].append(line)
- else:
- res_dic[line[groupby]] = []
- res_dic[line[groupby]].append(line)
+ res_dic.setdefault(line[groupby], [])
+ res_dic[line[groupby]].append(line)
+
#we use the keys in results since they are ordered, whereas in res_dic.heys() they aren't
for key in filter(None, [x[groupby] for x in results]):
row = []
@@ -267,7 +263,7 @@ class report_custom(report_int):
else:
try:
row.append(float(r[j]))
- except:
+ except Exception:
row.append(r[j])
results2.append(row)
if report['type']=='pie':
@@ -365,7 +361,6 @@ class report_custom(report_int):
order_date['Y'] = lambda x : x
abscissa = []
- tmp = {}
idx = 0
date_idx = None
@@ -389,7 +384,7 @@ class report_custom(report_int):
if date_idx != None:
for r in results:
key = process_date['Y'](r[date_idx])
- if not data_by_year.has_key(key):
+ if key not in data_by_year:
data_by_year[key] = []
for i in range(len(r)):
r[i] = fct[i](r[i])
@@ -407,14 +402,14 @@ class report_custom(report_int):
for d in data_by_year[line]:
for idx in range(len(fields)-1):
fields_bar.append({})
- if fields_bar[idx].has_key(d[0]):
+ if d[0] in fields_bar[idx]:
fields_bar[idx][d[0]] += d[idx+1]
else:
fields_bar[idx][d[0]] = d[idx+1]
for idx in range(len(fields)-1):
data = {}
for k in fields_bar[idx].keys():
- if data.has_key(k):
+ if k in data:
data[k] += fields_bar[idx][k]
else:
data[k] = fields_bar[idx][k]
@@ -488,7 +483,7 @@ class report_custom(report_int):
if date_idx != None:
for r in results:
key = process_date['Y'](r[date_idx])
- if not data_by_year.has_key(key):
+ if key not in data_by_year:
data_by_year[key] = []
for i in range(len(r)):
r[i] = fct[i](r[i])
@@ -507,14 +502,14 @@ class report_custom(report_int):
for d in data_by_year[line]:
for idx in range(len(fields)-1):
fields_bar.append({})
- if fields_bar[idx].has_key(d[0]):
+ if d[0] in fields_bar[idx]:
fields_bar[idx][d[0]] += d[idx+1]
else:
fields_bar[idx][d[0]] = d[idx+1]
for idx in range(len(fields)-1):
data = {}
for k in fields_bar[idx].keys():
- if data.has_key(k):
+ if k in data:
data[k] += fields_bar[idx][k]
else:
data[k] = fields_bar[idx][k]
diff --git a/openerp/report/interface.py b/openerp/report/interface.py
index 9a97c445671..17dc0973d7e 100644
--- a/openerp/report/interface.py
+++ b/openerp/report/interface.py
@@ -44,8 +44,8 @@ class report_int(netsvc.Service):
def __init__(self, name):
assert not self.exists(name), 'The report "%s" already exists!' % name
super(report_int, self).__init__(name)
- if name[0:7]<>'report.':
- raise Exception, 'ConceptionError, bad report name, should start with "report."'
+ if not name.startswith('report.'):
+ raise Exception('ConceptionError, bad report name, should start with "report."')
self.name = name
self.id = 0
self.name2 = '.'.join(name.split('.')[1:])
@@ -181,7 +181,7 @@ class report_rml(report_int):
def create_pdf(self, rml, localcontext = None, logo=None, title=None):
if not localcontext:
- localcontext={}
+ localcontext = {}
localcontext.update({'internal_header':self.internal_header})
if logo:
self.bin_datas['logo'] = logo
diff --git a/openerp/report/preprocess.py b/openerp/report/preprocess.py
index e681860d7a2..93b6b4d1bc9 100644
--- a/openerp/report/preprocess.py
+++ b/openerp/report/preprocess.py
@@ -48,7 +48,7 @@ class report(object):
try:
while n.tag != txt.group(3):
n = n.getparent()
- except:
+ except Exception:
n = node
else:
n = node.getparent()
diff --git a/openerp/report/print_xml.py b/openerp/report/print_xml.py
index ee1b9a316b3..c2af0984c2e 100644
--- a/openerp/report/print_xml.py
+++ b/openerp/report/print_xml.py
@@ -200,7 +200,7 @@ class document(object):
else:
args = []
# get the object
- if attrs.has_key('model'):
+ if 'model' in attrs:
obj = self.pool.get(attrs['model'])
else:
if isinstance(browser, list):
@@ -209,7 +209,7 @@ class document(object):
obj = browser._table
# get the ids
- if attrs.has_key('ids'):
+ if 'ids' in attrs:
ids = self.eval(browser, attrs['ids'])
else:
if isinstance(browser, list):
@@ -228,7 +228,7 @@ class document(object):
if not isinstance(datas[atr['value']], (str, unicode)):
txt = str(datas[atr['value']])
else:
- txt = datas[atr['value']]
+ txt = datas[atr['value']]
el.text = txt
else:
for el_cld in node:
diff --git a/openerp/report/printscreen/ps_form.py b/openerp/report/printscreen/ps_form.py
index 8e3823e6b03..cf6d77cbe26 100644
--- a/openerp/report/printscreen/ps_form.py
+++ b/openerp/report/printscreen/ps_form.py
@@ -120,7 +120,7 @@ class report_printscreen_list(report_int):
line[f]=round(line[f],precision)
col = etree.SubElement(node_line, 'col', tree='no')
if line[f] != None:
- col.text = tools.ustr(line[f] or '')
+ col.text = tools.ustr(line[f] or '')
else:
col.text = '/'
diff --git a/openerp/report/printscreen/ps_list.py b/openerp/report/printscreen/ps_list.py
index dc280a53e3e..8f0629462f8 100644
--- a/openerp/report/printscreen/ps_list.py
+++ b/openerp/report/printscreen/ps_list.py
@@ -56,7 +56,7 @@ class report_printscreen_list(report_int):
def _parse_string(self, view):
try:
dom = etree.XML(view.encode('utf-8'))
- except:
+ except Exception:
dom = etree.XML(view)
return self._parse_node(dom)
diff --git a/openerp/report/render/html2html/html2html.py b/openerp/report/render/html2html/html2html.py
index 181c7f7ba67..09d7ad5e825 100644
--- a/openerp/report/render/html2html/html2html.py
+++ b/openerp/report/render/html2html/html2html.py
@@ -20,9 +20,7 @@
##############################################################################
from openerp.report.render.rml2pdf import utils
-from lxml import etree
import copy
-import openerp.pooler as pooler
import base64
import cStringIO
import re
diff --git a/openerp/report/render/makohtml2html/makohtml2html.py b/openerp/report/render/makohtml2html/makohtml2html.py
index 57e57bd8d63..dbb3327a105 100644
--- a/openerp/report/render/makohtml2html/makohtml2html.py
+++ b/openerp/report/render/makohtml2html/makohtml2html.py
@@ -23,8 +23,7 @@ import mako
from lxml import etree
from mako.template import Template
from mako.lookup import TemplateLookup
-import openerp.netsvc as netsvc
-import traceback, sys, os
+import os
_logger = logging.getLogger(__name__)
@@ -126,9 +125,8 @@ class makohtml2html(object):
final_html += self.format_header(etree_obj)
final_html += self.format_body(etree_obj)
return final_html
- except Exception,e:
- tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
- _logger.error('report :\n%s\n%s\n', tb_s, str(e))
+ except Exception:
+ _logger.exception('report :')
def parseNode(html, localcontext = {}):
r = makohtml2html(html, localcontext)
diff --git a/openerp/report/render/odt2odt/odt2odt.py b/openerp/report/render/odt2odt/odt2odt.py
index d077207f4d7..b9713943dc8 100644
--- a/openerp/report/render/odt2odt/odt2odt.py
+++ b/openerp/report/render/odt2odt/odt2odt.py
@@ -20,7 +20,6 @@
##############################################################################
from openerp.report.render.rml2pdf import utils
-from lxml import etree
import copy
class odt2odt(object):
diff --git a/openerp/report/render/rml2html/rml2html.py b/openerp/report/render/rml2html/rml2html.py
index 504492772df..90bd58af99a 100644
--- a/openerp/report/render/rml2html/rml2html.py
+++ b/openerp/report/render/rml2html/rml2html.py
@@ -39,7 +39,7 @@ import sys
import cStringIO
from lxml import etree
import copy
-import utils
+
from openerp.report.render.rml2pdf import utils
class _flowable(object):
@@ -98,7 +98,7 @@ class _flowable(object):
try:
if new_child.get('style').find('terp_tblheader')!= -1:
new_node.tag = 'th'
- except:
+ except Exception:
pass
process(node,new_node)
if new_node.get('colWidths',False):
@@ -232,7 +232,7 @@ class _rml_stylesheet(object):
attr = {}
attrs = ps.attrib
for key, val in attrs.items():
- attr[key] = val
+ attr[key] = val
attrs = []
for a in attr:
if a in self._tags:
@@ -296,13 +296,13 @@ class _rml_template(object):
frames[(posy,posx,tmpl.get('id'))] = _rml_tmpl_frame(posx, utils.unit_get(tmpl.get('width')))
for tmpl in pt.findall('pageGraphics'):
for n in tmpl:
- if n.tag == 'image':
- self.data = rc + utils._process_text(self, n.text)
- if n.tag in self._tags:
- t = self._tags[n.tag](n, self.style,self.localcontext)
- frames[(t.posy,t.posx,n.tag)] = t
- else:
- self.style.update(n)
+ if n.tag == 'image':
+ self.data = rc + utils._process_text(self, n.text)
+ if n.tag in self._tags:
+ t = self._tags[n.tag](n, self.style,self.localcontext)
+ frames[(t.posy,t.posx,n.tag)] = t
+ else:
+ self.style.update(n)
keys = frames.keys()
keys.sort()
keys.reverse()
diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py
index 96287166074..a17c03b40cb 100644
--- a/openerp/report/render/rml2pdf/trml2pdf.py
+++ b/openerp/report/render/rml2pdf/trml2pdf.py
@@ -82,7 +82,7 @@ class NumberedCanvas(canvas.Canvas):
def showPage(self):
self._currentPage +=1
if not self._flag:
- self._pageCount += 1
+ self._pageCount += 1
else:
self.pages.update({self._currentPage:self._pageCount})
self._codes.append({'code': self._code, 'stack': self._codeStack})
@@ -424,7 +424,7 @@ class _rml_canvas(object):
flow.drawOn(self.canvas,infos['x'],infos['y'])
infos['height']-=h
else:
- raise ValueError, "Not enough space"
+ raise ValueError("Not enough space")
def _line_mode(self, node):
ljoin = {'round':1, 'mitered':0, 'bevelled':2}
diff --git a/openerp/report/render/rml2txt/rml2txt.py b/openerp/report/render/rml2txt/rml2txt.py
index 4a30e0d2345..ab1930d81ba 100755
--- a/openerp/report/render/rml2txt/rml2txt.py
+++ b/openerp/report/render/rml2txt/rml2txt.py
@@ -22,9 +22,7 @@
import sys
import StringIO
-import copy
from lxml import etree
-import base64
import utils
@@ -336,8 +334,8 @@ class _rml_stylesheet(object):
attr = {}
attrs = ps.attributes
for i in range(attrs.length):
- name = attrs.item(i).localName
- attr[name] = ps.get(name)
+ name = attrs.item(i).localName
+ attr[name] = ps.get(name)
attrs = []
for a in attr:
if a in self._tags:
diff --git a/openerp/report/render/rml2txt/utils.py b/openerp/report/render/rml2txt/utils.py
index 174612d847e..a56ee02b66d 100644
--- a/openerp/report/render/rml2txt/utils.py
+++ b/openerp/report/render/rml2txt/utils.py
@@ -23,7 +23,6 @@ import copy
import re
import reportlab
import reportlab.lib.units
-from lxml import etree
from openerp.tools.safe_eval import safe_eval as eval
_regex = re.compile('\[\[(.+?)\]\]')
@@ -38,7 +37,7 @@ def _child_get(node, self=None, tagname=None):
if n.get('rml_except', False):
try:
eval(n.get('rml_except'), {}, self.localcontext)
- except:
+ except Exception:
continue
if n.get('rml_tag'):
try:
@@ -47,7 +46,7 @@ def _child_get(node, self=None, tagname=None):
n2.tag = tag
n2.attrib.update(attr)
yield n2
- except:
+ except Exception:
yield n
else:
yield n
@@ -56,7 +55,7 @@ def _child_get(node, self=None, tagname=None):
if self and self.localcontext and n.get('rml_except', False):
try:
eval(n.get('rml_except'), {}, self.localcontext)
- except:
+ except Exception:
continue
if (tagname is None) or (n.tag==tagname):
yield n
@@ -74,11 +73,11 @@ def _process_text(self, txt):
if sps:
try:
txt2 = eval(sps.pop(0),self.localcontext)
- except:
+ except Exception:
txt2 = ''
- if type(txt2) == type(0) or type(txt2) == type(0.0):
+ if isinstance(txt2, (int, float)):
txt2 = str(txt2)
- if type(txt2)==type('') or type(txt2)==type(u''):
+ if isinstance(txt2, basestring):
result += txt2
return result
diff --git a/openerp/report/render/simple.py b/openerp/report/render/simple.py
index 4ce10991924..cb3831c141f 100644
--- a/openerp/report/render/simple.py
+++ b/openerp/report/render/simple.py
@@ -66,7 +66,6 @@ class simple(render.render):
return self.result.getvalue()
if __name__=='__main__':
- import time
s = simple()
s.xml = '''
@@ -82,7 +81,7 @@ if __name__=='__main__':
'''
if s.render():
- print s.get()
+ print s.get()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py
index 07e31ea9c7d..63e0d08fc92 100644
--- a/openerp/service/http_server.py
+++ b/openerp/service/http_server.py
@@ -44,10 +44,8 @@ import posixpath
import urllib
import os
import logging
-from SimpleXMLRPCServer import SimpleXMLRPCDispatcher
from websrv_lib import *
-import openerp.netsvc as netsvc
import openerp.tools as tools
try:
diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py
index 325288791f7..fcbfaf0ba82 100644
--- a/openerp/service/netrpc_server.py
+++ b/openerp/service/netrpc_server.py
@@ -126,12 +126,12 @@ class TinySocketServerThread(threading.Thread,netsvc.Server):
ct.start()
lt = len(self.threads)
if (lt > 10) and (lt % 10 == 0):
- # Not many threads should be serving at the same time, so log
- # their abuse.
- _logger.debug("Netrpc: %d threads", len(self.threads))
+ # Not many threads should be serving at the same time, so log
+ # their abuse.
+ _logger.debug("Netrpc: %d threads", len(self.threads))
self.socket.close()
except Exception, e:
- _logger.warning("Netrpc: closing because of exception %s" % str(e))
+ _logger.warning("Netrpc: closing because of exception %s", e)
self.socket.close()
return False
diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py
index d8a7c663dbe..5bc4eb7b9aa 100644
--- a/openerp/service/web_services.py
+++ b/openerp/service/web_services.py
@@ -238,9 +238,9 @@ class db(netsvc.ExportService):
if not data or res:
_logger.error(
- 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. '\
- 'It should be provided as a -w command-line option, or as `db_password` in the '\
- 'server configuration file.\n %s' % (db_name, data))
+ 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. '
+ 'It should be provided as a -w command-line option, or as `db_password` in the '
+ 'server configuration file.\n %s', db_name, data)
raise Exception, "Couldn't dump database"
_logger.info('DUMP DB successful: %s', db_name)
@@ -253,7 +253,7 @@ class db(netsvc.ExportService):
self._set_pg_psw_env_var()
if self.exp_db_exist(db_name):
- _logger.warning('RESTORE DB: %s already exists' % (db_name,))
+ _logger.warning('RESTORE DB: %s already exists', db_name)
raise Exception, "Database already exists"
self._create_empty_database(db_name)
@@ -282,7 +282,7 @@ class db(netsvc.ExportService):
res = stdout.close()
if res:
raise Exception, "Couldn't restore database"
- _logger.info('RESTORE DB: %s' % (db_name))
+ _logger.info('RESTORE DB: %s', db_name)
return True
finally:
@@ -465,8 +465,7 @@ GNU Public Licence.
backup_directory = os.path.join(tools.config['root_path'], 'backup', time.strftime('%Y-%m-%d-%H-%M'))
if zips and not os.path.isdir(backup_directory):
- _logger.info('create a new backup directory to \
- store the old modules: %s', backup_directory)
+ _logger.info('create a new backup directory to store the old modules: %s', backup_directory)
os.makedirs(backup_directory)
for module in zips:
@@ -526,11 +525,11 @@ GNU Public Licence.
'OS Name : %s\n' \
%(platform.platform(), platform.os.name)
if os.name == 'posix':
- if platform.system() == 'Linux':
- lsbinfo = os.popen('lsb_release -a').read()
- environment += '%s'%(lsbinfo)
- else:
- environment += 'Your System is not lsb compliant\n'
+ if platform.system() == 'Linux':
+ lsbinfo = os.popen('lsb_release -a').read()
+ environment += '%s'%(lsbinfo)
+ else:
+ environment += 'Your System is not lsb compliant\n'
environment += 'Operating System Release : %s\n' \
'Operating System Version : %s\n' \
'Operating System Architecture : %s\n' \
@@ -695,7 +694,7 @@ class report_spool(netsvc.ExportService):
self._reports[id]['state'] = True
except Exception, exception:
- _logger.exception('Exception: %s\n', str(exception))
+ _logger.exception('Exception: %s\n', exception)
if hasattr(exception, 'name') and hasattr(exception, 'value'):
self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value))
else:
@@ -732,7 +731,7 @@ class report_spool(netsvc.ExportService):
self._reports[id]['format'] = format
self._reports[id]['state'] = True
except Exception, exception:
- _logger.exception('Exception: %s\n', str(exception))
+ _logger.exception('Exception: %s\n', exception)
if hasattr(exception, 'name') and hasattr(exception, 'value'):
self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value))
else:
diff --git a/openerp/tests/addons/test_limits/models.py b/openerp/tests/addons/test_limits/models.py
index 5240acd23ab..32e2a9a16f4 100644
--- a/openerp/tests/addons/test_limits/models.py
+++ b/openerp/tests/addons/test_limits/models.py
@@ -27,7 +27,6 @@ class m(openerp.osv.osv.Model):
return True
def consume_cpu_time(self, cr, uid, seconds, context=None):
- import os
t0 = time.clock()
t1 = time.clock()
while t1 - t0 < seconds:
diff --git a/openerp/tests/test_orm.py b/openerp/tests/test_orm.py
index fd033316e62..bce5bc3903a 100644
--- a/openerp/tests/test_orm.py
+++ b/openerp/tests/test_orm.py
@@ -1,4 +1,3 @@
-import os
import unittest2
import openerp
diff --git a/openerp/tiny_socket.py b/openerp/tiny_socket.py
index b4bed83a4c0..b5f5bbccee3 100644
--- a/openerp/tiny_socket.py
+++ b/openerp/tiny_socket.py
@@ -22,12 +22,15 @@
import socket
import cPickle
import cStringIO
-import marshal
import netsvc
#.apidoc title: Net-RPC classes
+# Pickle protocol version 2 is optimized compared to default (version 0)
+PICKLE_PROTOCOL = 2
+
+
class Myexception(Exception):
"""
custom exception object store
@@ -63,20 +66,19 @@ class mysocket:
netsvc.close_socket(self.sock)
def mysend(self, msg, exception=False, traceback=None):
- msg = cPickle.dumps([msg,traceback])
- self.sock.sendall('%8d%s%s' % (len(msg), exception and "1" or "0", msg))
+ msg = cPickle.dumps([msg, traceback], PICKLE_PROTOCOL)
+ self.sock.sendall('%8d%d%s' % (len(msg), bool(exception), msg))
def myreceive(self):
buf=''
- while len(buf) < 8:
- chunk = self.sock.recv(8 - len(buf))
+ while len(buf) < 9:
+ chunk = self.sock.recv(9 - len(buf))
if not chunk:
raise socket.timeout
buf += chunk
- size = int(buf)
- buf = self.sock.recv(1)
- if buf != "0":
- exception = buf
+ size = int(buf[:8])
+ if buf[8] != "0":
+ exception = buf[8]
else:
exception = False
msg = ''
diff --git a/openerp/wizard/__init__.py b/openerp/wizard/__init__.py
index 7354a43498d..debf0f1e74f 100644
--- a/openerp/wizard/__init__.py
+++ b/openerp/wizard/__init__.py
@@ -31,7 +31,6 @@ import openerp.pooler as pooler
from openerp.osv.osv import except_osv
from openerp.osv.orm import except_orm
-import sys
_logger = logging.getLogger(__name__)
@@ -168,10 +167,7 @@ class interface(netsvc.Service):
or isinstance(e, except_orm):
netsvc.abort_response(2, e.name, 'warning', e.value)
else:
- import traceback
- tb_s = reduce(lambda x, y: x+y, traceback.format_exception(
- sys.exc_type, sys.exc_value, sys.exc_traceback))
- _logger.error('Exception in call: ' + tb_s)
+ _logger.exception('Exception in call:')
raise
return res