Would love a way to pass custom dehydration functions through config when starting the driver, this would give more flexibility for passing different python data types as parameters without having to convert each case separately. We currently monkeypatched your DataDehydrator as a workaround, to support UUID's and ObjectId's:
self.dehydration_functions.update({
UUID: lambda x: str(x),
ObjectId: lambda x: str(x)
})
Having this as a built-in feature would of course be preferable over monkeypatching.
I've also considered hydration functions but I see that this could affect performance, since the types are not known beforehand and every string property would have to be checked. Currently we convert returned ID's back to UUID's for each query separately.