-
Notifications
You must be signed in to change notification settings - Fork 896
Updated submodules to the release 4.5.4 and added python loader support #563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +0,0 @@ | ||
import importlib | ||
import os | ||
import sys | ||
|
||
from .cv2 import * | ||
from .data import * | ||
|
||
# wildcard import above does not import "private" variables like __version__ | ||
# this makes them available | ||
globals().update(importlib.import_module("cv2.cv2").__dict__) | ||
|
||
ci_and_not_headless = False | ||
|
||
try: | ||
from .version import ci_build, headless | ||
|
||
ci_and_not_headless = ci_build and not headless | ||
except: | ||
pass | ||
|
||
# the Qt plugin is included currently only in the pre-built wheels | ||
if sys.platform.startswith("linux") and ci_and_not_headless: | ||
os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = os.path.join( | ||
os.path.dirname(os.path.abspath(__file__)), "qt", "plugins" | ||
) | ||
|
||
# Qt will throw warning on Linux if fonts are not found | ||
if sys.platform.startswith("linux") and ci_and_not_headless: | ||
os.environ["QT_QPA_FONTDIR"] = os.path.join( | ||
os.path.dirname(os.path.abspath(__file__)), "qt", "fonts" | ||
) | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
PYTHON_EXTENSIONS_PATHS = [ | ||
LOADER_DIR | ||
] + PYTHON_EXTENSIONS_PATHS | ||
|
||
ci_and_not_headless = False | ||
|
||
try: | ||
from .version import ci_build, headless | ||
|
||
ci_and_not_headless = ci_build and not headless | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How I can verify that case that locally? Update: Tried There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Try to build with After the build you can reproduce these lines in the python interpreter. What I've done:
In addition, to understand
|
||
except: | ||
pass | ||
|
||
# the Qt plugin is included currently only in the pre-built wheels | ||
if sys.platform.startswith("linux") and ci_and_not_headless: | ||
os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = os.path.join( | ||
os.path.dirname(os.path.abspath(__file__)), "qt", "plugins" | ||
) | ||
|
||
# Qt will throw warning on Linux if fonts are not found | ||
if sys.platform.startswith("linux") and ci_and_not_headless: | ||
os.environ["QT_QPA_FONTDIR"] = os.path.join( | ||
os.path.dirname(os.path.abspath(__file__)), "qt", "fonts" | ||
) |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -108,12 +108,32 @@ def main(): | |
# Naming conventions vary so widely between versions and OSes | ||
# had to give up on checking them. | ||
[ | ||
"python/cv2[^/]*%(ext)s" | ||
% {"ext": re.escape(sysconfig.get_config_var("EXT_SUFFIX"))} | ||
"python/cv2/python-%s.%s/cv2[^/]*%s" | ||
% (sys.version_info[0], sys.version_info[1], re.escape(sysconfig.get_config_var("EXT_SUFFIX"))) | ||
] | ||
+ | ||
[ | ||
r"python/cv2/__init__.py" | ||
] | ||
+ | ||
[ | ||
r"python/cv2/.*config.*.py" | ||
], | ||
"cv2.data": [ # OPENCV_OTHER_INSTALL_PATH | ||
("etc" if os.name == "nt" else "share/opencv4") + r"/haarcascades/.*\.xml" | ||
], | ||
"cv2.gapi": [ | ||
"python/cv2" + r"/gapi/.*\.py" | ||
], | ||
"cv2.mat_wrapper": [ | ||
"python/cv2" + r"/mat_wrapper/.*\.py" | ||
], | ||
"cv2.misc": [ | ||
"python/cv2" + r"/misc/.*\.py" | ||
], | ||
"cv2.utils": [ | ||
"python/cv2" + r"/utils/.*\.py" | ||
], | ||
Comment on lines
+125
to
+136
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we copy all artifacts of "cmake install" automatically "as is"? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we copy all artifacts of "cmake install" as is, then there will be several folders and files which we do not want to have in a package. We control what should be in a package using There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What about There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In theory, we could specify haarcascades as package data, not a separate package. But it requires checking the code and import and so on, I'd delay it to the future. |
||
} | ||
|
||
# Files in sourcetree outside package dir that should be copied to package. | ||
|
@@ -137,8 +157,6 @@ def main(): | |
"-DBUILD_opencv_python2=OFF", | ||
# Disable the Java build by default as it is not needed | ||
"-DBUILD_opencv_java=%s" % build_java, | ||
# When off, adds __init__.py and a few more helper .py's. We use our own helper files with a different structure. | ||
"-DOPENCV_SKIP_PYTHON_LOADER=ON", | ||
# Relative dir to install the built module to in the build tree. | ||
# The default is generated from sysconfig, we'd rather have a constant for simplicity | ||
"-DOPENCV_PYTHON3_INSTALL_PATH=python", | ||
|
@@ -358,6 +376,13 @@ def _classify_installed_files_override( | |
|
||
print("Copying files from CMake output") | ||
|
||
# add lines from the old __init__.py file to the config file | ||
with open('scripts/__init__.py', 'r') as custom_init: | ||
custom_init_data = custom_init.read() | ||
with open('%spython/cv2/config-%s.%s.py' | ||
% (cmake_install_dir, sys.version_info[0], sys.version_info[1]), 'w') as opencv_init_config: | ||
opencv_init_config.write(custom_init_data) | ||
|
||
for package_name, relpaths_re in cls.package_paths_re.items(): | ||
package_dest_reldir = package_name.replace(".", os.path.sep) | ||
for relpath_re in relpaths_re: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are undefined names in Python code.
$
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics