def test_lconf_emit_ok8():
    """ Tests: test_lconf_emit_ok8
   """
    print('::: TEST: test_lconf_emit_ok8()')

    lconf_section__template_obj = get_lconf_section__base_example_template_obj(
    )
    lconf_section_raw_str = get_lconf_section__base_example_lconf_section_raw_str(
    )

    lconf_obj = lconf_parse_section_extract_by_name(
        lconf_section_raw_str,
        'BaseEXAMPLE',
        lconf_section__template_obj,
        with_comments=False,
        validate=True)

    emit_result = lconf_emit(lconf_obj,
                             onelinelists=LCONF_YES,
                             empty_key_value_pair=True)
    reparsed_lconf_obj = lconf_parse_section_extract_by_name(
        emit_result,
        'BaseEXAMPLE',
        lconf_section__template_obj,
        with_comments=False,
        validate=True)

    re_emit_result = lconf_emit(reparsed_lconf_obj,
                                onelinelists=LCONF_YES,
                                empty_key_value_pair=True)
    eq_(emit_result, re_emit_result, msg=None)
Exemple #2
0
def test_lconf_emit_ok8():
   """ Tests: test_lconf_emit_ok8
   """
   print('::: TEST: test_lconf_emit_ok8()')

   lconf_section__template_obj = get_lconf_section__base_example_template_obj()
   lconf_section_raw_str = get_lconf_section__base_example_lconf_section_raw_str()

   lconf_obj = lconf_parse_section_extract_by_name(
      lconf_section_raw_str,
      'BaseEXAMPLE',
      lconf_section__template_obj,
      with_comments=False,
      validate=True
   )

   emit_result = lconf_emit(lconf_obj, onelinelists=LCONF_YES, empty_key_value_pair=True)
   reparsed_lconf_obj = lconf_parse_section_extract_by_name(
      emit_result,
      'BaseEXAMPLE',
      lconf_section__template_obj,
      with_comments=False,
      validate=True
   )

   re_emit_result = lconf_emit(reparsed_lconf_obj, onelinelists=LCONF_YES, empty_key_value_pair=True)
   eq_(emit_result, re_emit_result, msg=None)
def test_lconf_emit_ok0():
    """ Tests: test_lconf_emit_ok0
   """
    print('::: TEST: test_lconf_emit_ok0()')

    lconf_section__template_obj = Root([
        # Default Empty Line
        ('#1', ''),
        # Default Comment Line
        ('#2', '# Comment-Line: `Key :: Value Pair`'),
        ('first', ''),
        ('last', ''),
        ('sex', ''),
        ('age', ''),
        ('salary', ''),
        ('#3', '# Comment-Line: `Key-Value-List`'),
        ('interests', KVList(True, [])),
        ('#4', '# Comment-Line: `Key :: Value Pair`'),
        ('registered', ''),
    ])

    lconf_section_raw_str = r'''___SECTION :: Test Example1

# Comment-Line: `Key :: Value Pair`
first :: Joe
last :: Smith
sex :: m
age :: 18
salary :: 12500
# Comment-Line: `Key-Value-List`
- interests :: soccer,tennis
# Comment-Line: `Key :: Value Pair`
registered :: False
___END'''

    lconf_obj = lconf_parse_section_extract_by_name(
        lconf_section_raw_str,
        'Test Example1',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    emit_result = lconf_emit(lconf_obj,
                             onelinelists=LCONF_DEFAULT,
                             empty_key_value_pair=True)
    eq_(lconf_section_raw_str, emit_result, msg=None)

    reparsed_lconf_obj = lconf_parse_section_extract_by_name(
        emit_result,
        'Test Example1',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    eq_(lconf_obj, reparsed_lconf_obj, msg=None)
    re_emit_result = lconf_emit(reparsed_lconf_obj,
                                onelinelists=LCONF_DEFAULT,
                                empty_key_value_pair=True)
    eq_(lconf_section_raw_str, re_emit_result, msg=None)
Exemple #4
0
def test_lconf_emit_ok0():
   """ Tests: test_lconf_emit_ok0
   """
   print('::: TEST: test_lconf_emit_ok0()')

   lconf_section__template_obj = Root([
      # Default Empty Line
      ('#1', ''),
      # Default Comment Line
      ('#2', '# Comment-Line: `Key :: Value Pair`'),
      ('first', ''),
      ('last', ''),
      ('sex', ''),
      ('age', ''),
      ('salary', ''),
      ('#3', '# Comment-Line: `Key-Value-List`'),
      ('interests', KVList(True, [])),
      ('#4', '# Comment-Line: `Key :: Value Pair`'),
      ('registered', ''),
   ])

   lconf_section_raw_str = r'''___SECTION :: Test Example1

# Comment-Line: `Key :: Value Pair`
first :: Joe
last :: Smith
sex :: m
age :: 18
salary :: 12500
# Comment-Line: `Key-Value-List`
- interests :: soccer,tennis
# Comment-Line: `Key :: Value Pair`
registered :: False
___END'''

   lconf_obj = lconf_parse_section_extract_by_name(
      lconf_section_raw_str,
      'Test Example1',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   emit_result = lconf_emit(lconf_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=True)
   eq_(lconf_section_raw_str, emit_result, msg=None)

   reparsed_lconf_obj = lconf_parse_section_extract_by_name(
      emit_result,
      'Test Example1',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   eq_(lconf_obj, reparsed_lconf_obj, msg=None)
   re_emit_result = lconf_emit(reparsed_lconf_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=True)
   eq_(lconf_section_raw_str, re_emit_result, msg=None)
def main():
   # ---------------------------------- EXAMPLE 4 a ---------------------------------- #

   # EXAMPLE 4 a: ONLY VALIDATE
   lconf_validate_one_section_str(lconf_section__example_4a_lconf_section_raw_str)

   # EXAMPLE 4 a: ONLY PREPARE DEFAULT OBJ
   lconf_default_obj = lconf_prepare_default_obj(lconf_section__example_4a__template_obj, with_comments=False)
   print('\n\n============== EXAMPLE 4 a: ONLY PREPARE DEFAULT OBJ ==============\n')
   print(lconf_default_obj)

   # EXAMPLE 4 a: VALIDATE, PREPARE, PARSE:
   # validate a `LCONF-Section string` and prepare a default lconf obj from the template obj and parse the LCONF-Section
   print('\n\n============== EXAMPLE 4 a: VALIDATE, PREPARE, PARSE ==============\n')
   lconf_parse_obj = lconf_prepare_and_parse_section(
      lconf_section__example_4a_lconf_section_raw_str,
      lconf_section__example_4a__template_obj,
      with_comments=True,
      validate=True
   )
   print(lconf_parse_obj)

   # EXAMPLE 4 a: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: this is also useful to extract from files
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__example_4a_lconf_section_raw_str,
      'EXAMPLE 4 a',
      lconf_section__example_4a__template_obj,
      with_comments=True,
      validate=True
   )
   print(
      '\n\n============== EXAMPLE 4 a: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: also for files ==============\n')
   print(lconf_parse_obj)

   # EXAMPLE 4 a: ACCESS The Section-INFO
   print('\n\n============== EXAMPLE 4 a: ACCESS The Section-INFO ==============\n')
   print('  lconf_parse_obj.key_order: ', lconf_parse_obj.key_order)
   print('  lconf_parse_obj.section_name: ', lconf_parse_obj.section_name)
   print('  lconf_parse_obj.is_parsed: ', lconf_parse_obj.is_parsed)
   print('  lconf_parse_obj.has_comments: ', lconf_parse_obj.has_comments)

   # EXAMPLE 4 a: EMIT DEFAULT OBJ
   lconf_section_emitted_default_obj_str = lconf_emit_default_obj(
      lconf_section__example_4a__template_obj,
      'EMITTED EXAMPLE 4 a',
      onelinelists=LCONF_DEFAULT,
      with_comments=True
   )
   print('\n\n============== EXAMPLE 4 a: EMIT DEFAULT OBJ ==============\n')
   print(lconf_section_emitted_default_obj_str)

   # EXAMPLE: EMIT PARSED LCONF OBJ
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__example_4a_lconf_section_raw_str,
      'EXAMPLE 4 a',
      lconf_section__example_4a__template_obj,
      with_comments=True,
      validate=True
   )
   lconf_section_emitted_parsed_obj_str = lconf_emit(lconf_parse_obj, onelinelists=LCONF_DEFAULT)

   print('\n\n============== EXAMPLE 4 a: EMIT PARSED LCONF OBJ ==============\n')
   print(lconf_section_emitted_parsed_obj_str)

   # EXAMPLE 4 a: EMIT TO JSON
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__example_4a_lconf_section_raw_str,
      'EXAMPLE 4 a',
      lconf_section__example_4a__template_obj,
      with_comments=False,
      validate=True
   )
   result_ordered_native_type = lconf_to_ordered_native_type(lconf_parse_obj)
   dump_json = json_dumps(result_ordered_native_type, indent=3)

   print('\n\n============== EXAMPLE 4 a: EMIT TO ORDERED JSON ==============\n')
   print(dump_json)

   # EXAMPLE: EMIT TO YAML
   if has_yaml:
      lconf_parse_obj = lconf_parse_section_extract_by_name(
         lconf_section__example_4a_lconf_section_raw_str,
         'EXAMPLE 4 a',
         lconf_section__example_4a__template_obj,
         with_comments=False,
         validate=True
      )
      result_native_type = lconf_to_native_type(lconf_parse_obj)
      dump_yaml = yaml_dump(result_native_type, indent=3, allow_unicode=True)

      print('\n\n============== EXAMPLE 4 a: EMIT TO YAML ==============\n')
      print(dump_yaml)


   # ---------------------------------- EXAMPLE 4 b ---------------------------------- #

   # EXAMPLE 4 b: ONLY VALIDATE
   lconf_validate_one_section_str(lconf_section__example_4b_lconf_section_raw_str)

   # EXAMPLE 4 b: ONLY PREPARE DEFAULT OBJ
   lconf_default_obj = lconf_prepare_default_obj(lconf_section__example_4b__template_obj, with_comments=False)
   print('\n\n============== EXAMPLE 4 b: ONLY PREPARE DEFAULT OBJ ==============\n')
   print(lconf_default_obj)

   # EXAMPLE 4 b: VALIDATE, PREPARE, PARSE:
   # validate a `LCONF-Section string` and prepare a default lconf obj from the template obj and parse the LCONF-Section
   print('\n\n============== EXAMPLE 4 b: VALIDATE, PREPARE, PARSE ==============\n')
   lconf_parse_obj = lconf_prepare_and_parse_section(
      lconf_section__example_4b_lconf_section_raw_str,
      lconf_section__example_4b__template_obj,
      with_comments=True,
      validate=True
   )
   print(lconf_parse_obj)

   # EXAMPLE 4 b: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: this is also useful to extract from files
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__example_4b_lconf_section_raw_str,
      'EXAMPLE 4 b',
      lconf_section__example_4b__template_obj,
      with_comments=True,
      validate=True
   )
   print(
      '\n\n============== EXAMPLE 4 b: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: also for files ==============\n')
   print(lconf_parse_obj)

   # EXAMPLE 4 b: ACCESS The Section-INFO
   print('\n\n============== EXAMPLE 4 b: ACCESS The Section-INFO ==============\n')
   print('  lconf_parse_obj.key_order: ', lconf_parse_obj.key_order)
   print('  lconf_parse_obj.section_name: ', lconf_parse_obj.section_name)
   print('  lconf_parse_obj.is_parsed: ', lconf_parse_obj.is_parsed)
   print('  lconf_parse_obj.has_comments: ', lconf_parse_obj.has_comments)

   # EXAMPLE 4 b: EMIT DEFAULT OBJ
   lconf_section_emitted_default_obj_str = lconf_emit_default_obj(
      lconf_section__example_4b__template_obj,
      'EMITTED EXAMPLE 4 b',
      onelinelists=LCONF_DEFAULT,
      with_comments=True
   )
   print('\n\n============== EXAMPLE 4 b: EMIT DEFAULT OBJ ==============\n')
   print(lconf_section_emitted_default_obj_str)

   # EXAMPLE: EMIT PARSED LCONF OBJ
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__example_4b_lconf_section_raw_str,
      'EXAMPLE 4 b',
      lconf_section__example_4b__template_obj,
      with_comments=True,
      validate=True
   )
   lconf_section_emitted_parsed_obj_str = lconf_emit(lconf_parse_obj, onelinelists=LCONF_DEFAULT)

   print('\n\n============== EXAMPLE 4 b: EMIT PARSED LCONF OBJ ==============\n')
   print(lconf_section_emitted_parsed_obj_str)

   # EXAMPLE 4 b: EMIT TO JSON
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__example_4b_lconf_section_raw_str,
      'EXAMPLE 4 b',
      lconf_section__example_4b__template_obj,
      with_comments=False,
      validate=True
   )
   result_ordered_native_type = lconf_to_ordered_native_type(lconf_parse_obj)
   dump_json = json_dumps(result_ordered_native_type, indent=3)

   print('\n\n============== EXAMPLE 4 b: EMIT TO ORDERED JSON ==============\n')
   print(dump_json)

   # EXAMPLE: EMIT TO YAML
   if has_yaml:
      lconf_parse_obj = lconf_parse_section_extract_by_name(
         lconf_section__example_4b_lconf_section_raw_str,
         'EXAMPLE 4 b',
         lconf_section__example_4b__template_obj,
         with_comments=False,
         validate=True
      )
      result_native_type = lconf_to_native_type(lconf_parse_obj)
      dump_yaml = yaml_dump(result_native_type, indent=3, allow_unicode=True)

      print('\n\n============== EXAMPLE 4 b: EMIT TO YAML ==============\n')
      print(dump_yaml)
def main():
    pass

    # EXAMPLE: ONLY VALIDATE
    lconf_validate_one_section_str(
        lconf_section__base_example_lconf_section_raw_str)

    # EXAMPLE: ONLY PREPARE DEFAULT OBJ
    lconf_default_obj = lconf_prepare_default_obj(
        lconf_section__base_example_template_obj, with_comments=False)
    print(
        '\n\n============== EXAMPLE: ONLY PREPARE DEFAULT OBJ ==============\n'
    )
    print(lconf_default_obj)

    # EXAMPLE: VALIDATE, PREPARE, PARSE:
    # validate a `LCONF-Section string` and prepare a default lconf obj from the template obj and parse the LCONF-Section
    print(
        '\n\n============== EXAMPLE: VALIDATE, PREPARE, PARSE ==============\n'
    )
    lconf_parse_obj = lconf_prepare_and_parse_section(
        lconf_section__base_example_lconf_section_raw_str,
        lconf_section__base_example_template_obj,
        with_comments=True,
        validate=True)
    print(lconf_parse_obj)

    # EXAMPLE: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: this is also useful to extract from files
    lconf_parse_obj = lconf_parse_section_extract_by_name(
        lconf_section__base_example_lconf_section_raw_str,
        'BaseEXAMPLE',
        lconf_section__base_example_template_obj,
        with_comments=True,
        validate=True)
    print(
        '\n\n============== EXAMPLE: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: also for files ==============\n'
    )
    print(lconf_parse_obj)

    # EXAMPLE: ACCESS The Section-INFO
    print(
        '\n\n============== EXAMPLE: ACCESS The Section-INFO ==============\n')
    print(('  lconf_parse_obj.key_order: ', lconf_parse_obj.key_order))
    print(('  lconf_parse_obj.key_empty_replacementvalue: ',
           lconf_parse_obj.key_empty_replacementvalue))
    print(('  lconf_parse_obj.section_name: ', lconf_parse_obj.section_name))
    print(('  lconf_parse_obj.is_parsed: ', lconf_parse_obj.is_parsed))
    print(('  lconf_parse_obj.has_comments: ', lconf_parse_obj.has_comments))

    # EXAMPLE: EMIT DEFAULT OBJ
    lconf_section_emitted_default_obj_str = lconf_emit_default_obj(
        lconf_section__base_example_template_obj,
        'EMITTED BaseEXAMPLE',
        onelinelists=LCONF_DEFAULT,
        with_comments=True)
    print('\n\n============== EXAMPLE: EMIT DEFAULT OBJ (==============\n')
    print(lconf_section_emitted_default_obj_str)

    # EXAMPLE: EMIT PARSED LCONF OBJ
    lconf_parse_obj = lconf_parse_section_extract_by_name(
        lconf_section__base_example_lconf_section_raw_str,
        'BaseEXAMPLE',
        lconf_section__base_example_template_obj,
        with_comments=True,
        validate=True)
    lconf_section_emitted_parsed_obj_str = lconf_emit(
        lconf_parse_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=True)

    print(
        '\n\n============== EXAMPLE: EMIT PARSED LCONF OBJ (empty_key_value_pair=True) ==============\n'
    )
    print(lconf_section_emitted_parsed_obj_str)

    lconf_section_emitted_parsed_obj_str = lconf_emit(
        lconf_parse_obj,
        onelinelists=LCONF_DEFAULT,
        empty_key_value_pair=False)
    print(
        '\n\n============== EXAMPLE: EMIT PARSED LCONF OBJ (empty_key_value_pair=False) ==============\n'
    )
    print(lconf_section_emitted_parsed_obj_str)

    # EXAMPLE: EMIT TO JSON
    lconf_parse_obj = lconf_parse_section_extract_by_name(
        lconf_section__base_example_lconf_section_raw_str,
        'BaseEXAMPLE',
        lconf_section__base_example_template_obj,
        with_comments=False,
        validate=True)
    result_ordered_native_type = lconf_to_ordered_native_type(lconf_parse_obj)
    # IMPORTANT: datetime.datetime(2014, 5, 8, 13, 39) is not JSON serializable
    result_ordered_native_type['key11value_mapping']['mapping11_key2_mapping'][
        'mapping11_key2_nested_mapping_key1'] = '2014-05-08 13:39:00'
    dump_json = json_dumps(result_ordered_native_type, indent=3)

    print('\n\n============== EXAMPLE: EMIT TO ORDERED JSON ==============\n')
    print(dump_json)

    # EXAMPLE: EMIT TO YAML
    if has_yaml:
        lconf_parse_obj = lconf_parse_section_extract_by_name(
            lconf_section__base_example_lconf_section_raw_str,
            'BaseEXAMPLE',
            lconf_section__base_example_template_obj,
            with_comments=False,
            validate=True)
        result_native_type = lconf_to_native_type(lconf_parse_obj)
        #  IMPORTANT: datetime.datetime(2014, 5, 8, 13, 39) is not JSON serializable
        result_native_type['key11value_mapping']['mapping11_key2_mapping'][
            'mapping11_key2_nested_mapping_key1'] = '2014-05-08 13:39:00'
        dump_yaml = yaml_dump(result_native_type, indent=3, allow_unicode=True)

        print('\n\n============== EXAMPLE: EMIT TO YAML ==============\n')
        print(dump_yaml)
Exemple #7
0
def main():
    # ---------------------------------- EXAMPLE 3 ---------------------------------- #

    # EXAMPLE 3: ONLY VALIDATE
    lconf_validate_one_section_str(
        lconf_section__example_3_lconf_section_raw_str)

    # EXAMPLE 3: ONLY PREPARE DEFAULT OBJ
    lconf_default_obj = lconf_prepare_default_obj(
        lconf_section__example_3__template_obj, with_comments=False)
    print(
        '\n\n============== EXAMPLE 3: ONLY PREPARE DEFAULT OBJ ==============\n'
    )
    print(lconf_default_obj)

    # EXAMPLE 3: VALIDATE, PREPARE, PARSE:
    # validate a `LCONF-Section string` and prepare a default lconf obj from the template obj and parse the LCONF-Section
    print(
        '\n\n============== EXAMPLE 3: VALIDATE, PREPARE, PARSE ==============\n'
    )
    lconf_parse_obj = lconf_prepare_and_parse_section(
        lconf_section__example_3_lconf_section_raw_str,
        lconf_section__example_3__template_obj,
        with_comments=True,
        validate=True)
    print(lconf_parse_obj)

    # EXAMPLE 3: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: this is also useful to extract from files
    lconf_parse_obj = lconf_parse_section_extract_by_name(
        lconf_section__example_3_lconf_section_raw_str,
        'EXAMPLE 3',
        lconf_section__example_3__template_obj,
        with_comments=True,
        validate=True)
    print(
        '\n\n============== EXAMPLE 3: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: this is also useful to extract from files ==============\n'
    )
    print(lconf_parse_obj)

    # EXAMPLE 3: ACCESS The Section-INFO
    print(
        '\n\n============== EXAMPLE 3: ACCESS The Section-INFO ==============\n'
    )
    print(('  lconf_parse_obj.key_order: ', lconf_parse_obj.key_order))
    print(('  lconf_parse_obj.section_name: ', lconf_parse_obj.section_name))
    print(('  lconf_parse_obj.is_parsed: ', lconf_parse_obj.is_parsed))
    print(('  lconf_parse_obj.has_comments: ', lconf_parse_obj.has_comments))

    # EXAMPLE 3: EMIT DEFAULT OBJ
    lconf_section_emitted_default_obj_str = lconf_emit_default_obj(
        lconf_section__example_3__template_obj,
        'EMITTED EXAMPLE 3',
        onelinelists=LCONF_DEFAULT,
        with_comments=True)
    print('\n\n============== EXAMPLE 3: EMIT DEFAULT OBJ ==============\n')
    print(lconf_section_emitted_default_obj_str)

    # EXAMPLE: EMIT PARSED LCONF OBJ
    lconf_parse_obj = lconf_parse_section_extract_by_name(
        lconf_section__example_3_lconf_section_raw_str,
        'EXAMPLE 3',
        lconf_section__example_3__template_obj,
        with_comments=True,
        validate=True)
    lconf_section_emitted_parsed_obj_str = lconf_emit(
        lconf_parse_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=True)

    print(
        '\n\n============== EXAMPLE 3: EMIT PARSED LCONF OBJ ==============\n')
    print(lconf_section_emitted_parsed_obj_str)

    # EXAMPLE 3: EMIT TO JSON
    lconf_parse_obj = lconf_parse_section_extract_by_name(
        lconf_section__example_3_lconf_section_raw_str,
        'EXAMPLE 3',
        lconf_section__example_3__template_obj,
        with_comments=False,
        validate=True)
    result_ordered_native_type = lconf_to_ordered_native_type(lconf_parse_obj)
    dump_json = json_dumps(result_ordered_native_type, indent=3)

    print(
        '\n\n============== EXAMPLE 3: EMIT TO ORDERED JSON ==============\n')
    print(dump_json)

    # EXAMPLE: EMIT TO YAML
    if has_yaml:
        lconf_parse_obj = lconf_parse_section_extract_by_name(
            lconf_section__example_3_lconf_section_raw_str,
            'EXAMPLE 3',
            lconf_section__example_3__template_obj,
            with_comments=False,
            validate=True)
        result_native_type = lconf_to_native_type(lconf_parse_obj)
        dump_yaml = yaml_dump(result_native_type, indent=3, allow_unicode=True)

        print('\n\n============== EXAMPLE 3: EMIT TO YAML ==============\n')
        print(dump_yaml)
Exemple #8
0
def do_emit__lconf():
   emit_lconf = lconf_emit(parsed_lconf, onelinelists=LCONF_YES)
def test_lconf_emit_ok9():
    """ Tests: test_lconf_emit_ok9
   """
    print('::: TEST: test_lconf_emit_ok9()')

    # Main `Section-Template OBJ: type: Root
    lconf_section__template_obj = Root([
        ('#1',
         '# Comment-Line: below is a Main `List-Of-Tuples` with 4 columns: |Color Name|Red|Green|Blue|'
         ),
        ('list_of_color_tuples',
         ListOT(('Color Name', 'Red', 'Green', 'Blue'),
                []), (None, lconf_to_int, lconf_to_int, lconf_to_int)),
        ('#2',
         '# Comment-Line: below is a Main `List-Of-Tuples` with 3 columns: |a|b|c|'
         ),
        ('list_of_tuples2',
         ListOT(('a', 'b', 'c'), [('1', '2', '3'), ('44', '55', '66')]),
         (lconf_to_int, lconf_to_int, lconf_to_int)),
        ('#3', '# Comment-Line: using one transform function for all'),
        ('list_of_tuples3',
         ListOT(('a', 'b', 'c'), [('1.0', '2.0', '3.0'),
                                  ('44.0', '55.0', '66.0')]), lconf_to_float),
        ('#4', '# Comment-Line: using one transform function for all'),
        ('list_of_tuples4',
         ListOT(('a', 'b', 'c'), [('1.0', '2.0', '3.0'),
                                  ('44.0', '55.0', '66.0')])),
        ('#5', '# Comment-Line: using one transform function for all'),
        ('list_of_tuples5',
         ListOT(('a', 'b', 'c'), [('1.0', '2.0', '3.0'),
                                  ('44.0', '55.0', '66.0')],
                column_replace_missing=('-1.0', '-1.0', '-1.0'))),
        ('#6', '# Comment-Line: using one transform function for all'),
        ('list_of_tuples6',
         ListOT(('a', 'b', 'c'), [('1.0', '2.0', '3.0'),
                                  ('44.0', '55.0', '66.0')],
                column_replace_missing=('-1.0', '-1.0', '-1.0')),
         (lconf_to_float, lconf_to_float, lconf_to_float)),
    ])

    lconf_section_raw_str = r'''___SECTION :: TestExample
# Comment-Line: below is a Main `List-Of-Tuples` with 4 columns: |Color Name|Red|Green|Blue|
- list_of_color_tuples |Color Name|Red|Green|Blue|
   forestgreen,34,139,34
   brick,156,102,31
# Comment-Line: below is a Main `List-Of-Tuples` with 3 columns: |a|b|c|
- list_of_tuples2 |a|b|c|
   100,200,300
   400,500,600
# Comment-Line: using one transform function for all
- list_of_tuples3 |a|b|c|
   100.0,200.0,300.0
   400.0,500.0,600.0
# Comment-Line: using one transform function for all
- list_of_tuples4 |a|b|c|
   100.0,200.0,300.0
   400.0,500.0,600.0
# Comment-Line: using one transform function for all
- list_of_tuples5 |a|b|c|
   100.0,,300.0
   400.0,500.0,600.0
# Comment-Line: using one transform function for all
- list_of_tuples6 |a|b|c|
   100.0,,300.0
   400.0,500.0,600.0
___END'''

    lconf_obj = lconf_parse_section_extract_by_name(
        lconf_section_raw_str,
        'TestExample',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    emit_result = lconf_emit(lconf_obj, onelinelists=LCONF_DEFAULT)

    reparsed_lconf_obj = lconf_parse_section_extract_by_name(
        emit_result,
        'TestExample',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    eq_(lconf_obj, reparsed_lconf_obj, msg=None)
    re_emit_result = lconf_emit(reparsed_lconf_obj,
                                onelinelists=LCONF_DEFAULT,
                                empty_key_value_pair=True)
    eq_(emit_result, re_emit_result, msg=None)

    lconf_obj = lconf_parse_section_extract_by_name(
        lconf_section_raw_str,
        'TestExample',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    emit_result = lconf_emit(lconf_obj,
                             onelinelists=LCONF_NO,
                             empty_key_value_pair=True)

    reparsed_lconf_obj = lconf_parse_section_extract_by_name(
        emit_result,
        'TestExample',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    eq_(lconf_obj, reparsed_lconf_obj, msg=None)
    re_emit_result = lconf_emit(reparsed_lconf_obj,
                                onelinelists=LCONF_NO,
                                empty_key_value_pair=True)
    eq_(emit_result, re_emit_result, msg=None)

    lconf_obj = lconf_parse_section_extract_by_name(
        lconf_section_raw_str,
        'TestExample',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    emit_result = lconf_emit(lconf_obj,
                             onelinelists=LCONF_YES,
                             empty_key_value_pair=True)

    reparsed_lconf_obj = lconf_parse_section_extract_by_name(
        emit_result,
        'TestExample',
        lconf_section__template_obj,
        with_comments=True,
        validate=True)

    eq_(lconf_obj, reparsed_lconf_obj, msg=None)
    re_emit_result = lconf_emit(reparsed_lconf_obj,
                                onelinelists=LCONF_YES,
                                empty_key_value_pair=True)
    eq_(emit_result, re_emit_result, msg=None)
def main():
   pass

   # EXAMPLE: ONLY VALIDATE
   lconf_validate_one_section_str(lconf_section__base_example_lconf_section_raw_str)

   # EXAMPLE: ONLY PREPARE DEFAULT OBJ
   lconf_default_obj = lconf_prepare_default_obj(lconf_section__base_example_template_obj, with_comments=False)
   print('\n\n============== EXAMPLE: ONLY PREPARE DEFAULT OBJ ==============\n')
   print(lconf_default_obj)

   # EXAMPLE: VALIDATE, PREPARE, PARSE:
   # validate a `LCONF-Section string` and prepare a default lconf obj from the template obj and parse the LCONF-Section
   print('\n\n============== EXAMPLE: VALIDATE, PREPARE, PARSE ==============\n')
   lconf_parse_obj = lconf_prepare_and_parse_section(
      lconf_section__base_example_lconf_section_raw_str,
      lconf_section__base_example_template_obj,
      with_comments=True,
      validate=True
   )
   print(lconf_parse_obj)

   # EXAMPLE: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: this is also useful to extract from files
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__base_example_lconf_section_raw_str,
      'BaseEXAMPLE',
      lconf_section__base_example_template_obj,
      with_comments=True,
      validate=True
   )
   print(
      '\n\n============== EXAMPLE: EXTRACT KNOWN SECTION, VALIDATE, PREPARE, PARSE: also for files ==============\n')
   print(lconf_parse_obj)

   # EXAMPLE: ACCESS The Section-INFO
   print('\n\n============== EXAMPLE: ACCESS The Section-INFO ==============\n')
   print('  lconf_parse_obj.key_order: ', lconf_parse_obj.key_order)
   print('  lconf_parse_obj.key_empty_replacementvalue: ', lconf_parse_obj.key_empty_replacementvalue)
   print('  lconf_parse_obj.section_name: ', lconf_parse_obj.section_name)
   print('  lconf_parse_obj.is_parsed: ', lconf_parse_obj.is_parsed)
   print('  lconf_parse_obj.has_comments: ', lconf_parse_obj.has_comments)


   # EXAMPLE: EMIT DEFAULT OBJ
   lconf_section_emitted_default_obj_str = lconf_emit_default_obj(
      lconf_section__base_example_template_obj,
      'EMITTED BaseEXAMPLE',
      onelinelists=LCONF_DEFAULT,
      with_comments=True
   )
   print('\n\n============== EXAMPLE: EMIT DEFAULT OBJ (==============\n')
   print(lconf_section_emitted_default_obj_str)

   # EXAMPLE: EMIT PARSED LCONF OBJ
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__base_example_lconf_section_raw_str,
      'BaseEXAMPLE',
      lconf_section__base_example_template_obj,
      with_comments=True,
      validate=True
   )
   lconf_section_emitted_parsed_obj_str = lconf_emit(lconf_parse_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=True)

   print('\n\n============== EXAMPLE: EMIT PARSED LCONF OBJ (empty_key_value_pair=True) ==============\n')
   print(lconf_section_emitted_parsed_obj_str)


   lconf_section_emitted_parsed_obj_str = lconf_emit(lconf_parse_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=False)
   print('\n\n============== EXAMPLE: EMIT PARSED LCONF OBJ (empty_key_value_pair=False) ==============\n')
   print(lconf_section_emitted_parsed_obj_str)


   # EXAMPLE: EMIT TO JSON
   lconf_parse_obj = lconf_parse_section_extract_by_name(
      lconf_section__base_example_lconf_section_raw_str,
      'BaseEXAMPLE',
      lconf_section__base_example_template_obj,
      with_comments=False,
      validate=True
   )
   result_ordered_native_type = lconf_to_ordered_native_type(lconf_parse_obj)
   # IMPORTANT: datetime.datetime(2014, 5, 8, 13, 39) is not JSON serializable
   result_ordered_native_type['key11value_mapping']['mapping11_key2_mapping'][
      'mapping11_key2_nested_mapping_key1'] = '2014-05-08 13:39:00'
   dump_json = json_dumps(result_ordered_native_type, indent=3)

   print('\n\n============== EXAMPLE: EMIT TO ORDERED JSON ==============\n')
   print(dump_json)

   # EXAMPLE: EMIT TO YAML
   if has_yaml:
      lconf_parse_obj = lconf_parse_section_extract_by_name(
         lconf_section__base_example_lconf_section_raw_str,
         'BaseEXAMPLE',
         lconf_section__base_example_template_obj,
         with_comments=False,
         validate=True
      )
      result_native_type = lconf_to_native_type(lconf_parse_obj)
      #  IMPORTANT: datetime.datetime(2014, 5, 8, 13, 39) is not JSON serializable
      result_native_type['key11value_mapping']['mapping11_key2_mapping'][
         'mapping11_key2_nested_mapping_key1'] = '2014-05-08 13:39:00'
      dump_yaml = yaml_dump(result_native_type, indent=3, allow_unicode=True)

      print('\n\n============== EXAMPLE: EMIT TO YAML ==============\n')
      print(dump_yaml)
Exemple #11
0
def test_lconf_emit_ok9():
   """ Tests: test_lconf_emit_ok9
   """
   print('::: TEST: test_lconf_emit_ok9()')

   # Main `Section-Template OBJ: type: Root
   lconf_section__template_obj = Root([
      ('#1', '# Comment-Line: below is a Main `List-Of-Tuples` with 4 columns: |Color Name|Red|Green|Blue|'),
      ('list_of_color_tuples', ListOT(('Color Name', 'Red', 'Green', 'Blue'), []),
      (None, lconf_to_int, lconf_to_int, lconf_to_int)),

      ('#2', '# Comment-Line: below is a Main `List-Of-Tuples` with 3 columns: |a|b|c|'),
      ('list_of_tuples2', ListOT(('a', 'b', 'c'), [
         ('1', '2', '3'),
         ('44', '55', '66')
      ]), (lconf_to_int, lconf_to_int, lconf_to_int)),

      ('#3', '# Comment-Line: using one transform function for all'),
      ('list_of_tuples3', ListOT(('a', 'b', 'c'), [
         ('1.0', '2.0', '3.0'),
         ('44.0', '55.0', '66.0')
      ]), lconf_to_float),

      ('#4', '# Comment-Line: using one transform function for all'),
      ('list_of_tuples4', ListOT(('a', 'b', 'c'), [
         ('1.0', '2.0', '3.0'),
         ('44.0', '55.0', '66.0')
      ])),

      ('#5', '# Comment-Line: using one transform function for all'),
      ('list_of_tuples5', ListOT(('a', 'b', 'c'), [
         ('1.0', '2.0', '3.0'),
         ('44.0', '55.0', '66.0')
      ], column_replace_missing=('-1.0', '-1.0', '-1.0'))),

      ('#6', '# Comment-Line: using one transform function for all'),
      ('list_of_tuples6', ListOT(('a', 'b', 'c'), [
         ('1.0', '2.0', '3.0'),
         ('44.0', '55.0', '66.0')
      ], column_replace_missing=('-1.0', '-1.0', '-1.0')), (lconf_to_float, lconf_to_float, lconf_to_float)),
   ])

   lconf_section_raw_str = r'''___SECTION :: TestExample
# Comment-Line: below is a Main `List-Of-Tuples` with 4 columns: |Color Name|Red|Green|Blue|
- list_of_color_tuples |Color Name|Red|Green|Blue|
   forestgreen,34,139,34
   brick,156,102,31
# Comment-Line: below is a Main `List-Of-Tuples` with 3 columns: |a|b|c|
- list_of_tuples2 |a|b|c|
   100,200,300
   400,500,600
# Comment-Line: using one transform function for all
- list_of_tuples3 |a|b|c|
   100.0,200.0,300.0
   400.0,500.0,600.0
# Comment-Line: using one transform function for all
- list_of_tuples4 |a|b|c|
   100.0,200.0,300.0
   400.0,500.0,600.0
# Comment-Line: using one transform function for all
- list_of_tuples5 |a|b|c|
   100.0,,300.0
   400.0,500.0,600.0
# Comment-Line: using one transform function for all
- list_of_tuples6 |a|b|c|
   100.0,,300.0
   400.0,500.0,600.0
___END'''

   lconf_obj = lconf_parse_section_extract_by_name(
      lconf_section_raw_str,
      'TestExample',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   emit_result = lconf_emit(lconf_obj, onelinelists=LCONF_DEFAULT)

   reparsed_lconf_obj = lconf_parse_section_extract_by_name(
      emit_result,
      'TestExample',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   eq_(lconf_obj, reparsed_lconf_obj, msg=None)
   re_emit_result = lconf_emit(reparsed_lconf_obj, onelinelists=LCONF_DEFAULT, empty_key_value_pair=True)
   eq_(emit_result, re_emit_result, msg=None)

   lconf_obj = lconf_parse_section_extract_by_name(
      lconf_section_raw_str,
      'TestExample',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   emit_result = lconf_emit(lconf_obj, onelinelists=LCONF_NO, empty_key_value_pair=True)

   reparsed_lconf_obj = lconf_parse_section_extract_by_name(
      emit_result,
      'TestExample',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   eq_(lconf_obj, reparsed_lconf_obj, msg=None)
   re_emit_result = lconf_emit(reparsed_lconf_obj, onelinelists=LCONF_NO, empty_key_value_pair=True)
   eq_(emit_result, re_emit_result, msg=None)

   lconf_obj = lconf_parse_section_extract_by_name(
      lconf_section_raw_str,
      'TestExample',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   emit_result = lconf_emit(lconf_obj, onelinelists=LCONF_YES, empty_key_value_pair=True)

   reparsed_lconf_obj = lconf_parse_section_extract_by_name(
      emit_result,
      'TestExample',
      lconf_section__template_obj,
      with_comments=True,
      validate=True
   )

   eq_(lconf_obj, reparsed_lconf_obj, msg=None)
   re_emit_result = lconf_emit(reparsed_lconf_obj, onelinelists=LCONF_YES, empty_key_value_pair=True)
   eq_(emit_result, re_emit_result, msg=None)