Starting from version 13, sdformat introduced native Python bindings. It's worth investigating if we could just call this library (that depends only on sdformat) instead of requiring to find the entire Gazebo Classic or Gazebo Sim suite.
Few comments: