From 59816435ced9616abde1a41506007703df0f2fb2 Mon Sep 17 00:00:00 2001 From: Rune Halvorsen Date: Wed, 22 Jul 2009 23:44:29 +0200 Subject: Moved stuff into the meta module, fixes #1 Added test_suite thingy to setup.py --- anyjson/__init__.py | 37 +++++-------------------------------- anyjson/metadata.py | 30 ++++++++++++++++++++++++++++++ setup.py | 13 +++++++------ 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 " -__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 " +__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', ) -- cgit v1.2.1