Skip to content

Commit 9153b68

Browse files
committed
Add .gitignore, windows build fixes, add FACE_SDK_TAG
1 parent ad9ebfc commit 9153b68

4 files changed

Lines changed: 34 additions & 23 deletions

File tree

.github/workflows/build.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ on:
55
tags:
66
- "v*"
77
workflow_dispatch:
8-
8+
9+
10+
env:
11+
FACE_SDK_TAG: v3.27.0
12+
913

1014
jobs:
1115
windows-build:
@@ -22,6 +26,7 @@ jobs:
2226
with:
2327
repository: 3DiVi/face-sdk
2428
path: FaceSDK
29+
ref: ${{ env.FACE_SDK_TAG }}
2530

2631
- name: Remove other files from FaceSDK
2732
shell: bash
@@ -61,6 +66,7 @@ jobs:
6166
with:
6267
repository: 3DiVi/face-sdk
6368
path: FaceSDK
69+
ref: ${{ env.FACE_SDK_TAG }}
6470

6571
- name: Remove other files from FaceSDK
6672
shell: bash

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Visual Studio
2+
.vs/
3+
4+
# Python venv
5+
.venv/

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ set(PYBIND11_TAG v3.0.0)
77
if (UNIX)
88
set(PYTHON_EXECUTABLE /usr/bin/python3 CACHE STRING "Path to Python executable")
99
else()
10-
find_package(Python3 REQUIRED)
10+
find_package(Python REQUIRED)
1111

12-
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE} CACHE STRING "Path to Python executable")
12+
set(PYTHON_EXECUTABLE ${Python_EXECUTABLE} CACHE STRING "Path to Python executable")
13+
set(PYBIND11_FINDPYTHON OFF)
1314
endif()
1415
set(FACE_SDK_INCLUDE_PATH "FaceSDK/include" CACHE STRING "Path to include directory")
1516

src/module.cpp

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ PYBIND11_MODULE(face_sdk_3divi, m, py::mod_gil_not_used())
3232
.def(py::init())
3333
.def(py::init<const py::dict&>(), "ctx"_a)
3434
.def(py::init<const py::bytes&>(), "image_data"_a)
35-
.def(py::init<uint8_t*, int32_t, int32_t, face_sdk_3divi::Context::Format, int32_t>(), "frame_data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
36-
.def(py::init<py::bytes&, int32_t, int32_t, face_sdk::Context::Format, int32_t>(), "frame_data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
37-
.def(py::init<py::array_t<uint8_t>, int32_t, int32_t, face_sdk::Context::Format, int32_t>(), "frame_data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
35+
.def(py::init<py::bytes&, int32_t, int32_t, face_sdk_3divi::Context::Format, int32_t>(), "frame_data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
36+
.def(py::init<py::array_t<uint8_t>, int32_t, int32_t, face_sdk_3divi::Context::Format, int32_t>(), "frame_data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
3837
.def(py::init<const std::string&>(), "path_to_json_file"_a)
3938
.def("serialize_to_json", &face_sdk_3divi::Context::serializeToJson, py::call_guard<py::gil_scoped_release>())
4039
.def("contains", &face_sdk_3divi::Context::contains, py::call_guard<py::gil_scoped_release>(), "key"_a)
@@ -72,15 +71,15 @@ PYBIND11_MODULE(face_sdk_3divi, m, py::mod_gil_not_used())
7271
.def("__setitem__", [](face_sdk_3divi::Context& context, const std::string& key, const py::handle& value) { context[key].setValue(value); })
7372
.def("__getitem__", [](face_sdk_3divi::Context& context, int64_t index) { return context[index]; }, "index"_a)
7473
.def("__getitem__", [](face_sdk_3divi::Context& context, const std::string& key) { return context[key]; }, "key"_a)
75-
.def("__contains__", [](face_sdk::Context& context, const std::string& key) { return context.contains(key); }, "key"_a)
76-
.def("__iter__", &face_sdk::Context::startIterate)
77-
.def("__next__", &face_sdk::Context::next);
74+
.def("__contains__", [](face_sdk_3divi::Context& context, const std::string& key) { return context.contains(key); }, "key"_a)
75+
.def("__iter__", &face_sdk_3divi::Context::startIterate)
76+
.def("__next__", &face_sdk_3divi::Context::next);
7877

7978
contextTemplate
8079
.def(py::init<const face_sdk_3divi::ContextTemplate&>(), "context_template"_a)
8180
.def(py::init<const py::bytes&>(), "data"_a)
8281
.def(py::init<py::object&>(), "binary_read_stream"_a)
83-
.def(py::init<const face_sdk::Context&>(), "config"_a)
82+
.def(py::init<const face_sdk_3divi::Context&>(), "config"_a)
8483
.def("save", &face_sdk_3divi::ContextTemplate::save, "binary_write_stream"_a)
8584
.def("size", &face_sdk_3divi::ContextTemplate::size, py::call_guard<py::gil_scoped_release>())
8685
.def("get_method_name", &face_sdk_3divi::ContextTemplate::getMethodName, py::call_guard<py::gil_scoped_release>());
@@ -108,19 +107,19 @@ PYBIND11_MODULE(face_sdk_3divi, m, py::mod_gil_not_used())
108107
.def(py::init<const py::dict&>(), "config"_a)
109108
.def("__call__", &face_sdk_3divi::ProcessingBlock::operator (), "io_data"_a, py::call_guard<py::gil_scoped_release>());
110109

111-
py::class_<face_sdk::FacerecService>(m, "FacerecService")
112-
.def_static("create_service", &face_sdk::FacerecService::createService, "dll_path"_a, "facerec_conf_dir"_a, "license_dir"_a, py::call_guard<py::gil_scoped_release>(), py::return_value_policy::reference)
113-
.def_static("create_context", py::overload_cast<const py::dict&>(&face_sdk::FacerecService::createContext), "ctx"_a)
114-
.def_static("create_context_from_encoded_image", py::overload_cast<const py::bytes&>(&face_sdk::FacerecService::createContext), "data"_a)
115-
.def_static("create_context_from_frame", py::overload_cast<py::array_t<uint8_t>, int32_t, int32_t, face_sdk::Context::Format, int32_t>(&face_sdk::FacerecService::createContext), "data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
116-
.def_static("create_context_from_json_file", py::overload_cast<const std::string&>(&face_sdk::FacerecService::createContext), "path"_a)
117-
.def_static("create_processing_block", py::overload_cast<const face_sdk::Context&>(&face_sdk::FacerecService::createProcessingBlock), "ctx"_a)
118-
.def_static("create_processing_block", py::overload_cast<const py::dict&>(&face_sdk::FacerecService::createProcessingBlock), "ctx"_a)
119-
.def_static("get_version", &face_sdk::FacerecService::getVersion)
120-
.def_static("create_dynamic_template_index", py::overload_cast<const std::vector<face_sdk::ContextTemplate>&, const std::vector<std::string>&, const face_sdk::Context&>(&face_sdk::FacerecService::createDynamicTemplateIndex), "templates"_a, "uuids"_a, "config"_a)
121-
.def_static("create_dynamic_template_index", py::overload_cast<const face_sdk::Context&>(&face_sdk::FacerecService::createDynamicTemplateIndex), "config"_a)
122-
.def_static("convert_template", &face_sdk::FacerecService::convertTemplate, "config"_a)
123-
.def_static("load_context_template", &face_sdk::FacerecService::loadContextTemplate, "binary_stream"_a);
110+
py::class_<face_sdk_3divi::FacerecService>(m, "FacerecService")
111+
.def_static("create_service", &face_sdk_3divi::FacerecService::createService, "dll_path"_a, "facerec_conf_dir"_a, "license_dir"_a, py::call_guard<py::gil_scoped_release>(), py::return_value_policy::reference)
112+
.def_static("create_context", py::overload_cast<const py::dict&>(&face_sdk_3divi::FacerecService::createContext), "ctx"_a)
113+
.def_static("create_context_from_encoded_image", py::overload_cast<const py::bytes&>(&face_sdk_3divi::FacerecService::createContext), "data"_a)
114+
.def_static("create_context_from_frame", py::overload_cast<py::array_t<uint8_t>, int32_t, int32_t, face_sdk_3divi::Context::Format, int32_t>(&face_sdk_3divi::FacerecService::createContext), "data"_a, "width"_a, "height"_a, "format"_a, "base_angle"_a)
115+
.def_static("create_context_from_json_file", py::overload_cast<const std::string&>(&face_sdk_3divi::FacerecService::createContext), "path"_a)
116+
.def_static("create_processing_block", py::overload_cast<const face_sdk_3divi::Context&>(&face_sdk_3divi::FacerecService::createProcessingBlock), "ctx"_a)
117+
.def_static("create_processing_block", py::overload_cast<const py::dict&>(&face_sdk_3divi::FacerecService::createProcessingBlock), "ctx"_a)
118+
.def_static("get_version", &face_sdk_3divi::FacerecService::getVersion)
119+
.def_static("create_dynamic_template_index", py::overload_cast<const std::vector<face_sdk_3divi::ContextTemplate>&, const std::vector<std::string>&, const face_sdk_3divi::Context&>(&face_sdk_3divi::FacerecService::createDynamicTemplateIndex), "templates"_a, "uuids"_a, "config"_a)
120+
.def_static("create_dynamic_template_index", py::overload_cast<const face_sdk_3divi::Context&>(&face_sdk_3divi::FacerecService::createDynamicTemplateIndex), "config"_a)
121+
.def_static("convert_template", &face_sdk_3divi::FacerecService::convertTemplate, "config"_a)
122+
.def_static("load_context_template", &face_sdk_3divi::FacerecService::loadContextTemplate, "binary_stream"_a);
124123

125124
py::class_<pbio::Error>(m, "_ErrorImplementation")
126125
.def("__str__", [](const pbio::Error& error) { return py::str("0x{:x}: {}").format(error.code(), error.what()); });

0 commit comments

Comments
 (0)