[Xapian-tickets] [Xapian] #346: Python 3 support
Xapian
nobody at xapian.org
Tue Jul 24 05:36:39 BST 2012
#346: Python 3 support
--------------------------------------+-------------------------------------
Reporter: olly | Owner: richard
Type: defect | Status: assigned
Priority: highest | Milestone: 1.3.2
Component: Xapian-bindings (Python) | Version: SVN trunk
Severity: normal | Keywords:
Blockedby: | Platform: All
Blocking: |
--------------------------------------+-------------------------------------
Comment(by olly):
If you don't like what SWIG does by default, you can specify your own
typemaps for std::string and SWIG should just use those instead of the
built-in ones. We already do this for the Python 2 bindings, for example
the input typemap (in python/util.i) is:
{{{
%typemap(in, fragment="XapianSWIG_anystring_as_ptr") std::string {
std::string *ptr = (std::string *)0;
int res = XapianSWIG_anystring_as_ptr(&($input), &ptr);
if (!SWIG_IsOK(res) || !ptr) {
%argument_fail((ptr ? res : SWIG_TypeError), "$type", $symname,
$argnum);
}
$1 = *ptr;
if (SWIG_IsNewObj(res)) delete ptr;
}
}}}
{{{XapianSWIG_anystring_as_ptr}}} is a helper function we provide which
handles both unicode and str strings - this is how we get the Python2
bindings to accept either sort of string.
--
Ticket URL: <http://trac.xapian.org/ticket/346#comment:47>
Xapian <http://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list