1 /** @file
2  * @brief Custom Python exception handling.
3  */
4 /* Warning: This file is generated by ./generate-python-exceptions
5  * - do not modify directly!
6  *
7  * Copyright (C) 2003,2004,2006,2007,2008,2009,2012 Olly Betts
8  * Copyright (C) 2007 Lemur Consulting Ltd
9  * Copyright (C) 2007 Richard Boulton
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License as
13  * published by the Free Software Foundation; either version 2 of the
14  * License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
24  */
25 
26 namespace Xapian {
27 
28 %exceptionclass Error;
29 %ignore Error::get_description;
30 %extend Error {
31     std::string __str__() const {
32 	std::string desc($self->get_msg());
33 	if (!$self->get_context().empty()) {
34 	    desc += " (context: ";
35 	    desc += $self->get_context();
36 	    desc += ')';
37 	}
38 	if ($self->get_error_string()) {
39 	    desc += " (";
40 	    desc += $self->get_error_string();
41 	    desc += ')';
42 	}
43 	return desc;
44     }
45 }
46 %exceptionclass LogicError;
47 %exceptionclass RuntimeError;
48 %exceptionclass AssertionError;
49 %exceptionclass InvalidArgumentError;
50 %exceptionclass InvalidOperationError;
51 %exceptionclass UnimplementedError;
52 %exceptionclass DatabaseError;
53 %exceptionclass DatabaseCorruptError;
54 %exceptionclass DatabaseCreateError;
55 %exceptionclass DatabaseLockError;
56 %exceptionclass DatabaseModifiedError;
57 %exceptionclass DatabaseOpeningError;
58 %exceptionclass DatabaseVersionError;
59 %exceptionclass DocNotFoundError;
60 %exceptionclass FeatureUnavailableError;
61 %exceptionclass InternalError;
62 %exceptionclass NetworkError;
63 %exceptionclass NetworkTimeoutError;
64 %exceptionclass QueryParserError;
65 %exceptionclass SerialisationError;
66 %exceptionclass RangeError;
67 %exceptionclass WildcardError;
68 %exceptionclass DatabaseNotFoundError;
69 %exceptionclass DatabaseClosedError;
70 }
71 %ignore Xapian::Error::Error(const Error&);
72 %include "xapian/error.h"
73 
74 %{
75 namespace Xapian {
76 SWIGEXPORT void SetPythonException() {
77     try {
78 	throw;
79     } catch (Swig::DirectorException &) {
80 	/* This happens if a director raised an exception.  The standard SWIG
81 	 * director exception handling code sets the Python error state if
82 	 * necessary, so we don't need to do anything. */
83     } catch (const Xapian::DatabaseClosedError &e) {
84 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseClosedError(e)),
85 					     SWIGTYPE_p_Xapian__DatabaseClosedError,
86 					     SWIG_POINTER_OWN),
87 			  "Xapian::DatabaseClosedError",
88 			  SWIGTYPE_p_Xapian__DatabaseClosedError);
89     } catch (const Xapian::DatabaseNotFoundError &e) {
90 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseNotFoundError(e)),
91 					     SWIGTYPE_p_Xapian__DatabaseNotFoundError,
92 					     SWIG_POINTER_OWN),
93 			  "Xapian::DatabaseNotFoundError",
94 			  SWIGTYPE_p_Xapian__DatabaseNotFoundError);
95     } catch (const Xapian::WildcardError &e) {
96 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::WildcardError(e)),
97 					     SWIGTYPE_p_Xapian__WildcardError,
98 					     SWIG_POINTER_OWN),
99 			  "Xapian::WildcardError",
100 			  SWIGTYPE_p_Xapian__WildcardError);
101     } catch (const Xapian::RangeError &e) {
102 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::RangeError(e)),
103 					     SWIGTYPE_p_Xapian__RangeError,
104 					     SWIG_POINTER_OWN),
105 			  "Xapian::RangeError",
106 			  SWIGTYPE_p_Xapian__RangeError);
107     } catch (const Xapian::SerialisationError &e) {
108 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::SerialisationError(e)),
109 					     SWIGTYPE_p_Xapian__SerialisationError,
110 					     SWIG_POINTER_OWN),
111 			  "Xapian::SerialisationError",
112 			  SWIGTYPE_p_Xapian__SerialisationError);
113     } catch (const Xapian::QueryParserError &e) {
114 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::QueryParserError(e)),
115 					     SWIGTYPE_p_Xapian__QueryParserError,
116 					     SWIG_POINTER_OWN),
117 			  "Xapian::QueryParserError",
118 			  SWIGTYPE_p_Xapian__QueryParserError);
119     } catch (const Xapian::NetworkTimeoutError &e) {
120 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::NetworkTimeoutError(e)),
121 					     SWIGTYPE_p_Xapian__NetworkTimeoutError,
122 					     SWIG_POINTER_OWN),
123 			  "Xapian::NetworkTimeoutError",
124 			  SWIGTYPE_p_Xapian__NetworkTimeoutError);
125     } catch (const Xapian::NetworkError &e) {
126 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::NetworkError(e)),
127 					     SWIGTYPE_p_Xapian__NetworkError,
128 					     SWIG_POINTER_OWN),
129 			  "Xapian::NetworkError",
130 			  SWIGTYPE_p_Xapian__NetworkError);
131     } catch (const Xapian::InternalError &e) {
132 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::InternalError(e)),
133 					     SWIGTYPE_p_Xapian__InternalError,
134 					     SWIG_POINTER_OWN),
135 			  "Xapian::InternalError",
136 			  SWIGTYPE_p_Xapian__InternalError);
137     } catch (const Xapian::FeatureUnavailableError &e) {
138 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::FeatureUnavailableError(e)),
139 					     SWIGTYPE_p_Xapian__FeatureUnavailableError,
140 					     SWIG_POINTER_OWN),
141 			  "Xapian::FeatureUnavailableError",
142 			  SWIGTYPE_p_Xapian__FeatureUnavailableError);
143     } catch (const Xapian::DocNotFoundError &e) {
144 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DocNotFoundError(e)),
145 					     SWIGTYPE_p_Xapian__DocNotFoundError,
146 					     SWIG_POINTER_OWN),
147 			  "Xapian::DocNotFoundError",
148 			  SWIGTYPE_p_Xapian__DocNotFoundError);
149     } catch (const Xapian::DatabaseVersionError &e) {
150 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseVersionError(e)),
151 					     SWIGTYPE_p_Xapian__DatabaseVersionError,
152 					     SWIG_POINTER_OWN),
153 			  "Xapian::DatabaseVersionError",
154 			  SWIGTYPE_p_Xapian__DatabaseVersionError);
155     } catch (const Xapian::DatabaseOpeningError &e) {
156 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseOpeningError(e)),
157 					     SWIGTYPE_p_Xapian__DatabaseOpeningError,
158 					     SWIG_POINTER_OWN),
159 			  "Xapian::DatabaseOpeningError",
160 			  SWIGTYPE_p_Xapian__DatabaseOpeningError);
161     } catch (const Xapian::DatabaseModifiedError &e) {
162 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseModifiedError(e)),
163 					     SWIGTYPE_p_Xapian__DatabaseModifiedError,
164 					     SWIG_POINTER_OWN),
165 			  "Xapian::DatabaseModifiedError",
166 			  SWIGTYPE_p_Xapian__DatabaseModifiedError);
167     } catch (const Xapian::DatabaseLockError &e) {
168 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseLockError(e)),
169 					     SWIGTYPE_p_Xapian__DatabaseLockError,
170 					     SWIG_POINTER_OWN),
171 			  "Xapian::DatabaseLockError",
172 			  SWIGTYPE_p_Xapian__DatabaseLockError);
173     } catch (const Xapian::DatabaseCreateError &e) {
174 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseCreateError(e)),
175 					     SWIGTYPE_p_Xapian__DatabaseCreateError,
176 					     SWIG_POINTER_OWN),
177 			  "Xapian::DatabaseCreateError",
178 			  SWIGTYPE_p_Xapian__DatabaseCreateError);
179     } catch (const Xapian::DatabaseCorruptError &e) {
180 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseCorruptError(e)),
181 					     SWIGTYPE_p_Xapian__DatabaseCorruptError,
182 					     SWIG_POINTER_OWN),
183 			  "Xapian::DatabaseCorruptError",
184 			  SWIGTYPE_p_Xapian__DatabaseCorruptError);
185     } catch (const Xapian::DatabaseError &e) {
186 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::DatabaseError(e)),
187 					     SWIGTYPE_p_Xapian__DatabaseError,
188 					     SWIG_POINTER_OWN),
189 			  "Xapian::DatabaseError",
190 			  SWIGTYPE_p_Xapian__DatabaseError);
191     } catch (const Xapian::UnimplementedError &e) {
192 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::UnimplementedError(e)),
193 					     SWIGTYPE_p_Xapian__UnimplementedError,
194 					     SWIG_POINTER_OWN),
195 			  "Xapian::UnimplementedError",
196 			  SWIGTYPE_p_Xapian__UnimplementedError);
197     } catch (const Xapian::InvalidOperationError &e) {
198 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::InvalidOperationError(e)),
199 					     SWIGTYPE_p_Xapian__InvalidOperationError,
200 					     SWIG_POINTER_OWN),
201 			  "Xapian::InvalidOperationError",
202 			  SWIGTYPE_p_Xapian__InvalidOperationError);
203     } catch (const Xapian::InvalidArgumentError &e) {
204 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::InvalidArgumentError(e)),
205 					     SWIGTYPE_p_Xapian__InvalidArgumentError,
206 					     SWIG_POINTER_OWN),
207 			  "Xapian::InvalidArgumentError",
208 			  SWIGTYPE_p_Xapian__InvalidArgumentError);
209     } catch (const Xapian::AssertionError &e) {
210 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::AssertionError(e)),
211 					     SWIGTYPE_p_Xapian__AssertionError,
212 					     SWIG_POINTER_OWN),
213 			  "Xapian::AssertionError",
214 			  SWIGTYPE_p_Xapian__AssertionError);
215     } catch (const Xapian::RuntimeError &e) {
216 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::RuntimeError(e)),
217 					     SWIGTYPE_p_Xapian__RuntimeError,
218 					     SWIG_POINTER_OWN),
219 			  "Xapian::RuntimeError",
220 			  SWIGTYPE_p_Xapian__RuntimeError);
221     } catch (const Xapian::LogicError &e) {
222 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::LogicError(e)),
223 					     SWIGTYPE_p_Xapian__LogicError,
224 					     SWIG_POINTER_OWN),
225 			  "Xapian::LogicError",
226 			  SWIGTYPE_p_Xapian__LogicError);
227     } catch (const Xapian::Error &e) {
228 	SWIG_Python_Raise(SWIG_NewPointerObj((new Xapian::Error(e)),
229 					     SWIGTYPE_p_Xapian__Error,
230 					     SWIG_POINTER_OWN),
231 			  "Xapian::Error",
232 			  SWIGTYPE_p_Xapian__Error);
233     } catch (const std::exception& e) {
234 	SWIG_Error(SWIG_RuntimeError, e.what());
235     } catch (...) {
236 	SWIG_Error(SWIG_UnknownError, "unknown error in Xapian");
237     }
238 }
239 }
240 %}
241 
242 /* Functions and methods which are marked as "nothrow": */
243 %exception Xapian::Compactor::~Compactor;
244 %exception Xapian::Compactor::get_constinfo_();
245 %exception Xapian::Database::~Database;
246 %exception Xapian::Database::postlist_end(const std::string &) const;
247 %exception Xapian::Database::termlist_end(Xapian::docid) const;
248 %exception Xapian::Database::positionlist_end(Xapian::docid, const std::string &) const;
249 %exception Xapian::Database::allterms_end(const std::string & = std::string()) const;
250 %exception Xapian::Database::valuestream_end(Xapian::valueno) const;
251 %exception Xapian::Database::spellings_end() const;
252 %exception Xapian::Database::synonyms_end(const std::string &) const;
253 %exception Xapian::Database::synonym_keys_end(const std::string & = std::string()) const;
254 %exception Xapian::Database::metadata_keys_end(const std::string & = std::string()) const;
255 %exception Xapian::WritableDatabase::~WritableDatabase;
256 %exception Xapian::Document::~Document;
257 %exception Xapian::Document::termlist_end() const;
258 %exception Xapian::Document::values_end() const;
259 %exception Xapian::RSet::~RSet;
260 %exception Xapian::MatchDecider::~MatchDecider;
261 %exception Xapian::Enquire::~Enquire;
262 %exception Xapian::Enquire::get_matching_terms_end(Xapian::docid  ) const;
263 %exception Xapian::Enquire::get_matching_terms_end(const MSetIterator & ) const;
264 %exception Xapian::Error::~Error;
265 %exception Xapian::Error::get_type() const;
266 %exception Xapian::Error::get_msg() const;
267 %exception Xapian::Error::get_context() const;
268 %exception Xapian::LogicError::~LogicError;
269 %exception Xapian::RuntimeError::~RuntimeError;
270 %exception Xapian::AssertionError::~AssertionError;
271 %exception Xapian::InvalidArgumentError::~InvalidArgumentError;
272 %exception Xapian::InvalidOperationError::~InvalidOperationError;
273 %exception Xapian::UnimplementedError::~UnimplementedError;
274 %exception Xapian::DatabaseError::~DatabaseError;
275 %exception Xapian::DatabaseCorruptError::~DatabaseCorruptError;
276 %exception Xapian::DatabaseCreateError::~DatabaseCreateError;
277 %exception Xapian::DatabaseLockError::~DatabaseLockError;
278 %exception Xapian::DatabaseModifiedError::~DatabaseModifiedError;
279 %exception Xapian::DatabaseOpeningError::~DatabaseOpeningError;
280 %exception Xapian::DatabaseVersionError::~DatabaseVersionError;
281 %exception Xapian::DocNotFoundError::~DocNotFoundError;
282 %exception Xapian::FeatureUnavailableError::~FeatureUnavailableError;
283 %exception Xapian::InternalError::~InternalError;
284 %exception Xapian::NetworkError::~NetworkError;
285 %exception Xapian::NetworkTimeoutError::~NetworkTimeoutError;
286 %exception Xapian::QueryParserError::~QueryParserError;
287 %exception Xapian::SerialisationError::~SerialisationError;
288 %exception Xapian::RangeError::~RangeError;
289 %exception Xapian::WildcardError::~WildcardError;
290 %exception Xapian::DatabaseNotFoundError::~DatabaseNotFoundError;
291 %exception Xapian::DatabaseClosedError::~DatabaseClosedError;
292 %exception Xapian::ErrorHandler::~ErrorHandler;
293 %exception Xapian::ErrorHandler::ErrorHandler();
294 %exception Xapian::ESet::~ESet;
295 %exception Xapian::ESetIterator::~ESetIterator;
296 %exception Xapian::ESetIterator::operator==(const ESetIterator &a, const ESetIterator &b);
297 %exception Xapian::ESetIterator::operator!=(const ESetIterator &a, const ESetIterator &b);
298 %exception Xapian::ESetIterator::operator<(const ESetIterator &a, const ESetIterator &b);
299 %exception Xapian::ESetIterator::operator>(const ESetIterator &a, const ESetIterator &b);
300 %exception Xapian::ESetIterator::operator>=(const ESetIterator &a, const ESetIterator &b);
301 %exception Xapian::ESetIterator::operator<=(const ESetIterator &a, const ESetIterator &b);
302 %exception Xapian::ExpandDecider::~ExpandDecider;
303 %exception Xapian::ExpandDeciderAnd::~ExpandDeciderAnd;
304 %exception Xapian::ExpandDeciderFilterTerms::~ExpandDeciderFilterTerms;
305 %exception Xapian::ExpandDeciderFilterPrefix::~ExpandDeciderFilterPrefix;
306 %exception Xapian::ExpandDeciderFilterPrefix::miles_to_metres(double miles);
307 %exception Xapian::ExpandDeciderFilterPrefix::metres_to_miles(double metres);
308 %exception Xapian::ExpandDeciderFilterPrefix::LatLongCoord();
309 %exception Xapian::ExpandDeciderFilterPrefix::operator<(const LatLongCoord & other) const;
310 %exception Xapian::LatLongCoordsIterator::~LatLongCoordsIterator;
311 %exception Xapian::LatLongCoords::~LatLongCoords;
312 %exception Xapian::LatLongMetric::~LatLongMetric;
313 %exception Xapian::GreatCircleMetric::~GreatCircleMetric;
314 %exception Xapian::LatLongDistancePostingSource::~LatLongDistancePostingSource;
315 %exception Xapian::LatLongDistanceKeyMaker::~LatLongDistanceKeyMaker;
316 %exception Xapian::opt_intrusive_base::~opt_intrusive_base;
317 %exception Xapian::KeyMaker::~KeyMaker;
318 %exception Xapian::MultiValueKeyMaker::~MultiValueKeyMaker;
319 %exception Xapian::MatchSpy::~MatchSpy;
320 %exception Xapian::MatchSpy::MatchSpy();
321 %exception Xapian::ValueCountMatchSpy::~ValueCountMatchSpy;
322 %exception Xapian::ValueCountMatchSpy::get_total() const;
323 %exception Xapian::ValueCountMatchSpy::values_end() const;
324 %exception Xapian::ValueCountMatchSpy::top_values_end(size_t) const;
325 %exception Xapian::MSet::~MSet;
326 %exception Xapian::MSetIterator::~MSetIterator;
327 %exception Xapian::MSetIterator::operator==(const MSetIterator &a, const MSetIterator &b);
328 %exception Xapian::MSetIterator::operator!=(const MSetIterator &a, const MSetIterator &b);
329 %exception Xapian::MSetIterator::operator<(const MSetIterator &a, const MSetIterator &b);
330 %exception Xapian::MSetIterator::operator>(const MSetIterator &a, const MSetIterator &b);
331 %exception Xapian::MSetIterator::operator>=(const MSetIterator &a, const MSetIterator &b);
332 %exception Xapian::MSetIterator::operator<=(const MSetIterator &a, const MSetIterator &b);
333 %exception Xapian::PositionIterator::~PositionIterator;
334 %exception Xapian::PositionIterator::PositionIterator();
335 %exception Xapian::PositionIterator::operator==(const PositionIterator &a, const PositionIterator &b);
336 %exception Xapian::PositionIterator::operator!=(const PositionIterator &a, const PositionIterator &b);
337 %exception Xapian::PostingIterator::~PostingIterator;
338 %exception Xapian::PostingIterator::PostingIterator();
339 %exception Xapian::PostingIterator::positionlist_end() const;
340 %exception Xapian::PostingIterator::operator==(const PostingIterator &a, const PostingIterator &b);
341 %exception Xapian::PostingIterator::operator!=(const PostingIterator &a, const PostingIterator &b);
342 %exception Xapian::PostingSource::~PostingSource;
343 %exception Xapian::PostingSource::PostingSource();
344 %exception Xapian::PostingSource::get_maxweight() const;
345 %exception Xapian::ValuePostingSource::~ValuePostingSource;
346 %exception Xapian::ValueWeightPostingSource::~ValueWeightPostingSource;
347 %exception Xapian::DecreasingValueWeightPostingSource::~DecreasingValueWeightPostingSource;
348 %exception Xapian::ValueMapPostingSource::~ValueMapPostingSource;
349 %exception Xapian::FixedWeightPostingSource::~FixedWeightPostingSource;
350 %exception Xapian::Query::~Query;
351 %exception Xapian::Query::Query();
352 %exception Xapian::Query::get_terms_end() const;
353 %exception Xapian::Query::get_unique_terms_end() const;
354 %exception Xapian::Query::get_length() const;
355 %exception Xapian::Query::empty() const;
356 %exception Xapian::Query::get_type() const;
357 %exception Xapian::Query::get_num_subqueries() const;
358 %exception Xapian::Query::Internal();
359 %exception Xapian::Query::get_length() const;
360 %exception Xapian::Query::get_type() const;
361 %exception Xapian::Query::get_num_subqueries() const;
362 %exception Xapian::Stopper::~Stopper;
363 %exception Xapian::SimpleStopper::~SimpleStopper;
364 %exception Xapian::RangeProcessor::~RangeProcessor;
365 %exception Xapian::DateRangeProcessor::~DateRangeProcessor;
366 %exception Xapian::NumberRangeProcessor::~NumberRangeProcessor;
367 %exception Xapian::ValueRangeProcessor::~ValueRangeProcessor;
368 %exception Xapian::FieldProcessor::~FieldProcessor;
369 %exception Xapian::QueryParser::~QueryParser;
370 %exception Xapian::QueryParser::stoplist_end() const;
371 %exception Xapian::QueryParser::unstem_end(const std::string &) const;
372 %exception Xapian::QueryParser::sortable_serialise_(double value, char * buf);
373 %exception Xapian::QueryParser::sortable_unserialise(const std::string & serialised);
374 %exception Xapian::Registry::~Registry;
375 %exception Xapian::StemImplementation::~StemImplementation;
376 %exception Xapian::Stem::~Stem;
377 %exception Xapian::TermGenerator::~TermGenerator;
378 %exception Xapian::TermIterator::~TermIterator;
379 %exception Xapian::TermIterator::TermIterator();
380 %exception Xapian::TermIterator::positionlist_end() const;
381 %exception Xapian::TermIterator::operator==(const TermIterator &a, const TermIterator &b);
382 %exception Xapian::TermIterator::operator!=(const TermIterator &a, const TermIterator &b);
383 %exception Xapian::Utf8Iterator::~Utf8Iterator;
384 %exception Xapian::Utf8Iterator::calculate_sequence_length() const;
385 %exception Xapian::Utf8Iterator::Utf8Iterator();
386 %exception Xapian::Utf8Iterator::operator*() const;
387 %exception Xapian::Utf8Iterator::strict_deref() const;
388 %exception Xapian::Utf8Iterator::operator==(const Utf8Iterator& other) const;
389 %exception Xapian::Utf8Iterator::operator!=(const Utf8Iterator& other) const;
390 %exception Xapian::Utf8Iterator::get_character_info(unsigned ch);
391 %exception Xapian::ValueIterator::~ValueIterator;
392 %exception Xapian::ValueIterator::ValueIterator();
393 %exception Xapian::ValueIterator::operator==(const ValueIterator &a, const ValueIterator &b);
394 %exception Xapian::ValueIterator::operator!=(const ValueIterator &a, const ValueIterator &b);
395 %exception Xapian::ValueSetMatchDecider::~ValueSetMatchDecider;
396 %exception Xapian::Weight::~Weight;
397 %exception Xapian::BoolWeight::~BoolWeight;
398 %exception Xapian::TfIdfWeight::~TfIdfWeight;
399 %exception Xapian::BM25Weight::~BM25Weight;
400 %exception Xapian::BM25PlusWeight::~BM25PlusWeight;
401 %exception Xapian::TradWeight::~TradWeight;
402 %exception Xapian::InL2Weight::~InL2Weight;
403 %exception Xapian::IfB2Weight::~IfB2Weight;
404 %exception Xapian::IneB2Weight::~IneB2Weight;
405 %exception Xapian::BB2Weight::~BB2Weight;
406 %exception Xapian::DLHWeight::~DLHWeight;
407 %exception Xapian::PL2Weight::~PL2Weight;
408 %exception Xapian::PL2PlusWeight::~PL2PlusWeight;
409 %exception Xapian::DPHWeight::~DPHWeight;
410 %exception Xapian::LMWeight::~LMWeight;
411 %exception Xapian::CoordWeight::~CoordWeight;
412 
413 %exception {
414     try {
415 	$action
416     } catch (...) {
417 	Xapian::SetPythonException();
418 	SWIG_fail;
419     }
420 }
421 
422 /* If a Python error is raised by a call to a director function, the following
423  * code should cause a C++ exception to be thrown.
424  */
425 %feature("director:except") {
426     if ($error != NULL) {
427 	throw Swig::DirectorMethodException();
428     }
429 }
430 
431 /* vim:syntax=cpp:set noexpandtab: */
432