Commits

Rune Halvorsen committed ab3a8d0

Split up readme into separate parts.
Added readme as longdesc

Comments (0)

Files changed (4)

+0.1:
+
+ * Initial release
+
+0.1.1
+
+ * Added benchmarking script
+ * Added support for more serializer modules
+
+0.2
+
+ * Added exception handling so that all supported modules will result in the
+   same exceptions being thrown. The exceptions are the same that are used
+   by the JSON module from python 2.7, TypeError for serialize and
+   ValueError for deserialize.
+ * '''NOTE''' API changed. the implementation property is now an object, not
+   a string
+ * Rewrote module loading code, so it's now easier to add and rearrange
+   JSON modules
+This software is licensed under the ``New BSD License``:
+
+Copyright (c) 2009, by the authors
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+Neither the name of the authors nor the names of its contributors may be used
+to endorse or promote products derived from this software without specific
+prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+##############################
+anyjson - JSON library wrapper
+##############################
+
 Overview
 --------
 
-Imports the best available JSON encoder and decoder from any installed json
-module.
+Anyjson loads whichever is the fastest JSON module installed and provides
+a uniform API regardless of which JSON implementation is used.
 
 Originally part of carrot (http://github.com/ask/carrot/)
 
-Authors
+Examples
+--------
+
+To serialize a python object to a JSON string, call the `serialize` function:
+
+>>> import anyjson
+>>> anyjson.serialize(["test", 1, {"foo": 3.141592}, "bar"])
+'["test", 1, {"foo": 3.141592}, "bar"]'
+
+Conversion the other way is done with the `deserialize` call.
+
+>>> anyjson.deserialize("""["test", 1, {"foo": 3.141592}, "bar"]""")
+['test', 1, {'foo': 3.1415920000000002}, 'bar']
+
+Regardless of the JSON implementation used, the exceptions will be the same.
+This means that trying to serialize something not compatible with JSON
+raises a TypeError:
+
+>>> anyjson.serialize([object()])
+Traceback (most recent call last):
+  <snipped traceback>
+TypeError: object is not JSON encodable
+
+And deserializing a JSON string with invalid JSON raises a ValueError:
+
+>>> anyjson.deserialize("""['missing square brace!""")
+Traceback (most recent call last):
+  <snipped traceback>
+ValueError: cannot parse JSON description
+
+
+Contact
 -------
 
-Rune F. Halvorsen <runefh@gmail.com>
-Ask Solem <askh@opera.com>
+The module is maintaned by Rune F. Halvorsen <runefh@gmail.com>.
+The project resides at http://bitbucket.org/runeh/anyjson . Bugs and feature
+requests can be submitted there. Patches are also very welcome.
 
 Changelog
 ---------
 
-0.1:
-
- * Initial release
-
-0.1.1
-
- * Added benchmarking script
- * Added support for more serializer modules
-
-0.2
-
- * Added exception handling so that all supported modules will result in the
-   same exceptions being thrown. The exceptions are the same that are used
-   by the JSON module from python 2.7, TypeError for serialize and
-   ValueError for deserialize.
- * '''NOTE''' API changed. the implementation property is now an object, not
-   a string
- * Rewrote module loading code, so it's now easier to add and rearrange
-   JSON modules
+See CHANGELOG file
 
 License
 -------
 
-This software is licensed under the ``New BSD License``:
-
-Copyright (c) 2009, by the authors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-Neither the name of the authors nor the names of its contributors may be used
-to endorse or promote products derived from this software without specific
-prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
+see the LICENSE file
-from distutils.core import setup
+from setuptools import setup
 
 import anyjson
 author, email = anyjson.__author__[:-1].split(' <')
 setup(name='anyjson',
       version=anyjson.__version__,
       description=anyjson.__doc__,
+      long_description=open("README").read(),
       classifiers=[
             'License :: OSI Approved :: BSD License',
             'Intended Audience :: Developers',