mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-26 02:40:44 -06:00
4a35573210
* Initial support for Hailo-8L Added file for Hailo-8L detector including dockerfile, h8l.mk, h8l.hcl, hailo8l.py, ci.yml and ssd_mobilenat_v1.hef as the inference network. Added files to help with the installation of Hailo-8L dependences like generate_wheel_conf.py, requirements-wheel-h8l.txt and modified setup.py to try and work with any hardware. Updated docs to reflect Initial Hailo-8L support including oject_detectors.md, hardware.md and installation.md. * Update .github/workflows/ci.yml typo h8l not arm64 Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com> * Update docs/docs/configuration/object_detectors.md Clarity for the end user and correct uses of words Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com> * Update docs/docs/frigate/installation.md typo Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com> * update Installation.md to clarify Hailo-8L installation process. * Update docs/docs/frigate/hardware.md Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> * Update hardware.md add Inference time. * Oops no new line at the end of the file. * Update docs/docs/frigate/hardware.md typo Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> * Update dockerfile to download the ssd_modilenet_v1 model instead of having it in the repo. * Updated dockerfile so it dose not download the model file. add function to download it at runtime. update model path. * fix formatting according to ruff and removed unnecessary functions. --------- Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com> Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
import json
|
|
import os
|
|
import platform
|
|
import sys
|
|
import sysconfig
|
|
|
|
|
|
def extract_toolchain_info(compiler):
|
|
# Remove the "-gcc" or "-g++" suffix if present
|
|
if compiler.endswith("-gcc") or compiler.endswith("-g++"):
|
|
compiler = compiler.rsplit("-", 1)[0]
|
|
|
|
# Extract the toolchain and ABI part (e.g., "gnu")
|
|
toolchain_parts = compiler.split("-")
|
|
abi_conventions = next(
|
|
(part for part in toolchain_parts if part in ["gnu", "musl", "eabi", "uclibc"]),
|
|
"",
|
|
)
|
|
|
|
return abi_conventions
|
|
|
|
|
|
def generate_wheel_conf():
|
|
conf_file_path = os.path.join(
|
|
os.path.abspath(os.path.dirname(__file__)), "wheel_conf.json"
|
|
)
|
|
|
|
# Extract current system and Python version information
|
|
py_version = f"cp{sys.version_info.major}{sys.version_info.minor}"
|
|
arch = platform.machine()
|
|
system = platform.system().lower()
|
|
libc_version = platform.libc_ver()[1]
|
|
|
|
# Get the compiler information
|
|
compiler = sysconfig.get_config_var("CC")
|
|
abi_conventions = extract_toolchain_info(compiler)
|
|
|
|
# Create the new configuration data
|
|
new_conf_data = {
|
|
"py_version": py_version,
|
|
"arch": arch,
|
|
"system": system,
|
|
"libc_version": libc_version,
|
|
"abi": abi_conventions,
|
|
"extension": {
|
|
"posix": "so",
|
|
"nt": "pyd", # Windows
|
|
}[os.name],
|
|
}
|
|
|
|
# If the file exists, load the existing data
|
|
if os.path.isfile(conf_file_path):
|
|
with open(conf_file_path, "r") as conf_file:
|
|
conf_data = json.load(conf_file)
|
|
# Update the existing data with the new data
|
|
conf_data.update(new_conf_data)
|
|
else:
|
|
# If the file does not exist, use the new data
|
|
conf_data = new_conf_data
|
|
|
|
# Write the updated data to the file
|
|
with open(conf_file_path, "w") as conf_file:
|
|
json.dump(conf_data, conf_file, indent=4)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
generate_wheel_conf()
|