From d6bab3013ba57b263ceeffdcb36f609533117de3 Mon Sep 17 00:00:00 2001 From: Brandon King Date: Thu, 2 Jul 2009 01:29:34 +0000 Subject: [PATCH] Made Diane's suggest json problem fix for python 2.5/2.6 support... now using simplejson for <= python 2.5. --- htsworkflow/frontend/bcmagic/views.py | 19 ++++++++------ htsworkflow/frontend/inventory/views.py | 9 ++++--- htsworkflow/util/jsonutil.py | 33 ------------------------- 3 files changed, 18 insertions(+), 43 deletions(-) delete mode 100644 htsworkflow/util/jsonutil.py diff --git a/htsworkflow/frontend/bcmagic/views.py b/htsworkflow/frontend/bcmagic/views.py index 835ccf4..9d145b6 100644 --- a/htsworkflow/frontend/bcmagic/views.py +++ b/htsworkflow/frontend/bcmagic/views.py @@ -6,7 +6,12 @@ from django.core.exceptions import ObjectDoesNotExist from htsworkflow.frontend.bcmagic import models from htsworkflow.frontend.bcmagic.utils import report_error, redirect_to_url from htsworkflow.frontend.bcmagic.plugin import bcm_plugin_processor -from htsworkflow.util.jsonutil import encode_json +#from htsworkflow.util.jsonutil import encode_json + +try: + import json +except ImportError, e: + import simplejson as json import re @@ -90,8 +95,8 @@ def magic(request): if text is None or text.strip() == '': d['mode'] = 'Error' d['status'] = 'Did not recieve text' - j = json.JSONEncoder() - return HttpResponse(j.encode(d), 'text/plain') + + return HttpResponse(json.dumps(d), 'text/plain') # Did not receive bcm_mode error if bcm_mode is None or bcm_mode.strip() == '': @@ -117,7 +122,7 @@ def magic(request): else: d = __magic_process(text) - return HttpResponse(encode_json(d), 'text/plain') + return HttpResponse(json.dumps(d), 'text/plain') @@ -129,11 +134,11 @@ def json_test(request): else: text = None - #return HttpResponse(encode_json(request.POST.items()), 'text/plain') + #return HttpResponse(json.dumps(request.POST.items()), 'text/plain') if text is None or text.strip() == '': d['mode'] = 'Error' d['status'] = 'Did not recieve text' - return HttpResponse(encode_json(d), 'text/plain') + return HttpResponse(json.dumps(d), 'text/plain') if text.split('|')[0] == 'url': d['mode'] = 'redirect' @@ -142,4 +147,4 @@ def json_test(request): d['msg'] = 'Recieved text: %s' % (text) d['mode'] = 'clear' - return HttpResponse(json_encode(d), 'text/plain') + return HttpResponse(json.dumps(d), 'text/plain') diff --git a/htsworkflow/frontend/inventory/views.py b/htsworkflow/frontend/inventory/views.py index 5dd3655..7049320 100644 --- a/htsworkflow/frontend/inventory/views.py +++ b/htsworkflow/frontend/inventory/views.py @@ -3,7 +3,7 @@ from htsworkflow.frontend.experiments.models import FlowCell from htsworkflow.frontend.bcmagic.forms import BarcodeMagicForm from htsworkflow.frontend.bcprinter.util import print_zpl_socket from htsworkflow.frontend import settings -from htsworkflow.util.jsonutil import encode_json +#from htsworkflow.util.jsonutil import encode_json from django.core.exceptions import ObjectDoesNotExist from django.http import HttpResponse, HttpResponseRedirect @@ -12,7 +12,10 @@ from django.template import RequestContext from django.template.loader import get_template from django.contrib.auth.decorators import login_required - +try: + import json +except ImportError, e: + import simplejson as json INVENTORY_CONTEXT_DEFAULTS = { 'app_name': 'Inventory Tracker', @@ -71,7 +74,7 @@ def data_items(request): d['rows'] = rows - return HttpResponse(encode_json(d), content_type="application/javascript") + return HttpResponse(json.dumps(d), content_type="application/javascript") @login_required def index(request): diff --git a/htsworkflow/util/jsonutil.py b/htsworkflow/util/jsonutil.py deleted file mode 100644 index 84dc599..0000000 --- a/htsworkflow/util/jsonutil.py +++ /dev/null @@ -1,33 +0,0 @@ -import json - -_ENCODER_METHOD = 1 -_WRITE_METHOD = 2 - -JSON_METHOD = None - -try: - json.write({}) -except: - JSON_METHOD = _ENCODER_METHOD - -try: - json.JSONEncoder() -except: - JSON_METHOD = _WRITE_METHOD - -assert JSON_METHOD is not None - - -def encode_json(data): - """ - encodes json data given whatever json module we have access to (2.6 builtin or python-json) - """ - if JSON_METHOD == _ENCODER_METHOD: - j = json.JSONEncoder() - return j.encode(data) - - elif JSON_METHOD == _WRITE_METHOD: - return json.write(data) - - msg = "JSON_METHOD of value %s not supported." % (JSON_METHOD) - raise ValueError, msg \ No newline at end of file -- 2.30.2