Add foreign_cpp_namespace option to Function wrappers

This commit is contained in:
Gustavo J. A. M. Carneiro committed 2009-08-16 14:35:12 +01:00
1 parent 064457b92e
commit e469bbb4e5
1 file changed
+8 -2
+8 -2
View File
@@ -18,7 +18,7 @@ class Function(ForwardWrapperBase):
"""
def __init__(self, function_name, return_value, parameters, docstring=None, unblock_threads=None,
template_parameters=(), custom_name=None, deprecated=False):
template_parameters=(), custom_name=None, deprecated=False, foreign_cpp_namespace=None):
"""
@param function_name: name of the C function
@param return_value: the function return value
@@ -29,6 +29,9 @@ class Function(ForwardWrapperBase):
- False: Not deprecated
- True: Deprecated
- "message": Deprecated, and deprecation warning contains the given message
@param foreign_cpp_namespace: if set, the function is assumed to
belong to the given C++ namespace, regardless of the C++
namespace of the python module it will be added to.
"""
self.stack_where_defined = traceback.extract_stack()
@@ -53,6 +56,7 @@ class Function(ForwardWrapperBase):
error_return="return NULL;",
unblock_threads=unblock_threads)
self.deprecated = deprecated
self.foreign_cpp_namespace = foreign_cpp_namespace
self._module = None
function_name = utils.ascii(function_name)
self.function_name = function_name
@@ -90,7 +94,9 @@ class Function(ForwardWrapperBase):
def generate_call(self):
"virtual method implementation; do not call"
if self._module.cpp_namespace_prefix:
if self.foreign_cpp_namespace:
namespace = self.foreign_cpp_namespace + '::'
elif self._module.cpp_namespace_prefix:
namespace = self._module.cpp_namespace_prefix + '::'
else:
namespace = ''