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

          Container Issues

            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