1
0
mirror of https://github.com/ultrajson/ultrajson.git synced 2024-11-24 05:12:02 +01:00
ultrajson/setup.py
2013-05-23 17:27:23 +03:00

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)