8000 Add stub generation to gen2.py · opencv/opencv@27f9b2e · GitHub
[go: up one dir, main page]

Skip to content

Commit 27f9b2e

Browse files
ddacwVadimLevin
authored andcommitted
Add stub generation to gen2.py
1 parent cfb3644 commit 27f9b2e

File tree

5 files changed

+313
-5
lines changed

5 files changed

+313
-5
lines changed

modules/python/bindings/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ set(MODULE_NAME "python_bindings_generator")
22
set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
33
ocv_add_module(${MODULE_NAME} INTERNAL)
44

5+
set(OPENCV_PYTHON_STUB_FILE "${CMAKE_CURRENT_BINARY_DIR}/__init__.pyi" CACHE INTERNAL "")
56
set(OPENCV_PYTHON_SIGNATURES_FILE "${CMAKE_CURRENT_BINARY_DIR}/pyopencv_signatures.json" CACHE INTERNAL "")
67
set(OPENCV_PYTHON_BINDINGS_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE INTERNAL "")
78

@@ -67,6 +68,7 @@ set(cv2_generated_files
6768
"${CMAKE_CURRENT_BINARY_DIR}/pyopencv_generated_modules_content.h"
6869
"${CMAKE_CURRENT_BINARY_DIR}/pyopencv_generated_types.h"
6970
"${CMAKE_CURRENT_BINARY_DIR}/pyopencv_generated_types_content.h"
71+
"${OPENCV_PYTHON_STUB_FILE}"
7072
"${OPENCV_PYTHON_SIGNATURES_FILE}"
7173
)
7274

@@ -84,6 +86,13 @@ add_custom_command(
8486

8587
add_custom_target(gen_opencv_python_source DEPENDS ${cv2_generated_files})
8688

89+
add_custom_target(package_python_stub DEPENDS gen_opencv_python_source)
90+
91+
add_custom_command(
92+
TARGET package_python_stub
93+
COMMAND ${CMAKE_COMMAND} -E copy ${OPENCV_PYTHON_STUB_FILE} ${CMAKE_BINARY_DIR}/python_loader/cv2/__init__.pyi
94+
)
95+
8796
set(cv2_custom_hdr "${CMAKE_CURRENT_BINARY_DIR}/pyopencv_custom_headers.h")
8897
set(cv2_custom_hdr_str "//user-defined headers\n")
8998
foreach(uh ${opencv_userdef_hdrs})

modules/python/common.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ if(TARGET gen_opencv_python_source)
2424
add_dependencies(${the_module} gen_opencv_python_source)
2525
endif()
2626

27+
if(TARGET package_python_stub AND ${PYTHON}_VERSION_MAJOR EQUAL 3 AND ${PYTHON}_VERSION_MINOR GREATER 4)
28+
# Python 3.5+
29+
add_dependencies(${the_module} package_python_stub)
30+
endif()
31+
2732
ocv_assert(${PYTHON}_VERSION_MAJOR)
2833
ocv_assert(${PYTHON}_VERSION_MINOR)
2934

modules/python/package/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def main():
2222
long_description=long_description,
2323
long_description_content_type="text/markdown",
2424
packages=setuptools.find_packages(),
25+
package_data={"cv2": ["*.pyi", "*.typed"]},
2526
maintainer="OpenCV Team",
2627
install_requires="numpy",
2728
classifiers=[

modules/python/python_loader.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ foreach(fname ${PYTHON_LOADER_FILES})
3838
endif()
3939
endforeach()
4040

41+
file(TOUCH "${__loader_path}/cv2/py.typed")
42+
4143
if(NOT OpenCV_FOUND) # Ignore "standalone" builds of Python bindings
4244
if(WIN32)
4345
if(CMAKE_GENERATOR MATCHES "Visual Studio")

0 commit comments

Comments
 (0)
0