pyModeS/setup.py

102 lines
2.7 KiB
Python
Raw Normal View History

"""A setuptools based setup module.
See:
https://packaging.python.org/en/latest/distributing.html
https://github.com/pypa/sampleproject
2017-03-22 01:14:30 +08:00
Steps for deploying a new version:
2017-03-22 01:14:30 +08:00
1. Increase the version number
2. remove the old deployment under [dist] and [build] folder
2017-03-22 01:14:30 +08:00
3. run: python setup.py sdist
4. twine upload dist/*
"""
2022-12-04 07:04:55 +08:00
import sys
# Always prefer setuptools over distutils
from setuptools import setup, find_packages
2019-08-05 22:37:30 +08:00
# To use a consistent encoding
from codecs import open
from os import path
here = path.abspath(path.dirname(__file__))
# Get the long description from the README file
2019-08-05 22:37:30 +08:00
with open(path.join(here, "README.rst"), encoding="utf-8") as f:
long_description = f.read()
2020-05-05 03:35:29 +08:00
details = dict(
2019-08-05 22:37:30 +08:00
name="pyModeS",
2022-04-19 02:50:24 +08:00
version="2.11",
2019-08-05 22:37:30 +08:00
description="Python Mode-S and ADS-B Decoder",
long_description=long_description,
2019-08-05 22:37:30 +08:00
url="https://github.com/junzis/pyModeS",
author="Junzi Sun",
author_email="j.sun-1@tudelft.nl",
license="GNU GPL v3",
classifiers=[
2019-08-05 22:37:30 +08:00
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
2019-10-01 05:50:07 +08:00
"Topic :: Software Development :: Libraries",
2019-08-05 22:37:30 +08:00
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python :: 3",
],
2019-10-01 05:50:07 +08:00
keywords="Mode-S ADS-B EHS ELS Comm-B",
2019-08-05 22:37:30 +08:00
packages=find_packages(exclude=["contrib", "docs", "tests"]),
2022-11-01 19:38:29 +08:00
# typing_extensions are no longer necessary after Python 3.8 (TypedDict)
install_requires=["numpy", "pyzmq", "typing_extensions"],
extras_require={"fast": ["Cython"]},
2022-12-04 07:04:55 +08:00
package_data={
"pyModeS": ["*.pyx", "*.pxd", "py.typed"],
"pyModeS.decoder.flarm": ["*.pyx", "*.pxd", "*.pyi"],
},
2019-08-05 22:37:30 +08:00
scripts=["pyModeS/streamer/modeslive"],
)
2020-05-05 03:35:29 +08:00
try:
2022-12-04 07:04:55 +08:00
from distutils.core import Extension
2020-05-05 03:35:29 +08:00
from Cython.Build import cythonize
2022-12-04 07:04:55 +08:00
compile_args = []
include_dirs = ["pyModeS/decoder/flarm"]
if sys.platform == "linux":
compile_args += [
"-march=native",
"-O3",
"-msse",
"-msse2",
"-mfma",
"-mfpmath=sse",
"-Wno-pointer-sign",
]
extensions = [
Extension("pyModeS.c_common", ["pyModeS/c_common.pyx"]),
Extension(
"pyModeS.decoder.flarm.decode",
[
"pyModeS/decoder/flarm/decode.pyx",
"pyModeS/decoder/flarm/core.c",
],
extra_compile_args=compile_args,
include_dirs=include_dirs,
),
]
2020-05-05 03:35:29 +08:00
2022-12-04 07:04:55 +08:00
setup(
**dict(
details,
ext_modules=cythonize(
extensions,
include_path=include_dirs,
compiler_directives={"binding": True, "language_level": 3},
),
)
)
2020-05-05 03:35:29 +08:00
2022-04-19 00:47:12 +08:00
except ImportError:
2020-05-05 03:35:29 +08:00
setup(**details)