mirror of
https://github.com/opencv/opencv.git
synced 2024-12-01 06:49:50 +08:00
Python generator: moved base class handling to the generate step
This commit is contained in:
parent
424c2bddb3
commit
78ddc567f9
@ -757,19 +757,6 @@ class PythonWrapperGenerator(object):
|
||||
sys.exit(-1)
|
||||
self.classes[classinfo.name] = classinfo
|
||||
|
||||
if classinfo.base:
|
||||
chunks = classinfo.base.split('_')
|
||||
base = '_'.join(chunks)
|
||||
while base not in self.classes and len(chunks)>1:
|
||||
del chunks[-2]
|
||||
base = '_'.join(chunks)
|
||||
if base not in self.classes:
|
||||
print("Generator error: unable to resolve base %s for %s"
|
||||
% (classinfo.base, classinfo.name))
|
||||
sys.exit(-1)
|
||||
classinfo.base = base
|
||||
classinfo.isalgorithm |= self.classes[base].isalgorithm
|
||||
|
||||
def split_decl_name(self, name):
|
||||
chunks = name.split('.')
|
||||
namespace = chunks[:-1]
|
||||
@ -881,6 +868,22 @@ class PythonWrapperGenerator(object):
|
||||
# function
|
||||
self.add_func(decl)
|
||||
|
||||
# step 1.5 check if all base classes exist
|
||||
for name, classinfo in self.classes.items():
|
||||
if classinfo.base:
|
||||
chunks = classinfo.base.split('_')
|
||||
base = '_'.join(chunks)
|
||||
while base not in self.classes and len(chunks)>1:
|
||||
del chunks[-2]
|
||||
base = '_'.join(chunks)
|
||||
if base not in self.classes:
|
||||
print("Generator error: unable to resolve base %s for %s"
|
||||
% (classinfo.base, classinfo.name))
|
||||
sys.exit(-1)
|
||||
classinfo.base = base
|
||||
classinfo.isalgorithm |= self.classes[base].isalgorithm
|
||||
self.classes[name] = classinfo
|
||||
|
||||
# step 2: generate code for the classes and their methods
|
||||
classlist = list(self.classes.items())
|
||||
classlist.sort()
|
||||
|
Loading…
Reference in New Issue
Block a user