diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 683a2f87b48835b86adc2b77868e9ce5e8bc0289..f8adba4c0a20ff484267a4a39c7f4e5ce2999b57 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -1,7 +1,7 @@ import functools import logging -import simplejson +import json import urlparse import werkzeug.utils from werkzeug.exceptions import BadRequest @@ -62,7 +62,7 @@ class OAuthLogin(Home): client_id=provider['client_id'], redirect_uri=return_url, scope=provider['scope'], - state=simplejson.dumps(state), + state=json.dumps(state), ) provider['auth_link'] = provider['auth_endpoint'] + '?' + werkzeug.url_encode(params) @@ -132,7 +132,7 @@ class OAuthController(http.Controller): @http.route('/auth_oauth/signin', type='http', auth='none') @fragment_to_query_string def signin(self, **kw): - state = simplejson.loads(kw['state']) + state = json.loads(kw['state']) dbname = state['d'] provider = state['p'] context = state.get('c', {}) @@ -195,5 +195,5 @@ class OAuthController(http.Controller): 'c': {'no_user_creation': True}, } - kw['state'] = simplejson.dumps(state) + kw['state'] = json.dumps(state) return self.signin(**kw) diff --git a/addons/auth_oauth/res_users.py b/addons/auth_oauth/res_users.py index cada7d51a26430193e1da600e411aa55486d8b9b..7b3e1a3a0d57e67f2fe7e6305043979a990bfd24 100644 --- a/addons/auth_oauth/res_users.py +++ b/addons/auth_oauth/res_users.py @@ -3,7 +3,7 @@ import logging import werkzeug.urls import urlparse import urllib2 -import simplejson +import json import openerp from openerp.addons.auth_signup.res_users import SignupError @@ -33,7 +33,7 @@ class res_users(osv.Model): url = endpoint + '?' + params f = urllib2.urlopen(url) response = f.read() - return simplejson.loads(response) + return json.loads(response) def _auth_oauth_validate(self, cr, uid, provider, access_token, context=None): """ return the validation data corresponding to the access token """ @@ -82,7 +82,7 @@ class res_users(osv.Model): except openerp.exceptions.AccessDenied, access_denied_exception: if context and context.get('no_user_creation'): return None - state = simplejson.loads(params['state']) + state = json.loads(params['state']) token = state.get('t') values = self._generate_signup_values(cr, uid, provider, validation, params, context=context) try: diff --git a/addons/base_geolocalize/models/res_partner.py b/addons/base_geolocalize/models/res_partner.py index d99b9942dcfbb576d08f3d1aabb35ec42e63febe..e30ee0715078e815d4df56c7da044d116da647e0 100644 --- a/addons/base_geolocalize/models/res_partner.py +++ b/addons/base_geolocalize/models/res_partner.py @@ -1,10 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -try: - import simplejson as json -except ImportError: - import json # noqa +import json import urllib from openerp.osv import osv, fields diff --git a/addons/base_import/controllers.py b/addons/base_import/controllers.py index afaf06e99e05203634809a0c6ff3ee72754a2a54..0cf3996ec09aa8404a0618d818ede6b9b2f32033 100644 --- a/addons/base_import/controllers.py +++ b/addons/base_import/controllers.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -import simplejson +import json from openerp.http import Controller, route @@ -15,4 +15,4 @@ class ImportController(Controller): }, req.context) return 'window.top.%s(%s)' % ( - jsonp, simplejson.dumps({'result': written})) + jsonp, json.dumps({'result': written})) diff --git a/addons/base_setup/base_setup.py b/addons/base_setup/base_setup.py index fdcc98be2b922616c395a1406f25a83e4555b8a2..c953587b6c57b40c6e77a06639bb483377ebb4d1 100644 --- a/addons/base_setup/base_setup.py +++ b/addons/base_setup/base_setup.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -import simplejson +import json import cgi from openerp import tools from openerp.osv import fields, osv diff --git a/addons/bus/models/bus.py b/addons/bus/models/bus.py index b7d39b05ea3aac915cde22f3ebadc43fcb032471..82d8131061d1ce38c556cb562c55281321b20ae9 100644 --- a/addons/bus/models/bus.py +++ b/addons/bus/models/bus.py @@ -4,7 +4,6 @@ import json import logging import random import select -import simplejson import threading import time @@ -21,7 +20,7 @@ TIMEOUT = 50 # Bus #---------------------------------------------------------- def json_dump(v): - return simplejson.dumps(v, separators=(',', ':')) + return json.dumps(v, separators=(',', ':')) def hashable(key): if isinstance(key, list): @@ -79,8 +78,8 @@ class ImBus(models.Model): for notif in notifications: result.append({ 'id': notif['id'], - 'channel': simplejson.loads(notif['channel']), - 'message': simplejson.loads(notif['message']), + 'channel': json.loads(notif['channel']), + 'message': json.loads(notif['message']), }) return result diff --git a/addons/calendar/controllers/main.py b/addons/calendar/controllers/main.py index 6831e9a130d278a18e20894398b8e0626c3186d7..770c73bd41c65d1a00293b4ffa7ea868b0d73e12 100644 --- a/addons/calendar/controllers/main.py +++ b/addons/calendar/controllers/main.py @@ -1,4 +1,4 @@ -import simplejson +import json import openerp import openerp.http as http from openerp.http import request diff --git a/addons/google_account/controllers/main.py b/addons/google_account/controllers/main.py index 2a3a4ae586f44249302a90f98c159a797b290e99..504a9933fea3af2cff2783d15320fbdf3a7ae54c 100644 --- a/addons/google_account/controllers/main.py +++ b/addons/google_account/controllers/main.py @@ -1,4 +1,4 @@ -import simplejson +import json import urllib import openerp from openerp import http @@ -14,7 +14,7 @@ class google_auth(http.Controller): def oauth2callback(self, **kw): """ This route/function is called by Google when user Accept/Refuse the consent of Google """ - state = simplejson.loads(kw['state']) + state = json.loads(kw['state']) dbname = state.get('d') service = state.get('s') url_return = state.get('f') diff --git a/addons/google_account/google_account.py b/addons/google_account/google_account.py index ea1482d692546ecf868a9b2bc1a9772aa31e493c..53c02e08ad3944b98e698b1e7c7d0cb1e5ed0608 100644 --- a/addons/google_account/google_account.py +++ b/addons/google_account/google_account.py @@ -10,7 +10,7 @@ from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT import werkzeug.urls import urllib2 -import simplejson +import json import logging _logger = logging.getLogger(__name__) @@ -37,7 +37,7 @@ class google_service(osv.osv_memory): error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired" raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context) - content = simplejson.loads(content) + content = json.loads(content) return content.get('refresh_token') def _get_google_token_uri(self, cr, uid, service, scope, context=None): @@ -63,7 +63,7 @@ class google_service(osv.osv_memory): params = { 'response_type': 'code', 'client_id': client_id, - 'state': simplejson.dumps(state_obj), + 'state': json.dumps(state_obj), 'scope': scope or 'https://www.googleapis.com/auth/%s' % (service,), 'redirect_uri': base_url + '/google_account/authentication', 'approval_prompt': 'force', @@ -123,7 +123,7 @@ class google_service(osv.osv_memory): registry = openerp.modules.registry.RegistryManager.get(request.session.db) with registry.cursor() as cur: self.pool['res.users'].write(cur, uid, [uid], {'google_%s_rtoken' % service: False}, context=context) - error_key = simplejson.loads(e.read()).get("error", "nc") + error_key = json.loads(e.read()).get("error", "nc") _logger.exception("Bad google request : %s !" % error_key) error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired [%s]" % error_key raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context) @@ -156,7 +156,7 @@ class google_service(osv.osv_memory): response = False else: content = request.read() - response = simplejson.loads(content) + response = json.loads(content) try: ask_time = datetime.strptime(request.headers.get('date'), "%a, %d %b %Y %H:%M:%S %Z") diff --git a/addons/google_calendar/google_calendar.py b/addons/google_calendar/google_calendar.py index c9dabe9ec9ebb0aa33bae2f9f61a728af20227ef..7e17d1aaf4598d19afa39d8f9c1073abe1ae94d6 100644 --- a/addons/google_calendar/google_calendar.py +++ b/addons/google_calendar/google_calendar.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import operator -import simplejson +import json import urllib2 import openerp @@ -267,7 +267,7 @@ class google_calendar(osv.AbstractModel): url = "/calendar/v3/calendars/%s/events?fields=%s&access_token=%s" % ('primary', urllib2.quote('id,updated'), self.get_token(cr, uid, context)) headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} - data_json = simplejson.dumps(data) + data_json = json.dumps(data) return gs_pool._do_request(cr, uid, url, data_json, headers, type='POST', context=context) @@ -368,7 +368,7 @@ class google_calendar(osv.AbstractModel): headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} data = self.generate_data(cr, uid, oe_event, context=context) data['sequence'] = google_event.get('sequence', 0) - data_json = simplejson.dumps(data) + data_json = json.dumps(data) status, content, ask_time = self.pool['google.service']._do_request(cr, uid, url, data_json, headers, type='PATCH', context=context) @@ -402,7 +402,7 @@ class google_calendar(osv.AbstractModel): data['sequence'] = self.get_sequence(cr, uid, instance_id, context) - data_json = simplejson.dumps(data) + data_json = json.dumps(data) return gs_pool._do_request(cr, uid, url, data_json, headers, type='PUT', context=context) def update_from_google(self, cr, uid, event, single_event_dict, type, context): @@ -697,7 +697,7 @@ class google_calendar(osv.AbstractModel): registry = openerp.modules.registry.RegistryManager.get(request.session.db) with registry.cursor() as cur: self.pool['res.users'].write(cur, SUPERUSER_ID, [uid], {'google_calendar_last_sync_date': False}, context=context) - error_key = simplejson.loads(str(e)) + error_key = json.loads(str(e)) error_key = error_key.get('error', {}).get('message', 'nc') error_msg = "Google is lost... the next synchro will be a full synchro. \n\n %s" % error_key raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context) @@ -858,7 +858,7 @@ class google_calendar(osv.AbstractModel): try: self.delete_an_event(cr, uid, current_event[0], context=context) except Exception, e: - error = simplejson.loads(e.read()) + error = json.loads(e.read()) error_nr = error.get('error', {}).get('code') # if already deleted from gmail or never created if error_nr in (404, 410,): diff --git a/addons/google_spreadsheet/google_spreadsheet.py b/addons/google_spreadsheet/google_spreadsheet.py index d90963632bd185c4adc2288a1d1383c4bda1609b..a30e08bbb7c69c97134db3de6d8b858c69c594fe 100644 --- a/addons/google_spreadsheet/google_spreadsheet.py +++ b/addons/google_spreadsheet/google_spreadsheet.py @@ -1,7 +1,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import cgi -import simplejson +import json import logging from lxml import etree import re @@ -28,7 +28,7 @@ class config(osv.osv): display_fields = [] for node in doc.xpath("//field"): if node.get('modifiers'): - modifiers = simplejson.loads(node.get('modifiers')) + modifiers = json.loads(node.get('modifiers')) if not modifiers.get('invisible') and not modifiers.get('tree_invisible'): display_fields.append(node.get('name')) fields = " ".join(display_fields) diff --git a/addons/hw_escpos/controllers/main.py b/addons/hw_escpos/controllers/main.py index d3635e47d0bc829860c0a69a50d5b18315022a92..7c8760d37f864b17c4ea672ecaaeb17807cfb11e 100644 --- a/addons/hw_escpos/controllers/main.py +++ b/addons/hw_escpos/controllers/main.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import commands import logging -import simplejson +import json import os import os.path import io diff --git a/addons/hw_proxy/controllers/main.py b/addons/hw_proxy/controllers/main.py index 173cfd599fe4e215c6dfe96da48c1595331589a5..0a75d114edb07f4a4f82ede6acac83d636e843a3 100644 --- a/addons/hw_proxy/controllers/main.py +++ b/addons/hw_proxy/controllers/main.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- import logging import commands -import simplejson +import json import os import os.path import openerp import time import random import subprocess -import simplejson +import json import werkzeug import werkzeug.wrappers _logger = logging.getLogger(__name__) diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py index 5a42590105fb6c6415e3356f38aef37d69bd477e..50cc5c8f4c0c4b07170d68cb4cab4acc23a2c709 100644 --- a/addons/mail/models/mail_thread.py +++ b/addons/mail/models/mail_thread.py @@ -4,10 +4,7 @@ import base64 import datetime import dateutil import email -try: - import simplejson as json -except ImportError: - import json +import json from lxml import etree import logging import pytz diff --git a/addons/payment_adyen/controllers/main.py b/addons/payment_adyen/controllers/main.py index 63b8c9a8fb5a476adbe8e10403ba5441de2873a4..6301b5a343b55ae095c939b5942783f0f474fc14 100644 --- a/addons/payment_adyen/controllers/main.py +++ b/addons/payment_adyen/controllers/main.py @@ -1,9 +1,6 @@ # -*- coding: utf-8 -*- -try: - import simplejson as json -except ImportError: - import json +import json import logging import pprint import werkzeug diff --git a/addons/payment_adyen/models/adyen.py b/addons/payment_adyen/models/adyen.py index 7c89a53e39096303eedfe61d493f20a8e5ae3005..4d28bbb4d03cd12706150d7973906c877f8213c8 100644 --- a/addons/payment_adyen/models/adyen.py +++ b/addons/payment_adyen/models/adyen.py @@ -1,10 +1,7 @@ # -*- coding: utf-'8' "-*-" import base64 -try: - import simplejson as json -except ImportError: - import json +import json from hashlib import sha1 import hmac import logging diff --git a/addons/payment_buckaroo/controllers/main.py b/addons/payment_buckaroo/controllers/main.py index d3fe5b196fc1fe5358790d5a48db15be40c61f55..dec20f3de0428aa89267e056a2af746ff6fd3248 100644 --- a/addons/payment_buckaroo/controllers/main.py +++ b/addons/payment_buckaroo/controllers/main.py @@ -1,9 +1,5 @@ # -*- coding: utf-8 -*- -try: - import simplejson as json -except ImportError: - import json - +import json import logging import pprint import werkzeug diff --git a/addons/payment_paypal/controllers/main.py b/addons/payment_paypal/controllers/main.py index 67f89a8e6347e189c340841c15fc6b802b43b0b1..cd2523bba4d15874d5ffe8c98ccf3b2b9a67beb5 100644 --- a/addons/payment_paypal/controllers/main.py +++ b/addons/payment_paypal/controllers/main.py @@ -1,9 +1,6 @@ # -*- coding: utf-8 -*- -try: - import simplejson as json -except ImportError: - import json +import json import logging import pprint import urllib2 diff --git a/addons/payment_paypal/models/paypal.py b/addons/payment_paypal/models/paypal.py index 29676fc263667455568f1bbb076788ea5af625b1..1e3b896a2c4d16d3fd46d703bd747dd53d78967a 100644 --- a/addons/payment_paypal/models/paypal.py +++ b/addons/payment_paypal/models/paypal.py @@ -1,10 +1,7 @@ # -*- coding: utf-'8' "-*-" import base64 -try: - import simplejson as json -except ImportError: - import json +import json import logging import urlparse import werkzeug.urls diff --git a/addons/payment_sips/controllers/main.py b/addons/payment_sips/controllers/main.py index 47c9c8d0f0e5e406b510167fe26ea521dc75689d..4cc2a858bfa05b2c47c56037313088236f89f180 100644 --- a/addons/payment_sips/controllers/main.py +++ b/addons/payment_sips/controllers/main.py @@ -1,9 +1,6 @@ # -*- coding: utf-8 -*- -try: - import simplejson as json -except ImportError: - import json +import json import logging import werkzeug diff --git a/addons/payment_sips/models/sips.py b/addons/payment_sips/models/sips.py index 0b76ff5ddf610ae051e38c594b3c1b32a3102c95..9c74bf5ef06813f5a11c2773ded3f35121a8b87d 100644 --- a/addons/payment_sips/models/sips.py +++ b/addons/payment_sips/models/sips.py @@ -1,9 +1,6 @@ # -*- coding: utf-'8' "-*-" -try: - import simplejson as json -except ImportError: - import json +import json import logging from hashlib import sha256 import urlparse diff --git a/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh b/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh index 6838f7fa78cca9fb7babb6340f6fc6da8f28fc50..6071af92ebd9195daed088e78aa21eaed675fdb9 100755 --- a/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh +++ b/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh @@ -31,7 +31,7 @@ apt-get -y autoremove apt-get update apt-get -y dist-upgrade -PKGS_TO_INSTALL="adduser postgresql-client python python-dateutil python-decorator python-docutils python-feedparser python-imaging python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-werkzeug python-xlwt python-yaml postgresql python-gevent python-serial python-pip python-dev localepurge vim mc mg screen" +PKGS_TO_INSTALL="adduser postgresql-client python python-dateutil python-decorator python-docutils python-feedparser python-imaging python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests python-tz python-vatnumber python-vobject python-werkzeug python-xlwt python-yaml postgresql python-gevent python-serial python-pip python-dev localepurge vim mc mg screen" apt-get -y install ${PKGS_TO_INSTALL} diff --git a/addons/report/controllers/main.py b/addons/report/controllers/main.py index db1747e66abcd3b99c9d37be4ee0f717aabfc423..5620819c1a1bfe26d4189dc204f2f95c105545f6 100644 --- a/addons/report/controllers/main.py +++ b/addons/report/controllers/main.py @@ -5,7 +5,7 @@ from openerp.addons.web.http import Controller, route, request from openerp.addons.web.controllers.main import _serialize_exception, content_disposition from openerp.tools import html_escape -import simplejson +import json from werkzeug import exceptions, url_decode from werkzeug.test import Client from werkzeug.wrappers import BaseResponse @@ -29,11 +29,11 @@ class ReportController(Controller): if docids: docids = [int(i) for i in docids.split(',')] if data.get('options'): - data.update(simplejson.loads(data.pop('options'))) + data.update(json.loads(data.pop('options'))) if data.get('context'): # Ignore 'lang' here, because the context in data is the one from the webclient *but* if # the user explicitely wants to change the lang, this mechanism overwrites it. - data['context'] = simplejson.loads(data['context']) + data['context'] = json.loads(data['context']) if data['context'].get('lang'): del data['context']['lang'] context.update(data['context']) @@ -86,7 +86,7 @@ class ReportController(Controller): type [1] :returns: Response with a filetoken cookie and an attachment header """ - requestcontent = simplejson.loads(data) + requestcontent = json.loads(data) url, type = requestcontent[0], requestcontent[1] try: if type == 'qweb-pdf': @@ -124,7 +124,7 @@ class ReportController(Controller): 'message': "Odoo Server Error", 'data': se } - return request.make_response(html_escape(simplejson.dumps(error))) + return request.make_response(html_escape(json.dumps(error))) @route(['/report/check_wkhtmltopdf'], type='json', auth="user") def check_wkhtmltopdf(self): diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 29d168af5983802f0054810e7e8822d7e056dd09..77975d110063770cf1ce2e20ed2baa8a6f600e64 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -12,7 +12,7 @@ import datetime import hashlib import os import re -import simplejson +import json import sys import time import urllib2 @@ -53,7 +53,7 @@ else: loader = jinja2.PackageLoader('openerp.addons.web', "views") env = jinja2.Environment(loader=loader, autoescape=True) -env.filters["json"] = simplejson.dumps +env.filters["json"] = json.dumps # 1 week cache for asset bundles as advised by Google Page Speed BUNDLE_MAXAGE = 60 * 60 * 24 * 7 @@ -79,7 +79,7 @@ def serialize_exception(f): 'message': "Odoo Server Error", 'data': se } - return werkzeug.exceptions.InternalServerError(simplejson.dumps(error)) + return werkzeug.exceptions.InternalServerError(json.dumps(error)) return wrap def redirect_with_hash(*args, **kw): @@ -1121,7 +1121,7 @@ class Binary(http.Controller): ufile.content_type, base64.b64encode(data)] except Exception, e: args = [False, e.message] - return out % (simplejson.dumps(callback), simplejson.dumps(args)) + return out % (json.dumps(callback), json.dumps(args)) @http.route('/web/binary/upload_attachment', type='http', auth="user") @serialize_exception @@ -1147,7 +1147,7 @@ class Binary(http.Controller): except Exception: args = {'error': "Something horrible happened"} _logger.exception("Fail to upload attachment %s" % ufile.filename) - return out % (simplejson.dumps(callback), simplejson.dumps(args)) + return out % (json.dumps(callback), json.dumps(args)) @http.route([ '/web/binary/company_logo', @@ -1395,7 +1395,7 @@ class ExportFormat(object): raise NotImplementedError() def base(self, data, token): - params = simplejson.loads(data) + params = json.loads(data) model, fields, ids, domain, import_compat = \ operator.itemgetter('model', 'fields', 'ids', 'domain', 'import_compat')( @@ -1521,7 +1521,7 @@ class Reports(http.Controller): @http.route('/web/report', type='http', auth="user") @serialize_exception def index(self, action, token): - action = simplejson.loads(action) + action = json.loads(action) report_srv = request.session.proxy("report") context = dict(request.context) diff --git a/addons/web/controllers/pivot.py b/addons/web/controllers/pivot.py index 3ec3dbd91be8b7531323202df41ded6ea8d985a6..571cff942291e85b99a86a0982878bbf384cb0f5 100644 --- a/addons/web/controllers/pivot.py +++ b/addons/web/controllers/pivot.py @@ -1,5 +1,5 @@ from openerp import http -import simplejson +import json from openerp.http import request, serialize_exception as _serialize_exception from cStringIO import StringIO from collections import deque @@ -18,7 +18,7 @@ class TableExporter(http.Controller): @http.route('/web/pivot/export_xls', type='http', auth="user") def export_xls(self, data, token): - jdata = simplejson.loads(data) + jdata = json.loads(data) nbr_measures = jdata['nbr_measures'] workbook = xlwt.Workbook() worksheet = workbook.add_sheet(jdata['title'][:30]) diff --git a/addons/web_editor/models/ir_qweb.py b/addons/web_editor/models/ir_qweb.py index ab8b87969a45d10c70c9cbef168c63256ad30b67..e491087a86aff0691eeffa86a1a19dcad57fe8f9 100644 --- a/addons/web_editor/models/ir_qweb.py +++ b/addons/web_editor/models/ir_qweb.py @@ -9,12 +9,12 @@ Also, adds methods to convert values back to openerp models. import cStringIO import datetime import itertools +import json import logging import os import urllib2 import urlparse import re -import simplejson import hashlib import pytz @@ -165,7 +165,7 @@ class Contact(orm.AbstractModel): cr, uid, field_name, record, options, source_element, g_att, t_att, qweb_context, context=context) if getattr(record, field_name): - return itertools.chain(attrs, [('data-oe-contact-options', simplejson.dumps(options))]) + return itertools.chain(attrs, [('data-oe-contact-options', json.dumps(options))]) else: return attrs diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index b004215e1ff3158c06b5bd0af11c6b68afa4d17c..ff5829beae396abcb79e55835a0930794895e87d 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -3,7 +3,7 @@ from datetime import datetime import werkzeug.exceptions import werkzeug.urls import werkzeug.wrappers -import simplejson +import json import lxml from urllib2 import urlopen, URLError import base64 @@ -177,7 +177,7 @@ class WebsiteForum(http.Controller): fields=['id', 'name'], limit=int(l), ) - return simplejson.dumps(data) + return json.dumps(data) @http.route(['/forum/<model("forum.forum"):forum>/tag', '/forum/<model("forum.forum"):forum>/tag/<string:tag_char>'], type='http', auth="public", website=True) def tags(self, forum, tag_char=None, **post): @@ -367,7 +367,7 @@ class WebsiteForum(http.Controller): @http.route('/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/edit', type='http', auth="user", website=True) def post_edit(self, forum, post, **kwargs): tags = [dict(id=tag.id, name=tag.name) for tag in post.tag_ids] - tags = simplejson.dumps(tags) + tags = json.dumps(tags) values = self._prepare_forum_values(forum=forum) values.update({ 'tags': tags, diff --git a/debian/control b/debian/control index 75e40dfe59d5631753e8a6e09235dccd809ac9ae..f641e01c3dd72d8c7ed9c5778a26223c00ff7872 100644 --- a/debian/control +++ b/debian/control @@ -41,7 +41,6 @@ Depends: python-pypdf, python-reportlab, python-requests, - python-simplejson, python-suds, python-tz, python-vatnumber, diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index f06a7952165f10c78b4c44a4342cc1eb890e9b4e..b691abba1f41122afb2d5ed2ce3a7756d517d0a4 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -11,7 +11,7 @@ import re import time from operator import itemgetter -import simplejson +import json import werkzeug import HTMLParser from lxml import etree @@ -1048,7 +1048,7 @@ class view(osv.osv): keep_query=keep_query, request=request, # might be unbound if we're not in an httprequest context debug=request.debug if request else False, - json=simplejson, + json=json, quote_plus=werkzeug.url_quote_plus, time=time, datetime=datetime, @@ -1062,7 +1062,7 @@ class view(osv.osv): def get_modules_order(): if request: from openerp.addons.web.controllers.main import module_boot - return simplejson.dumps(module_boot()) + return json.dumps(module_boot()) return '[]' qcontext['get_modules_order'] = get_modules_order diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py index b5256847e5c3528df2326c650eb33e6bf8194417..6f890b5d4eed172ced2e4de398a568182a224758 100644 --- a/openerp/addons/base/res/res_currency.py +++ b/openerp/addons/base/res/res_currency.py @@ -9,7 +9,7 @@ from openerp import api, fields as fields2 from openerp import tools from openerp.osv import fields, osv from openerp.tools import float_round, float_is_zero, float_compare -import simplejson as json +import json CURRENCY_DISPLAY_PATTERN = re.compile(r'(\w+)\s*(?:\((.*)\))?') diff --git a/openerp/http.py b/openerp/http.py index 106ed4f625f4b4108f15d31ba68dfc4a59a0b363..b3b243e4367271aa6bf7452f0cffd25e21860196 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -27,7 +27,7 @@ from zlib import adler32 import babel.core import psycopg2 -import simplejson +import json import werkzeug.contrib.sessions import werkzeug.datastructures import werkzeug.exceptions @@ -529,10 +529,10 @@ class JsonRequest(WebRequest): # We need then to manage http sessions manually. response['session_id'] = self.session_id mime = 'application/javascript' - body = "%s(%s);" % (self.jsonp, simplejson.dumps(response),) + body = "%s(%s);" % (self.jsonp, json.dumps(response),) else: mime = 'application/json' - body = simplejson.dumps(response) + body = json.dumps(response) return Response( body, headers=[('Content-Type', mime), diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index a59708af082582130fba36455804ff1aaabea22a..0a474115d204d22534ba279fbc050f1aa48eec75 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -32,7 +32,7 @@ import openerp import openerp.tools as tools from openerp.tools.translate import _ from openerp.tools import float_repr, float_round, frozendict, html_sanitize -import simplejson +import json from openerp import SUPERUSER_ID, registry @contextmanager @@ -1674,10 +1674,10 @@ class serialized(_column): __slots__ = [] def _symbol_set_struct(val): - return simplejson.dumps(val) + return json.dumps(val) def _symbol_get_struct(self, val): - return simplejson.loads(val or '{}') + return json.loads(val or '{}') _symbol_c = '%s' _symbol_f = _symbol_set_struct diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 835e29da7f910b40eca102508fda373506ca01a8..7b4c983bcb04052bbae83826bf84e8a6dab22d83 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1,4 +1,4 @@ -import simplejson +import json from lxml import etree from ..exceptions import except_orm @@ -83,7 +83,7 @@ def simplify_modifiers(modifiers): def transfer_modifiers_to_node(modifiers, node): if modifiers: simplify_modifiers(modifiers) - node.set('modifiers', simplejson.dumps(modifiers)) + node.set('modifiers', json.dumps(modifiers)) def setup_modifiers(node, field=None, context=None, in_tree_view=False): """ Processes node attributes and field descriptors to generate @@ -118,12 +118,12 @@ def test_modifiers(what, expected): node = etree.fromstring(what) transfer_node_to_modifiers(node, modifiers) simplify_modifiers(modifiers) - json = simplejson.dumps(modifiers) + json = json.dumps(modifiers) assert json == expected, "%s != %s" % (json, expected) elif isinstance(what, dict): transfer_field_to_modifiers(what, modifiers) simplify_modifiers(modifiers) - json = simplejson.dumps(modifiers) + json = json.dumps(modifiers) assert json == expected, "%s != %s" % (json, expected) diff --git a/requirements.txt b/requirements.txt index 215b9ac13fba1cc2946ae7c03d3cf767802d6a87..a78b49ef51b5a7b5ca20630da0ca0a7fd696f9e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -33,7 +33,6 @@ pyusb==1.0.0b2 qrcode==5.1 reportlab==3.1.44 requests==2.6.0 -simplejson==3.6.5 six==1.9.0 suds-jurko==0.6 vatnumber==1.2 diff --git a/setup.cfg b/setup.cfg index 816d63a8304a271ec5e5ba64508993963b58e8da..cccec6c615c14772e324e81b5907cf6476c5961b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,7 +25,6 @@ requires = python-psycopg2 python-reportlab python-requests - python-simplejson python-vobject python-werkzeug python-yaml diff --git a/setup.py b/setup.py index 824c8075c803e321ebf994e49863099c31fe8245..bbb801133a4d7144eb86444168cd21ac61dd4a65 100644 --- a/setup.py +++ b/setup.py @@ -96,7 +96,6 @@ def py2exe_options(): 'reportlab', 'requests', 'select', - 'simplejson', 'smtplib', 'suds', 'uuid', @@ -160,7 +159,6 @@ setup( 'qrcode', 'reportlab', # windows binary pypi.python.org/pypi/reportlab 'requests', - 'simplejson', 'suds-jurko', 'vatnumber', 'vobject', diff --git a/setup/package.dfcentos b/setup/package.dfcentos index 8917a7cce434a07d02a50fd72ed866b01b42545c..d0f95a349ffd59096ee52e41e7cd234e141fb2ea 100644 --- a/setup/package.dfcentos +++ b/setup/package.dfcentos @@ -29,7 +29,6 @@ RUN yum install -d 0 -e 0 epel-release -y && \ python-psycopg2 \ python-reportlab \ python-requests \ - python-simplejson \ python-vobject \ python-werkzeug \ python-yaml \ diff --git a/setup/package.dfdebian b/setup/package.dfdebian index b84e7191aaa96697e93d501ceb2c8cee08c1ea90..00cd63f9f2599735cfee2c287c44e7b0fdeb8bcb 100644 --- a/setup/package.dfdebian +++ b/setup/package.dfdebian @@ -45,7 +45,6 @@ RUN apt-get update -qq && \ python-pypdf \ python-reportlab \ python-requests \ - python-simplejson \ python-suds \ python-tz \ python-vatnumber \