Beispiel #1
0
def test_declare_custom_parser2():
    conf = confect.Conf()

    with conf.declare_group('dummy') as cg:
        cg.a_int = 3
        cg.some_string = 'some string'

        cg.color = conf.prop(
            default=Color.RED,
            parser=lambda s: getattr(Color, s.upper())
        )

    assert conf.dummy.a_int == 3
    assert conf.dummy.some_string == 'some string'
    assert conf.dummy.color == Color.RED
Beispiel #2
0
def conf():
    conf = confect.Conf()

    with conf.declare_group('dummy') as cg:
        cg.a_number = 3
        cg.some_string = 'some string'
        cg.some_day = dt.date(2018, 8, 3)
        cg.some_time = dt.datetime(2018, 8, 3, 10, 3, tzinfo=dt.timezone.utc)

        cg.color = conf.prop(
            default=Color.RED,
            parser=lambda s: getattr(Color, s.upper())
        )

    return conf
Beispiel #3
0
def test_declare_custom_parser1():

    def simple_timedelta_parser(s):
        '''A simple timedelta parser

        It reads a string in '<amount><unit>' format,
        and return timedelta object.

        Available units
        - d: days
        - h: hours
        - m: minutes
        - s: seconds
        - ms: milliseconds

        >>> simple_timedelta_parser('-3d')
        datetime.timedelta(-3)

        >>> simple_timedelta_parser('5h')
        datetime.timedelta(0, 18000)

        '''
        amount, unit = re.fullmatch(r'([+-]?\d+)(\w+)', s).groups()
        amount = int(amount)
        UNIT_MAP = {
            'd': 'days',
            'h': 'hours',
            'm': 'minutes',
            's': 'seconds',
            'ms': 'microseconds'
        }
        unit = UNIT_MAP[unit]

        return dt.timedelta(**{unit: amount})

    conf = confect.Conf()

    with conf.declare_group('yo') as g:
        g.some_prop = conf.prop(
            dt.timedelta(days=3), parser=simple_timedelta_parser)
Beispiel #4
0
def conf():
    conf = confect.Conf()

    with conf.declare_group('dummy') as cg:
        cg.a_int = 3
        cg.a_float = 3.14
        cg.some_bytes = b'oeu'
        cg.some_string = 'some string'
        cg.some_day = dt.date(2018, 8, 3)
        cg.some_time = dt.datetime(2018, 8, 3, 10, 3)
        cg.some_time_tz = dt.datetime(2018, 8, 3, 10, 3, tzinfo=dt.timezone.utc)
        cg.a_list = [1, 3]
        cg.a_tuple = (2, 4)
        cg.a_dict = {'A': 'a', 'B': 'b'}
        cg.some_time_pdl = pdl.datetime(2018, 8, 9, 10, 3, 1)
        cg.some_day_pdl = pdl.date(2018, 8, 9)

        cg.color = conf.prop(
            default=Color.RED,
            parser=lambda s: getattr(Color, s.upper())
        )

    return conf
Beispiel #5
0
import confect

conf = confect.Conf()
conf.load_module('gcurtain_conf')
conf.load_envvars('gcurtain')