Commits

Rune Halvorsen committed 30cd365

Moved stuff into the meta module, fixes #1
Added test_suite thingy to setup.py

Comments (0)

Files changed (3)

anyjson/__init__.py

-"""
-Wraps the best available JSON implementation available in a common interface
-"""
-
-__version__ = "0.2.1"
-__author__ = "Rune Halvorsen <runefh@gmail.com>"
-__homepage__ = "http://bitbucket.org/runeh/anyjson/"
-__docformat__ = "restructuredtext"
-
-"""
-
-.. function:: serialize(obj)
-
-    Serialize the object to JSON.
-
-.. function:: deserialize(str)
-
-    Deserialize JSON-encoded object to a Python object.
-
-.. function:: force_implementation(name)
-
-    Load a specific json module. This is useful for testing and not much else
-
-.. attribute:: implementation
-
-    The json implementation object. This is probably not useful to you,
-    except to get the name of the implementation in use. The name is
-    available through `implementation.name`.
-"""
-
+from metadata import *
 import sys
 
+# explicitly pull in docstring from metadata. see comments there for why.
+__doc__ = metadata.__doc__
 implementation = None
 
 """
         else:
             raise ImportError("No supported JSON module found")
 
-        serialize = lambda value: implementation.serialize(value)
-        deserialize = lambda value: implementation.deserialize(value)
+    serialize = lambda value: implementation.serialize(value)
+    deserialize = lambda value: implementation.deserialize(value)

anyjson/metadata.py

+"""Wraps the best available JSON implementation available in a common
+interface
+
+.. function:: serialize(obj)
+
+    Serialize the object to JSON.
+
+.. function:: deserialize(str)
+
+    Deserialize JSON-encoded object to a Python object.
+
+.. function:: force_implementation(name)
+
+    Load a specific json module. This is useful for testing and not much else
+
+.. attribute:: implementation
+
+    The json implementation object. This is probably not useful to you,
+    except to get the name of the implementation in use. The name is
+    available through `implementation.name`.
+"""
+
+# Note: This module is neccessary so we can load the metadata in setup.py
+# without risking that the module loading fails. It will fail if the user
+# has no json module installed, causing ImportError when importing anyjson
+
+__version__ = "0.2.1"
+__author__ = "Rune Halvorsen <runefh@gmail.com>"
+__homepage__ = "http://bitbucket.org/runeh/anyjson/"
+__docformat__ = "restructuredtext"
-from setuptools import setup
+from setuptools import setup, find_packages
 
-import anyjson
-author, email = anyjson.__author__[:-1].split(' <')
+import anyjson.metadata as meta
+author, email = meta.__author__[:-1].split(' <')
 
 setup(name='anyjson',
-      version=anyjson.__version__,
-      description=anyjson.__doc__,
+      version=meta.__version__,
+      description=meta.__doc__,
       long_description=open("README").read(),
       classifiers=[
             'License :: OSI Approved :: BSD License',
       author_email=email,
       url='http://bitbucket.org/runeh/anyjson',
       license='BSD',
-      py_modules=['anyjson'],
+      packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
       zip_safe=False,
       platforms=["any"],
+      test_suite = 'nose.collector',
 )