Another thing about this.  I think the bandpass files you included for LSST could be pre-truncated.  There are an awful lot of lines in them that are not really relevant to the actual bandpass function.  I think it would be more useful to include a reasonably truncated version of the file (e.g. with relative_throughput = 1.e-3) in the repo rather than the full thing.  (A comment at the top could say where the original file came from and how it was processed with the truncate function.) That way the user doesn't accidentally forget to truncate and end up wasting a lot of time integrating over the region that is basically zero.

Also, another kind of truncation that might help (I haven't tried this yet) is to remove intermediate values that don't add any useful information.  e.g. [ (1, 4), (2, 6), (3, 8) ] is equivalent to [ (1, 4), (3,8) ].  I think this might help the efficiency of the integration a bit, since the bandpasses are very dense in (wave, value) pairs, and I think thinning it out a bit could help speed things up.