Source code for p_config.converter
import re
[docs]class Converter:
"""Convert raw value to expected format.
For example: when you get port value from `os.environ`,
you may get a '80', then you have to convert it into int.
"""
[docs] def convert(self, value):
return value
def __call__(self, value):
return self.convert(value)
[docs]class CSV(Converter):
"""Convert csv like string into list.
For example: you have 'a.com,b.com,c.com' as raw value
and you can get ['a.com', 'b.com', 'c.com'] via CSV.
>>> CSV(delimiter_pattern='[,|]').convert('a.com,b.com|c.com')
['a.com', 'b.com', 'c.com']
"""
def __init__(self, cast_func=str, delimiter_pattern=','):
self.cast_func = cast_func
self.delimiter_pattern = delimiter_pattern
[docs] def convert(self, value):
result = []
for item in re.split(self.delimiter_pattern, value):
item = item.strip()
if item:
result.append(item)
return result