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

Add function for Pybind11 wrapping of PersistableFacade

    XMLWordPrintable

    Details

      Description

      Because pybind11 requires explicit wrapping of each template instantiation, the curiously recurring template pattern is difficult to wrap – details of which methods need to be wrapped should be centralized in one place, but the instantiations naturally belong to the classes that inherit from the template.

      The PersistableFacade interface is an example of the CRTP used by roughly a dozen classes across the stack. It should be wrapped by defining a function in afw::table::io for creating a pybind11 wrapper, then calling the function when wrapping a class that implements PersistableFacade<T>.

        Attachments

          Issue Links

            Activity

            Hide
            krzys Krzysztof Findeisen added a comment -

            Hi Russell Owen, please review this code to see if there are any design problems I've missed.

            Show
            krzys Krzysztof Findeisen added a comment - Hi Russell Owen , please review this code to see if there are any design problems I've missed.
            Hide
            pschella Pim Schellart [X] (Inactive) added a comment -

            Looks good to me. Some minor questions on PR.

            Show
            pschella Pim Schellart [X] (Inactive) added a comment - Looks good to me. Some minor questions on PR.
            Hide
            krzys Krzysztof Findeisen added a comment -

            Fixed and merged.

            Show
            krzys Krzysztof Findeisen added a comment - Fixed and merged.

              People

              Assignee:
              krzys Krzysztof Findeisen
              Reporter:
              krzys Krzysztof Findeisen
              Reviewers:
              Pim Schellart [X] (Inactive)
              Watchers:
              Krzysztof Findeisen, Pim Schellart [X] (Inactive), Russell Owen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.