Skip to content

Commit 48b56fd

Browse files
committed
Fixes pickle bug
1 parent 2c923e2 commit 48b56fd

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

cpp/rat.cpp

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1853,13 +1853,13 @@ PYBIND11_MODULE(rat_core, m) {
18531853
p.bulkIns, p.bulkOuts, p.resolutionParams, p.params, p.numberOfLayers, p.contrastLayers, p.layersDetails,
18541854
p.customFiles, p.modelType, p.contrastCustomFiles, p.contrastDomainRatios, p.domainRatios,
18551855
p.numberOfDomainContrasts, p.domainContrastLayers, p.fitParams, p.otherParams, p.fitLimits,
1856-
p.otherLimits, p.names.backgroundParams, p.names.scalefactors, p.names.qzshifts, p.names.bulkIns,
1857-
p.names.bulkOuts, p.names.resolutionParams, p.names.domainRatios, p.names.contrasts,
1856+
p.otherLimits, p.names.params, p.names.backgroundParams, p.names.scalefactors, p.names.qzshifts,
1857+
p.names.bulkIns, p.names.bulkOuts, p.names.resolutionParams, p.names.domainRatios, p.names.contrasts,
18581858
p.checks.params, p.checks.backgroundParams, p.checks.scalefactors, p.checks.qzshifts,
18591859
p.checks.bulkIns, p.checks.bulkOuts, p.checks.resolutionParams, p.checks.domainRatios);
18601860
},
18611861
[](py::tuple t) { // __setstate__
1862-
if (t.size() != 57)
1862+
if (t.size() != 58)
18631863
throw std::runtime_error("Encountered invalid state unpickling ProblemDefinition object!");
18641864

18651865
/* Create a new C++ instance */
@@ -1907,23 +1907,24 @@ PYBIND11_MODULE(rat_core, m) {
19071907
p.fitLimits = t[39].cast<py::array_t<real_T>>();
19081908
p.otherLimits = t[40].cast<py::array_t<real_T>>();
19091909

1910-
p.names.backgroundParams = t[41].cast<py::list>();
1911-
p.names.scalefactors = t[42].cast<py::list>();
1912-
p.names.qzshifts = t[43].cast<py::list>();
1913-
p.names.bulkIns = t[44].cast<py::list>();
1914-
p.names.bulkOuts = t[45].cast<py::list>();
1915-
p.names.resolutionParams = t[46].cast<py::list>();
1916-
p.names.domainRatios = t[47].cast<py::list>();
1917-
p.names.contrasts = t[48].cast<py::list>();
1918-
1919-
p.checks.params = t[49].cast<py::array_t<real_T>>();
1920-
p.checks.backgroundParams = t[50].cast<py::array_t<real_T>>();
1921-
p.checks.scalefactors = t[51].cast<py::array_t<real_T>>();
1922-
p.checks.qzshifts = t[52].cast<py::array_t<real_T>>();
1923-
p.checks.bulkIns = t[53].cast<py::array_t<real_T>>();
1924-
p.checks.bulkOuts = t[54].cast<py::array_t<real_T>>();
1925-
p.checks.resolutionParams = t[55].cast<py::array_t<real_T>>();
1926-
p.checks.domainRatios = t[56].cast<py::array_t<real_T>>();
1910+
p.names.params = t[41].cast<py::list>();
1911+
p.names.backgroundParams = t[42].cast<py::list>();
1912+
p.names.scalefactors = t[43].cast<py::list>();
1913+
p.names.qzshifts = t[44].cast<py::list>();
1914+
p.names.bulkIns = t[45].cast<py::list>();
1915+
p.names.bulkOuts = t[46].cast<py::list>();
1916+
p.names.resolutionParams = t[47].cast<py::list>();
1917+
p.names.domainRatios = t[48].cast<py::list>();
1918+
p.names.contrasts = t[49].cast<py::list>();
1919+
1920+
p.checks.params = t[50].cast<py::array_t<real_T>>();
1921+
p.checks.backgroundParams = t[51].cast<py::array_t<real_T>>();
1922+
p.checks.scalefactors = t[52].cast<py::array_t<real_T>>();
1923+
p.checks.qzshifts = t[53].cast<py::array_t<real_T>>();
1924+
p.checks.bulkIns = t[54].cast<py::array_t<real_T>>();
1925+
p.checks.bulkOuts = t[55].cast<py::array_t<real_T>>();
1926+
p.checks.resolutionParams = t[56].cast<py::array_t<real_T>>();
1927+
p.checks.domainRatios = t[57].cast<py::array_t<real_T>>();
19271928

19281929
return p;
19291930
}));

tests/test_inputs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ def test_make_input(test_project, test_problem, test_limits, test_priors, test_c
572572
]
573573

574574
problem, limits, priors, controls = make_input(test_project, RATapi.Controls())
575-
# problem = pickle.loads(pickle.dumps(problem))
575+
problem = pickle.loads(pickle.dumps(problem))
576576
check_problem_equal(problem, test_problem)
577577

578578
limits = pickle.loads(pickle.dumps(limits))

0 commit comments

Comments
 (0)