Hello community,
here is the log from the commit of package python3-simplejson for
openSUSE:Factory checked in at 2016-11-03 12:57:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-simplejson (Old)
and /work/SRC/openSUSE:Factory/.python3-simplejson.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-simplejson"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-simplejson/python3-simplejson.changes
2016-10-26 21:47:20.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python3-simplejson.new/python3-simplejson.changes
2016-11-03 12:58:00.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Oct 29 16:46:24 UTC 2016 - [email protected]
+
+- update to version 3.10.0:
+ * Add RawJSON class to allow a faster path for already encoded JSON.
+ https://github.com/simplejson/simplejson/pull/143
+
+-------------------------------------------------------------------
Old:
----
simplejson-3.9.0.tar.gz
New:
----
simplejson-3.10.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-simplejson.spec ++++++
--- /var/tmp/diff_new_pack.yh9qBX/_old 2016-11-03 12:58:01.000000000 +0100
+++ /var/tmp/diff_new_pack.yh9qBX/_new 2016-11-03 12:58:01.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-simplejson
-Version: 3.9.0
+Version: 3.10.0
Release: 0
Url: http://github.com/simplejson/simplejson
Summary: Simple, fast, extensible JSON encoder/decoder for Python
++++++ simplejson-3.9.0.tar.gz -> simplejson-3.10.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/CHANGES.txt
new/simplejson-3.10.0/CHANGES.txt
--- old/simplejson-3.9.0/CHANGES.txt 2016-10-21 13:37:05.000000000 +0200
+++ new/simplejson-3.10.0/CHANGES.txt 2016-10-28 11:45:34.000000000 +0200
@@ -1,3 +1,8 @@
+Version 3.10.0 released 2016-10-28
+
+* Add RawJSON class to allow a faster path for already encoded JSON.
+ https://github.com/simplejson/simplejson/pull/143
+
Version 3.9.0 released 2016-10-21
* Workaround for bad behavior in string subclasses
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/PKG-INFO
new/simplejson-3.10.0/PKG-INFO
--- old/simplejson-3.9.0/PKG-INFO 2016-10-21 13:38:01.000000000 +0200
+++ new/simplejson-3.10.0/PKG-INFO 2016-10-28 12:01:25.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: simplejson
-Version: 3.9.0
+Version: 3.10.0
Summary: Simple, fast, extensible JSON encoder/decoder for Python
Home-page: http://github.com/simplejson/simplejson
Author: Bob Ippolito
@@ -41,7 +41,6 @@
is not maintained, and should only be used as a last resort.
.. _python2.2: https://github.com/simplejson/simplejson/tree/python2.2
- https://github.com/simplejson/simplejson/tree/python2.2
Platform: any
Classifier: Development Status :: 5 - Production/Stable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/README.rst
new/simplejson-3.10.0/README.rst
--- old/simplejson-3.9.0/README.rst 2016-10-21 04:58:09.000000000 +0200
+++ new/simplejson-3.10.0/README.rst 2016-10-21 14:48:19.000000000 +0200
@@ -33,4 +33,3 @@
is not maintained, and should only be used as a last resort.
.. _python2.2: https://github.com/simplejson/simplejson/tree/python2.2
-https://github.com/simplejson/simplejson/tree/python2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/conf.py
new/simplejson-3.10.0/conf.py
--- old/simplejson-3.9.0/conf.py 2016-10-21 09:55:00.000000000 +0200
+++ new/simplejson-3.10.0/conf.py 2016-10-28 11:25:45.000000000 +0200
@@ -42,9 +42,9 @@
# other places throughout the built documents.
#
# The short X.Y version.
-version = '3.9'
+version = '3.10'
# The full version, including alpha/beta/rc tags.
-release = '3.9.0'
+release = '3.10.0'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/scripts/artifacts.py
new/simplejson-3.10.0/scripts/artifacts.py
--- old/simplejson-3.9.0/scripts/artifacts.py 2016-02-15 21:22:25.000000000
+0100
+++ new/simplejson-3.10.0/scripts/artifacts.py 2016-10-22 01:59:09.000000000
+0200
@@ -3,9 +3,13 @@
except ImportError:
from urllib import urlopen
+import glob
import io
import json
+import os
+import re
import subprocess
+import sys
def get_json(url):
@@ -38,10 +42,39 @@
for asset in release['assets']:
download_file(asset['browser_download_url'],
'dist/{name}'.format(**asset))
+def get_version():
+ return subprocess.check_output([sys.executable, 'setup.py',
'--version']).strip()
+
+def artifact_matcher(version):
+ return
re.compile('^simplejson-{}.*\\.(exe|whl)$'.format(re.escape(version)))
+
+def sign_artifacts(version):
+ artifacts = set(os.listdir('dist'))
+ pattern = artifact_matcher(version)
+ for fn in artifacts:
+ if pattern.search(fn) and '{}.asc'.format(fn) not in artifacts:
+ sign_artifact(os.path.join('dist', fn))
+
+def sign_artifact(path):
+ print(' '.join(['gpg', '--detach-sign', '-a', path]))
+ subprocess.check_call(['gpg', '--detach-sign', '-a', path])
+
+def upload_artifacts(version):
+ artifacts = set(os.listdir('dist'))
+ pattern = artifact_matcher(version)
+ args = ['twine', 'upload']
+ for fn in artifacts:
+ if pattern.search(fn):
+ filename = os.path.join('dist', fn)
+ args.extend([filename, filename + '.asc'])
+ subprocess.check_call(args)
def main():
download_appveyor_artifacts()
download_github_artifacts()
+ version = get_version()
+ sign_artifacts(version)
+ upload_artifacts(version)
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/setup.py
new/simplejson-3.10.0/setup.py
--- old/simplejson-3.9.0/setup.py 2016-10-21 09:55:07.000000000 +0200
+++ new/simplejson-3.10.0/setup.py 2016-10-28 11:25:45.000000000 +0200
@@ -11,7 +11,7 @@
DistutilsPlatformError
IS_PYPY = hasattr(sys, 'pypy_translation_info')
-VERSION = '3.9.0'
+VERSION = '3.10.0'
DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python"
with open('README.rst', 'r') as f:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson/__init__.py
new/simplejson-3.10.0/simplejson/__init__.py
--- old/simplejson-3.9.0/simplejson/__init__.py 2016-10-21 09:55:12.000000000
+0200
+++ new/simplejson-3.10.0/simplejson/__init__.py 2016-10-28
11:25:45.000000000 +0200
@@ -97,7 +97,7 @@
Expecting property name: line 1 column 3 (char 2)
"""
from __future__ import absolute_import
-__version__ = '3.9.0'
+__version__ = '3.10.0'
__all__ = [
'dump', 'dumps', 'load', 'loads',
'JSONDecoder', 'JSONDecodeError', 'JSONEncoder',
@@ -110,7 +110,7 @@
from .scanner import JSONDecodeError
from .decoder import JSONDecoder
-from .encoder import JSONEncoder, JSONEncoderForHTML
+from .encoder import JSONEncoder, JSONEncoderForHTML, RawJSON
def _import_OrderedDict():
import collections
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson/_speedups.c
new/simplejson-3.10.0/simplejson/_speedups.c
--- old/simplejson-3.9.0/simplejson/_speedups.c 2016-05-09 03:11:08.000000000
+0200
+++ new/simplejson-3.10.0/simplejson/_speedups.c 2016-10-28
11:25:45.000000000 +0200
@@ -245,6 +245,8 @@
encoder_dealloc(PyObject *self);
static int
encoder_clear(PyObject *self);
+static int
+is_raw_json(PyObject *obj);
static PyObject *
encoder_stringify_key(PyEncoderObject *s, PyObject *key);
static int
@@ -277,6 +279,20 @@
#define MIN_EXPANSION 6
+static PyObject* RawJSONType;
+static int
+is_raw_json(PyObject *obj)
+{
+ if (RawJSONType == NULL) {
+ PyObject *encoder_module = PyImport_ImportModule("simplejson.encoder");
+ RawJSONType = PyObject_GetAttrString(encoder_module, "RawJSON");
+ Py_DECREF(encoder_module);
+ if (RawJSONType == NULL)
+ return 0;
+ }
+ return PyObject_IsInstance(obj, RawJSONType) ? 1 : 0;
+}
+
static int
JSON_Accu_Init(JSON_Accu *acc)
{
@@ -2868,6 +2884,12 @@
if (encoded != NULL)
rv = _steal_accumulate(rval, encoded);
}
+ else if (is_raw_json(obj))
+ {
+ PyObject *encoded = PyObject_GetAttrString(obj, "encoded_json");
+ if (encoded != NULL)
+ rv = _steal_accumulate(rval, encoded);
+ }
else if (PyInt_Check(obj) || PyLong_Check(obj)) {
PyObject *encoded;
if (PyInt_CheckExact(obj) || PyLong_CheckExact(obj)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson/encoder.py
new/simplejson-3.10.0/simplejson/encoder.py
--- old/simplejson-3.9.0/simplejson/encoder.py 2016-10-21 09:52:45.000000000
+0200
+++ new/simplejson-3.10.0/simplejson/encoder.py 2016-10-28 11:25:45.000000000
+0200
@@ -39,6 +39,14 @@
FLOAT_REPR = repr
+class RawJSON(object):
+ """Wrap an encoded JSON document for direct embedding in the output
+
+ """
+ def __init__(self, encoded_json):
+ self.encoded_json = encoded_json
+
+
def encode_basestring(s, _PY3=PY3, _q=u('"')):
"""Return a JSON representation of a Python string
@@ -472,6 +480,8 @@
if (isinstance(value, string_types) or
(_PY3 and isinstance(value, binary_type))):
yield buf + _encoder(value)
+ elif isinstance(value, RawJSON):
+ yield buf + value.encoded_json
elif value is None:
yield buf + 'null'
elif value is True:
@@ -590,6 +600,8 @@
if (isinstance(value, string_types) or
(_PY3 and isinstance(value, binary_type))):
yield _encoder(value)
+ elif isinstance(value, RawJSON):
+ yield value.encoded_json
elif value is None:
yield 'null'
elif value is True:
@@ -632,6 +644,8 @@
if (isinstance(o, string_types) or
(_PY3 and isinstance(o, binary_type))):
yield _encoder(o)
+ elif isinstance(o, RawJSON):
+ yield o.encoded_json
elif o is None:
yield 'null'
elif o is True:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson/tests/__init__.py
new/simplejson-3.10.0/simplejson/tests/__init__.py
--- old/simplejson-3.9.0/simplejson/tests/__init__.py 2016-10-21
08:16:35.000000000 +0200
+++ new/simplejson-3.10.0/simplejson/tests/__init__.py 2016-10-28
11:25:45.000000000 +0200
@@ -65,6 +65,7 @@
'simplejson.tests.test_tool',
'simplejson.tests.test_for_json',
'simplejson.tests.test_subclass',
+ 'simplejson.tests.test_raw_json',
]))
suite = get_suite()
import simplejson
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson/tests/test_raw_json.py
new/simplejson-3.10.0/simplejson/tests/test_raw_json.py
--- old/simplejson-3.9.0/simplejson/tests/test_raw_json.py 1970-01-01
01:00:00.000000000 +0100
+++ new/simplejson-3.10.0/simplejson/tests/test_raw_json.py 2016-10-28
11:25:45.000000000 +0200
@@ -0,0 +1,47 @@
+import unittest
+import simplejson as json
+
+dct1 = {
+ 'key1': 'value1'
+}
+
+dct2 = {
+ 'key2': 'value2',
+ 'd1': dct1
+}
+
+dct3 = {
+ 'key2': 'value2',
+ 'd1': json.dumps(dct1)
+}
+
+dct4 = {
+ 'key2': 'value2',
+ 'd1': json.RawJSON(json.dumps(dct1))
+}
+
+
+class TestRawJson(unittest.TestCase):
+
+ def test_normal_str(self):
+ self.assertNotEqual(json.dumps(dct2), json.dumps(dct3))
+
+ def test_raw_json_str(self):
+ self.assertEqual(json.dumps(dct2), json.dumps(dct4))
+ self.assertEqual(dct2, json.loads(json.dumps(dct4)))
+
+ def test_list(self):
+ self.assertEqual(
+ json.dumps([dct2]),
+ json.dumps([json.RawJSON(json.dumps(dct2))]))
+ self.assertEqual(
+ [dct2],
+ json.loads(json.dumps([json.RawJSON(json.dumps(dct2))])))
+
+ def test_direct(self):
+ self.assertEqual(
+ json.dumps(dct2),
+ json.dumps(json.RawJSON(json.dumps(dct2))))
+ self.assertEqual(
+ dct2,
+ json.loads(json.dumps(json.RawJSON(json.dumps(dct2)))))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson.egg-info/PKG-INFO
new/simplejson-3.10.0/simplejson.egg-info/PKG-INFO
--- old/simplejson-3.9.0/simplejson.egg-info/PKG-INFO 2016-10-21
13:38:01.000000000 +0200
+++ new/simplejson-3.10.0/simplejson.egg-info/PKG-INFO 2016-10-28
12:01:25.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: simplejson
-Version: 3.9.0
+Version: 3.10.0
Summary: Simple, fast, extensible JSON encoder/decoder for Python
Home-page: http://github.com/simplejson/simplejson
Author: Bob Ippolito
@@ -41,7 +41,6 @@
is not maintained, and should only be used as a last resort.
.. _python2.2: https://github.com/simplejson/simplejson/tree/python2.2
- https://github.com/simplejson/simplejson/tree/python2.2
Platform: any
Classifier: Development Status :: 5 - Production/Stable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/simplejson-3.9.0/simplejson.egg-info/SOURCES.txt
new/simplejson-3.10.0/simplejson.egg-info/SOURCES.txt
--- old/simplejson-3.9.0/simplejson.egg-info/SOURCES.txt 2016-10-21
13:38:01.000000000 +0200
+++ new/simplejson-3.10.0/simplejson.egg-info/SOURCES.txt 2016-10-28
12:01:25.000000000 +0200
@@ -40,6 +40,7 @@
simplejson/tests/test_pass1.py
simplejson/tests/test_pass2.py
simplejson/tests/test_pass3.py
+simplejson/tests/test_raw_json.py
simplejson/tests/test_recursion.py
simplejson/tests/test_scanstring.py
simplejson/tests/test_separators.py