Thinking more about it:
Doing a set -> json is easy, just behave as if your set is a list but the problem arise with json -> set. Since the json object will be represented as a list and the de-serializer will not be able to distinguish what is list and what is set.

So 2 options
- we move to requiring the flask extension that allows us to keep using pickle
- we port to json and we break the API because groups becomes a list and not a set/frozenset (unless we can find a way to convert the list to set/frozenset after we retrieve the info and before we process the rest of the request)