summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRune Halvorsen <runefh@gmail.com>2009-07-22 23:44:29 +0200
committerRune Halvorsen <runefh@gmail.com>2009-07-22 23:44:29 +0200
commit59816435ced9616abde1a41506007703df0f2fb2 (patch)
tree80544ab681ef1139831421871a6bf09de35c59c2
parent717da58bd5b608817afcc3c5fd40294a4a54baa3 (diff)
downloadanyjson-59816435ced9616abde1a41506007703df0f2fb2.tar.gz
Moved stuff into the meta module, fixes #1
Added test_suite thingy to setup.py
-rw-r--r--anyjson/__init__.py37
-rw-r--r--anyjson/metadata.py30
-rw-r--r--setup.py13
3 files changed, 42 insertions, 38 deletions
diff --git a/anyjson/__init__.py b/anyjson/__init__.py
index 7578c61..4f4fb48 100644
--- a/anyjson/__init__.py
+++ b/anyjson/__init__.py
@@ -1,35 +1,8 @@
-"""
-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
"""
@@ -137,5 +110,5 @@ else:
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)
diff --git a/anyjson/metadata.py b/anyjson/metadata.py
index e69de29..a23b135 100644
--- a/anyjson/metadata.py
+++ b/anyjson/metadata.py
@@ -0,0 +1,30 @@
+"""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"
diff --git a/setup.py b/setup.py
index 00b7e64..f1e6a62 100644
--- a/setup.py
+++ b/setup.py
@@ -1,11 +1,11 @@
-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',
@@ -17,7 +17,8 @@ setup(name='anyjson',
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',
)