### Problem We kind of started this work in https://github.com/diffpy/diffpy.utils/pull/178, but the functions have changed quite a lot since then. I think it's a good time to wrap this up. ### Proposed solution