| Index: third_party/simplejson/setup.py
|
| diff --git a/third_party/simplejson/setup.py b/third_party/simplejson/setup.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..24f43bfcc0e7fa663d407e320d549e1901b58cd8
|
| --- /dev/null
|
| +++ b/third_party/simplejson/setup.py
|
| @@ -0,0 +1,122 @@
|
| +#!/usr/bin/env python
|
| +
|
| +from ez_setup import use_setuptools
|
| +import sys
|
| +if 'cygwin' in sys.platform.lower():
|
| + min_version='0.6c6'
|
| +else:
|
| + min_version='0.6a9'
|
| +try:
|
| + use_setuptools(min_version=min_version)
|
| +except TypeError:
|
| + # If a non-local ez_setup is already imported, it won't be able to
|
| + # use the min_version kwarg and will bail with TypeError
|
| + use_setuptools()
|
| +
|
| +from setuptools import setup, find_packages, Extension, Feature
|
| +from distutils.command.build_ext import build_ext
|
| +from distutils.errors import CCompilerError, DistutilsExecError, \
|
| + DistutilsPlatformError
|
| +
|
| +VERSION = '2.0.9'
|
| +DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python"
|
| +LONG_DESCRIPTION = """
|
| +simplejson is a simple, fast, complete, correct and extensible
|
| +JSON <http://json.org> encoder and decoder for Python 2.4+. It is
|
| +pure Python code with no dependencies, but includes an optional C
|
| +extension for a serious speed boost.
|
| +
|
| +simplejson was formerly known as simple_json, but changed its name to
|
| +comply with PEP 8 module naming guidelines.
|
| +
|
| +The encoder may be subclassed to provide serialization in any kind of
|
| +situation, without any special support by the objects to be serialized
|
| +(somewhat like pickle).
|
| +
|
| +The decoder can handle incoming JSON strings of any specified encoding
|
| +(UTF-8 by default).
|
| +"""
|
| +
|
| +CLASSIFIERS = filter(None, map(str.strip,
|
| +"""
|
| +Intended Audience :: Developers
|
| +License :: OSI Approved :: MIT License
|
| +Programming Language :: Python
|
| +Topic :: Software Development :: Libraries :: Python Modules
|
| +""".splitlines()))
|
| +
|
| +
|
| +speedups = Feature(
|
| + "options C speed-enhancement modules",
|
| + standard=True,
|
| + ext_modules = [
|
| + Extension("simplejson._speedups", ["simplejson/_speedups.c"]),
|
| + ],
|
| +)
|
| +
|
| +if sys.platform == 'win32' and sys.version_info > (2, 6):
|
| + # 2.6's distutils.msvc9compiler can raise an IOError when failing to
|
| + # find the compiler
|
| + ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError,
|
| + IOError)
|
| +else:
|
| + ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError)
|
| +
|
| +class BuildFailed(Exception):
|
| + pass
|
| +
|
| +class ve_build_ext(build_ext):
|
| + # This class allows C extension building to fail.
|
| +
|
| + def run(self):
|
| + try:
|
| + build_ext.run(self)
|
| + except DistutilsPlatformError, x:
|
| + raise BuildFailed()
|
| +
|
| + def build_extension(self, ext):
|
| + try:
|
| + build_ext.build_extension(self, ext)
|
| + except ext_errors, x:
|
| + raise BuildFailed()
|
| +
|
| +def run_setup(with_binary):
|
| + if with_binary:
|
| + features = {'speedups': speedups}
|
| + else:
|
| + features = {}
|
| +
|
| + setup(
|
| + name="simplejson",
|
| + version=VERSION,
|
| + description=DESCRIPTION,
|
| + long_description=LONG_DESCRIPTION,
|
| + classifiers=CLASSIFIERS,
|
| + author="Bob Ippolito",
|
| + author_email="bob@redivi.com",
|
| + url="http://undefined.org/python/#simplejson",
|
| + license="MIT License",
|
| + packages=find_packages(exclude=['ez_setup']),
|
| + platforms=['any'],
|
| + test_suite="simplejson.tests",
|
| + zip_safe=True,
|
| + features=features,
|
| + cmdclass={'build_ext': ve_build_ext},
|
| + )
|
| +
|
| +try:
|
| + run_setup(True)
|
| +except BuildFailed:
|
| + BUILD_EXT_WARNING = "WARNING: The C extension could not be compiled, speedups are not enabled."
|
| + print '*' * 75
|
| + print BUILD_EXT_WARNING
|
| + print "Failure information, if any, is above."
|
| + print "I'm retrying the build without the C extension now."
|
| + print '*' * 75
|
| +
|
| + run_setup(False)
|
| +
|
| + print '*' * 75
|
| + print BUILD_EXT_WARNING
|
| + print "Plain-Python installation succeeded."
|
| + print '*' * 75
|
|
|