1 Star 0 Fork 2

sina_woker/urh_1

forked from Gitee 极速下载/urh 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
setup.py 4.77 KB
一键复制 编辑 原始数据 按行查看 历史
Dr. Johannes Pohl 提交于 2023-10-30 17:51 . Blacken code (#1076)
import os
import sys
import tempfile
if sys.version_info < (3, 4):
print("You need at least Python 3.4 for this application!")
if sys.version_info[0] < 3:
print("try running with python3 {}".format(" ".join(sys.argv)))
sys.exit(1)
try:
from setuptools import setup, Extension
from setuptools.command.build_ext import build_ext as _build_ext
except ImportError:
print("Could not find setuptools")
print("Try installing them with pip install setuptools")
sys.exit(1)
from src.urh.dev.native import ExtensionHelper
from src.urh.dev.native.ExtensionHelper import COMPILER_DIRECTIVES
import src.urh.version as version
if sys.platform == "win32":
OPEN_MP_FLAG = "/openmp"
NO_NUMPY_WARNINGS_FLAG = ""
elif sys.platform == "darwin":
OPEN_MP_FLAG = "" # no OpenMP support in default Mac OSX compiler
NO_NUMPY_WARNINGS_FLAG = "-Wno-#warnings"
else:
OPEN_MP_FLAG = "-fopenmp"
NO_NUMPY_WARNINGS_FLAG = "-Wno-cpp"
UI_SUBDIRS = ("actions", "delegates", "views")
PLUGINS = [
path
for path in os.listdir("src/urh/plugins")
if os.path.isdir(os.path.join("src/urh/plugins", path))
]
URH_DIR = "urh"
IS_RELEASE = os.path.isfile(os.path.join(tempfile.gettempdir(), "urh_releasing"))
try:
from Cython.Build import cythonize
except ImportError:
print(
"You need Cython to build URH's extensions!\n"
"You can get it e.g. with python3 -m pip install cython.",
file=sys.stderr,
)
sys.exit(1)
class build_ext(_build_ext):
def finalize_options(self):
print("Finalizing options")
_build_ext.finalize_options(self)
# Prevent numpy from thinking it is still in its setup process:
__builtins__.__NUMPY_SETUP__ = False
import numpy
self.include_dirs.append(numpy.get_include())
def get_packages():
packages = [URH_DIR]
separator = os.path.normpath("/")
for dirpath, dirnames, filenames in os.walk(os.path.join("./src/", URH_DIR)):
package_path = os.path.relpath(
dirpath, os.path.join("./src/", URH_DIR)
).replace(separator, ".")
if len(package_path) > 1:
packages.append(URH_DIR + "." + package_path)
return packages
def get_package_data():
package_data = {"urh.cythonext": ["*.pyx", "*.pxd"]}
for plugin in PLUGINS:
package_data["urh.plugins." + plugin] = ["*.ui", "*.txt"]
package_data["urh.dev.native.lib"] = ["*.pyx", "*.pxd"]
if IS_RELEASE and sys.platform == "win32":
package_data["urh.dev.native.lib.shared"] = ["*.dll", "*.txt"]
return package_data
def get_extensions():
filenames = [
os.path.splitext(f)[0]
for f in os.listdir("src/urh/cythonext")
if f.endswith(".pyx")
]
extensions = [
Extension(
"urh.cythonext." + f,
["src/urh/cythonext/" + f + ".pyx"],
extra_compile_args=[OPEN_MP_FLAG],
extra_link_args=[OPEN_MP_FLAG],
language="c++",
)
for f in filenames
]
ExtensionHelper.USE_RELATIVE_PATHS = True
(
device_extensions,
device_extras,
) = ExtensionHelper.get_device_extensions_and_extras()
extensions += device_extensions
if NO_NUMPY_WARNINGS_FLAG:
for extension in extensions:
extension.extra_compile_args.append(NO_NUMPY_WARNINGS_FLAG)
extensions = cythonize(
extensions,
compiler_directives=COMPILER_DIRECTIVES,
compile_time_env=device_extras,
)
return extensions
def read_long_description():
try:
with open("README.md") as f:
text = f.read()
return text
except:
return ""
install_requires = ["numpy", "psutil", "cython<3.0.0"]
if IS_RELEASE:
install_requires.append("pyqt5")
else:
try:
import PyQt5
except ImportError:
install_requires.append("pyqt5")
if sys.version_info < (3, 4):
install_requires.append("enum34")
setup(
name="urh",
version=version.VERSION,
description="Universal Radio Hacker: investigate wireless protocols like a boss",
long_description=read_long_description(),
long_description_content_type="text/markdown",
author="Johannes Pohl",
author_email="[email protected]",
package_dir={"": "src"},
package_data=get_package_data(),
url="https://github.com/jopohl/urh",
license="GNU General Public License (GPL)",
download_url="https://github.com/jopohl/urh/tarball/v" + str(version.VERSION),
install_requires=install_requires,
setup_requires=["numpy"],
packages=get_packages(),
ext_modules=get_extensions(),
cmdclass={"build_ext": build_ext},
zip_safe=False,
entry_points={
"console_scripts": [
"urh = urh.main:main",
"urh_cli = urh.cli.urh_cli:main",
]
},
)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/lin-binghua/urh_1.git
[email protected]:lin-binghua/urh_1.git
lin-binghua
urh_1
urh_1
master

搜索帮助