mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 07:13:02 +04:00
Merge pull request #24773 from tailsu:sd/pathlike
python: accept path-like objects wherever file names are expected #24773 Merry Christmas, all 🎄 Implements #15731 Support is enabled for all arguments named `filename` or `filepath` (case-insensitive), or annotated with `CV_WRAP_FILE_PATH`. Support is based on `PyOS_FSPath`, which is available in Python 3.6+. When running on older Python versions the arguments must have a `str` value as before. ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [ ] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
@@ -90,6 +90,10 @@ class CppHeaderParser(object):
|
||||
modlist.append("/IO")
|
||||
arg_str = arg_str.replace("CV_IN_OUT", "")
|
||||
|
||||
if "CV_WRAP_FILE_PATH" in arg_str:
|
||||
modlist.append("/PATH")
|
||||
arg_str = arg_str.replace("CV_WRAP_FILE_PATH", "")
|
||||
|
||||
isarray = False
|
||||
npos = arg_str.find("CV_CARRAY")
|
||||
if npos >= 0:
|
||||
@@ -627,6 +631,8 @@ class CppHeaderParser(object):
|
||||
("noArray", arg_type)]).strip()
|
||||
if '/IO' in modlist and '/O' in modlist:
|
||||
modlist.remove('/O')
|
||||
if (arg_name.lower() == 'filename' or arg_name.lower() == 'filepath') and '/PATH' not in modlist:
|
||||
modlist.append('/PATH')
|
||||
args.append([arg_type, arg_name, defval, modlist])
|
||||
npos = arg_start-1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user