Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-11764

Fix pickling support in daf_base for pybind11 2.2.0

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Templates:
    • Story Points:
      2
    • Sprint:
      DRP F17-4
    • Team:
      Data Release Production

      Description

      Pickling support has changed in pybind11 2.2.0. This release introduces the py::pickle convenience function and deprecates placement new constructors. Unfortunately, it does not seem to trivially work for the complicated get/setstate in daf::base::PropertyList (which do Python callbacks). Worse, the old/current way of wrapping doesn't only print deprecation warnings (about the placement new), but also throws:

          def checkPickle(self, original):
      >       new = pickle.loads(pickle.dumps(original, 2))
      E       RuntimeError: return_value_policy = copy, but the object is non-copyable!
      

      Track down this issue and fix it.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                pschella Pim Schellart [X] (Inactive)
                Reporter:
                pschella Pim Schellart [X] (Inactive)
                Reviewers:
                Fred Moolekamp
                Watchers:
                Fred Moolekamp, Pim Schellart [X] (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Summary Panel