Since we are just wrapping flatbuffers, we don't need to wrap the c++ code. We can just write equivalent python wrappers for flatbuffers. I realize this means that we have additional independent code. However, I don't know how well pybind11 would work with things like iterators. I'm guessing that since pmts are approximating a python dictionary anyway that the wrapper code would be pretty simple.
We should definitely include numpy support (i.e. convert to/from numpy arrays and pmts).
We should make sure that when we pass a pmt from python to c++ or vice versa that it doesn't alloc new memory. We should be able to just pass pointers around.
What does the PMT library look like in Python?