python-netfilterqueue/setup.py

71 lines
2.3 KiB
Python
Raw Normal View History

2022-01-13 04:15:53 +01:00
import os, sys
from setuptools import setup, Extension
2011-05-12 22:45:14 +02:00
exec(open("netfilterqueue/_version.py", encoding="utf-8").read())
2011-05-12 22:45:14 +02:00
setup_requires = ["wheel"]
2011-05-12 22:45:14 +02:00
try:
# Use Cython
from Cython.Build import cythonize
ext_modules = cythonize(
Extension(
2022-01-14 20:58:56 +01:00
"netfilterqueue._impl",
["netfilterqueue/_impl.pyx"],
libraries=["netfilter_queue"],
),
compiler_directives={"language_level": "3str"},
)
2011-05-12 22:45:14 +02:00
except ImportError:
# No Cython
if "egg_info" in sys.argv:
# We're being run by pip to figure out what we need. Request cython in
# setup_requires below.
setup_requires += ["cython"]
2022-01-13 11:21:24 +01:00
elif not os.path.exists(
2022-01-14 20:58:56 +01:00
os.path.join(os.path.dirname(__file__), "netfilterqueue/_impl.c")
2022-01-13 11:21:24 +01:00
):
2022-01-13 04:15:53 +01:00
sys.stderr.write(
"You must have Cython installed (`pip install cython`) to build this "
"package from source.\nIf you're receiving this error when installing from "
"PyPI, please file a bug report at "
"https://github.com/oremanj/python-netfilterqueue/issues/new\n"
)
sys.exit(1)
ext_modules = [
Extension(
2022-01-14 20:58:56 +01:00
"netfilterqueue._impl",
["netfilterqueue/_impl.c"],
libraries=["netfilter_queue"],
)
]
2011-05-12 22:45:14 +02:00
setup(
name="NetfilterQueue",
version=__version__,
license="MIT",
2022-01-14 21:24:18 +01:00
author="Matthew Fox <matt@tansen.ca>, Joshua Oreman <oremanj@gmail.com>",
author_email="oremanj@gmail.com",
url="https://github.com/oremanj/python-netfilterqueue",
2011-05-12 22:45:14 +02:00
description="Python bindings for libnetfilter_queue",
long_description=open("README.rst", encoding="utf-8").read(),
packages=["netfilterqueue"],
ext_modules=ext_modules,
include_package_data=True,
2022-01-14 21:11:17 +01:00
exclude_package_data={"netfilterqueue": ["*.c"]},
setup_requires=setup_requires,
python_requires=">=3.6",
classifiers=[
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: MIT License",
2011-05-12 22:45:14 +02:00
"Operating System :: POSIX :: Linux",
"Topic :: System :: Networking",
"Topic :: Security",
"Intended Audience :: Developers",
"Intended Audience :: Telecommunications Industry",
"Programming Language :: Cython",
"Programming Language :: Python :: 2",
2015-05-16 09:25:44 +02:00
"Programming Language :: Python :: 3",
],
2011-05-12 22:45:14 +02:00
)