Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: third_party/simplejson/setup.py

Issue 159607: Extension docs build script, gyp target and PRESUBMIT.PY check (Closed)
Patch Set: remove build step on mac Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/simplejson/setup.cfg ('k') | third_party/simplejson/simplejson.egg-info/PKG-INFO » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2
3 from ez_setup import use_setuptools
4 import sys
5 if 'cygwin' in sys.platform.lower():
6 min_version='0.6c6'
7 else:
8 min_version='0.6a9'
9 try:
10 use_setuptools(min_version=min_version)
11 except TypeError:
12 # If a non-local ez_setup is already imported, it won't be able to
13 # use the min_version kwarg and will bail with TypeError
14 use_setuptools()
15
16 from setuptools import setup, find_packages, Extension, Feature
17 from distutils.command.build_ext import build_ext
18 from distutils.errors import CCompilerError, DistutilsExecError, \
19 DistutilsPlatformError
20
21 VERSION = '2.0.9'
22 DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python"
23 LONG_DESCRIPTION = """
24 simplejson is a simple, fast, complete, correct and extensible
25 JSON <http://json.org> encoder and decoder for Python 2.4+. It is
26 pure Python code with no dependencies, but includes an optional C
27 extension for a serious speed boost.
28
29 simplejson was formerly known as simple_json, but changed its name to
30 comply with PEP 8 module naming guidelines.
31
32 The encoder may be subclassed to provide serialization in any kind of
33 situation, without any special support by the objects to be serialized
34 (somewhat like pickle).
35
36 The decoder can handle incoming JSON strings of any specified encoding
37 (UTF-8 by default).
38 """
39
40 CLASSIFIERS = filter(None, map(str.strip,
41 """
42 Intended Audience :: Developers
43 License :: OSI Approved :: MIT License
44 Programming Language :: Python
45 Topic :: Software Development :: Libraries :: Python Modules
46 """.splitlines()))
47
48
49 speedups = Feature(
50 "options C speed-enhancement modules",
51 standard=True,
52 ext_modules = [
53 Extension("simplejson._speedups", ["simplejson/_speedups.c"]),
54 ],
55 )
56
57 if sys.platform == 'win32' and sys.version_info > (2, 6):
58 # 2.6's distutils.msvc9compiler can raise an IOError when failing to
59 # find the compiler
60 ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError,
61 IOError)
62 else:
63 ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError)
64
65 class BuildFailed(Exception):
66 pass
67
68 class ve_build_ext(build_ext):
69 # This class allows C extension building to fail.
70
71 def run(self):
72 try:
73 build_ext.run(self)
74 except DistutilsPlatformError, x:
75 raise BuildFailed()
76
77 def build_extension(self, ext):
78 try:
79 build_ext.build_extension(self, ext)
80 except ext_errors, x:
81 raise BuildFailed()
82
83 def run_setup(with_binary):
84 if with_binary:
85 features = {'speedups': speedups}
86 else:
87 features = {}
88
89 setup(
90 name="simplejson",
91 version=VERSION,
92 description=DESCRIPTION,
93 long_description=LONG_DESCRIPTION,
94 classifiers=CLASSIFIERS,
95 author="Bob Ippolito",
96 author_email="bob@redivi.com",
97 url="http://undefined.org/python/#simplejson",
98 license="MIT License",
99 packages=find_packages(exclude=['ez_setup']),
100 platforms=['any'],
101 test_suite="simplejson.tests",
102 zip_safe=True,
103 features=features,
104 cmdclass={'build_ext': ve_build_ext},
105 )
106
107 try:
108 run_setup(True)
109 except BuildFailed:
110 BUILD_EXT_WARNING = "WARNING: The C extension could not be compiled, speedup s are not enabled."
111 print '*' * 75
112 print BUILD_EXT_WARNING
113 print "Failure information, if any, is above."
114 print "I'm retrying the build without the C extension now."
115 print '*' * 75
116
117 run_setup(False)
118
119 print '*' * 75
120 print BUILD_EXT_WARNING
121 print "Plain-Python installation succeeded."
122 print '*' * 75
OLDNEW
« no previous file with comments | « third_party/simplejson/setup.cfg ('k') | third_party/simplejson/simplejson.egg-info/PKG-INFO » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698