1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import six
- def hydrate_string(dry_value):
- return six.text_type(dry_value) if dry_value else ''
- def dehydrate_string(wet_value):
- return wet_value
- def hydrate_bool(dry_value):
- return dry_value == 'True'
- def dehydrate_bool(wet_value):
- return 'True' if wet_value else 'False'
- def hydrate_int(dry_value):
- return int(dry_value)
- def dehydrate_int(wet_value):
- return six.text_type(wet_value)
- def hydrate_list(dry_value):
- return [x for x in dry_value.split(',') if x]
- def dehydrate_list(wet_value):
- return ','.join(wet_value)
- VALUE_HYDRATORS = {
- 'string': (hydrate_string, dehydrate_string),
- 'bool': (hydrate_bool, dehydrate_bool),
- 'int': (hydrate_int, dehydrate_int),
- 'list': (hydrate_list, dehydrate_list),
- }
- def hydrate_value(python_type, dry_value):
- try:
- value_hydrator = VALUE_HYDRATORS[python_type][0]
- except KeyError:
- raise ValueError("%s type is not hydrateable" % python_type)
- return value_hydrator(dry_value)
- def dehydrate_value(python_type, wet_value):
- try:
- value_dehydrator = VALUE_HYDRATORS[python_type][1]
- except KeyError:
- raise ValueError("%s type is not dehydrateable" % python_type)
- return value_dehydrator(wet_value)
|