mirror of
https://github.com/ultrajson/ultrajson.git
synced 2024-11-24 05:12:02 +01:00
78 lines
2.2 KiB
Python
78 lines
2.2 KiB
Python
try:
|
|
from setuptools import setup, Extension
|
|
except ImportError:
|
|
from distutils.core import setup, Extension
|
|
import distutils.sysconfig
|
|
import shutil
|
|
import os.path
|
|
import re
|
|
import sys
|
|
|
|
CLASSIFIERS = filter(None, map(str.strip,
|
|
"""
|
|
Development Status :: 5 - Production/Stable
|
|
Intended Audience :: Developers
|
|
License :: OSI Approved :: BSD License
|
|
Programming Language :: C
|
|
Programming Language :: Python :: 2.4
|
|
Programming Language :: Python :: 2.5
|
|
Programming Language :: Python :: 2.6
|
|
Programming Language :: Python :: 2.7
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3.2
|
|
""".splitlines()))
|
|
|
|
try:
|
|
shutil.rmtree("./build")
|
|
except(OSError):
|
|
pass
|
|
|
|
module1 = Extension('ujson',
|
|
sources = ['./python/ujson.c',
|
|
'./python/objToJSON.c',
|
|
'./python/JSONtoObj.c',
|
|
'./lib/ultrajsonenc.c',
|
|
'./lib/ultrajsondec.c'],
|
|
include_dirs = ['./python', './lib'],
|
|
extra_compile_args=['-D_GNU_SOURCE'])
|
|
|
|
def get_version():
|
|
filename = os.path.join(os.path.dirname(__file__), './python/version.h')
|
|
file = None
|
|
try:
|
|
file = open(filename)
|
|
header = file.read()
|
|
finally:
|
|
if file:
|
|
file.close()
|
|
m = re.search(r'#define\s+UJSON_VERSION\s+"(\d+\.\d+(?:\.\d+)?)"', header)
|
|
assert m, "version.h must contain UJSON_VERSION macro"
|
|
return m.group(1)
|
|
|
|
f = open('README.rst')
|
|
try:
|
|
README = f.read()
|
|
finally:
|
|
f.close()
|
|
|
|
setup (name = 'ujson',
|
|
version = get_version(),
|
|
description = "Ultra fast JSON encoder and decoder for Python",
|
|
long_description = README,
|
|
ext_modules = [module1],
|
|
author="Jonas Tarnstrom",
|
|
author_email="jonas.tarnstrom@esn.me",
|
|
download_url="http://github.com/esnme/ultrajson",
|
|
license="BSD License",
|
|
platforms=['any'],
|
|
url="http://www.esn.me",
|
|
classifiers=CLASSIFIERS,
|
|
)
|
|
|
|
if sys.version_info[0] >= 3:
|
|
print( "*" * 100)
|
|
print("If you want to run the tests be sure to run 2to3 on them first, "
|
|
"e.g. `2to3 -w tests/tests.py`.")
|
|
print("*" * 100)
|
|
|