Best way to determine how PyTypeObject should be populated amongst different versions of Python

Hi,

I am getting boost::python to work with multiple versions the Python C API. One thing I noticed is that the fields in PyTypeObject has changed from Python version to version. I tried to populated the struct with macro guards using PYTHON_API_VERSION and PYTHON_API_VERSION. But those have been relatively static amongst the versions of Python in which they exist. I’d think that PYTHONA_BI_VERSION would change when the PyTypeObject struct changed, but doesn’t appear to be the case. Is my only hope to use PY_VERSION_HEX?

Thanks,

Tom