The following code:
approxdp_budget = ApproxDPBudget(1, 1e-5)
zcdp_budget = RhoZCDPBudget.from_budget(approxdp_budget)
should work, and return a budget with the largest ρ that satisfies "if a mechanism is ρ-zCDP, then it's also (ε,δ)-DP". Same for:
zcdp_budget = RhoZCDPBudget(0.15)
puredp_budget = PureDP.from_budget(zcdp_budget)
It addresses a common user need, and it's very tempting for users to implement this themselves if we don't provide such a conversion util, so we should be doing this. I don't know if this is the best interface for it though, @Maegereg @tmager would love your thoughts there.