+++ /dev/null
-from . import CWrapPlugin
-from string import Template
-
-import sys
-if sys.version_info[0] == 3:
- string_type = str
-else:
- string_type = basestring
-
-
-class BoolOption(CWrapPlugin):
-
- UNPACK_TEMPLATE = Template('$arg == Py_True ? $if_true : $if_false')
-
- def is_bool_option(self, arg):
- return arg['type'] == 'bool' and 'if_true' in arg and 'if_false' in arg
-
- def process_declarations(self, declarations):
- for declaration in declarations:
- for option in declaration['options']:
- for arg in option['arguments']:
- if self.is_bool_option(arg):
- arg['is_bool_option'] = True
- if isinstance(arg['if_true'], string_type):
- arg['type'] = 'const char*'
- return declarations
-
- def get_type_check(self, arg, option):
- if arg.get('is_bool_option', False):
- return Template('PyBool_Check($arg)')
-
- def get_type_unpack(self, arg, option):
- if arg.get('is_bool_option', False):
- return Template(self.UNPACK_TEMPLATE.safe_substitute(
- if_true=arg['if_true'], if_false=arg['if_false']))