Skip to content

Commit d99e6ca

Browse files
committed
Wrap the new evaluator type "CHECK".
Make it conditional on the recent libdiffpy version. TODO: Remove ifdefs in the next micro release.
1 parent 0414c8a commit d99e6ca

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

srrealmodule/wrap_PairQuantity.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ python::object eval_asarray(PairQuantity& obj, python::object& a)
347347
const char* evtp_NONE = "NONE";
348348
const char* evtp_BASIC = "BASIC";
349349
const char* evtp_OPTIMIZED = "OPTIMIZED";
350+
const char* evtp_CHECK = "CHECK";
350351

351352
std::string stringevaluatortype(PQEvaluatorType tp)
352353
{
@@ -358,6 +359,10 @@ std::string stringevaluatortype(PQEvaluatorType tp)
358359
return evtp_BASIC;
359360
case OPTIMIZED:
360361
return evtp_OPTIMIZED;
362+
#if DIFFPY_VERSION >= 1003002023
363+
case CHECK:
364+
return evtp_CHECK;
365+
#endif
361366
}
362367
const char* emsg = "Unknown internal value of PQEvaluatorType.";
363368
PyErr_SetString(PyExc_NotImplementedError, emsg);
@@ -376,8 +381,15 @@ void setevaluatortype(PairQuantity& pq, const std::string& tp)
376381
{
377382
if (tp == evtp_BASIC) return pq.setEvaluatorType(BASIC);
378383
if (tp == evtp_OPTIMIZED) return pq.setEvaluatorType(OPTIMIZED);
384+
#if DIFFPY_VERSION >= 1003002023
385+
if (tp == evtp_CHECK) return pq.setEvaluatorType(CHECK);
386+
python::object emsg = ("evaluatortype must be one of %r." %
387+
python::make_tuple(python::make_tuple(
388+
evtp_BASIC, evtp_OPTIMIZED, evtp_CHECK)));
389+
#else
379390
python::object emsg = ("evaluatortype must be either %r or %r." %
380391
python::make_tuple(evtp_BASIC, evtp_OPTIMIZED));
392+
#endif
381393
PyErr_SetObject(PyExc_ValueError, emsg.ptr());
382394
throw_error_already_set();
383395
}

0 commit comments

Comments
 (0)