RenderCV coverage for 1d4b87bc427e4cf61c0ef49623c971b0e2224708: 99%

Files Functions Classes

coverage.py v7.13.4, created at 2026-03-25 13:49 +0000

File function   statements missing excluded   coverage
src / rendercv / __init__.py (no function)   4 0 0   100%
src / rendercv / __main__.py (no function)   3 0 0   100%
src / rendercv / cli / __init__.py (no function)   0 0 0   100%
src / rendercv / cli / app.py cli_command_no_args   6 0 0   100%
src / rendercv / cli / app.py get_cache_dir   6 0 0   100%
src / rendercv / cli / app.py get_version_cache_file   1 0 0   100%
src / rendercv / cli / app.py read_version_cache   7 0 0   100%
src / rendercv / cli / app.py write_version_cache   6 0 0   100%
src / rendercv / cli / app.py fetch_latest_version_from_pypi   9 0 0   100%
src / rendercv / cli / app.py fetch_and_cache_latest_version   3 0 0   100%
src / rendercv / cli / app.py warn_if_new_version_is_available   12 0 0   100%
src / rendercv / cli / app.py (no function)   30 0 0   100%
src / rendercv / cli / copy_templates.py copy_templates   3 0 0   100%
src / rendercv / cli / copy_templates.py make_tree_writable   6 0 0   100%
src / rendercv / cli / copy_templates.py (no function)   7 0 0   100%
src / rendercv / cli / create_theme_command / __init__.py (no function)   0 0 0   100%
src / rendercv / cli / create_theme_command / create_init_file_for_theme.py create_init_file_for_theme   8 0 0   100%
src / rendercv / cli / create_theme_command / create_init_file_for_theme.py (no function)   4 0 0   100%
src / rendercv / cli / create_theme_command / create_theme_command.py cli_command_create_theme   8 0 0   100%
src / rendercv / cli / create_theme_command / create_theme_command.py (no function)   14 0 0   100%
src / rendercv / cli / entry_point.py entry_point   7 0 0   100%
src / rendercv / cli / entry_point.py (no function)   2 0 0   100%
src / rendercv / cli / error_handler.py handle_user_errors   3 0 0   100%
src / rendercv / cli / error_handler.py handle_user_errors.wrapper   6 0 0   100%
src / rendercv / cli / error_handler.py (no function)   7 0 0   100%
src / rendercv / cli / new_command / __init__.py (no function)   0 0 0   100%
src / rendercv / cli / new_command / new_command.py cli_command_new   21 0 0   100%
src / rendercv / cli / new_command / new_command.py build_creation_panel   25 0 0   100%
src / rendercv / cli / new_command / new_command.py (no function)   18 0 0   100%
src / rendercv / cli / new_command / print_welcome.py print_welcome   5 0 0   100%
src / rendercv / cli / new_command / print_welcome.py (no function)   5 0 0   100%
src / rendercv / cli / render_command / __init__.py (no function)   0 0 0   100%
src / rendercv / cli / render_command / parse_override_arguments.py parse_override_arguments   13 0 0   100%
src / rendercv / cli / render_command / parse_override_arguments.py (no function)   3 0 0   100%
src / rendercv / cli / render_command / progress_panel.py format_validation_error_location   8 0 0   100%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.__init__   2 0 0   100%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.update_progress   2 0 0   100%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.finish_progress   2 0 0   100%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.print_progress_panel   16 2 0   88%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.print_user_error   3 0 0   100%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.print_validation_errors   9 0 0   100%
src / rendercv / cli / render_command / progress_panel.py ProgressPanel.clear   2 0 0   100%
src / rendercv / cli / render_command / progress_panel.py (no function)   23 0 0   100%
src / rendercv / cli / render_command / render_command.py cli_command_render   11 0 0   100%
src / rendercv / cli / render_command / render_command.py (no function)   13 0 0   100%
src / rendercv / cli / render_command / run_rendercv.py timed_step   14 0 0   100%
src / rendercv / cli / render_command / run_rendercv.py collect_input_file_paths   15 0 0   100%
src / rendercv / cli / render_command / run_rendercv.py run_rendercv   17 0 0   100%
src / rendercv / cli / render_command / run_rendercv.py (no function)   16 0 0   100%
src / rendercv / cli / render_command / watcher.py EventHandler.__init__   3 0 0   100%
src / rendercv / cli / render_command / watcher.py EventHandler.on_modified   4 0 0   100%
src / rendercv / cli / render_command / watcher.py run_function_if_files_change   14 0 0   100%
src / rendercv / cli / render_command / watcher.py (no function)   10 0 0   100%
src / rendercv / exception.py (no function)   22 0 0   100%
src / rendercv / renderer / __init__.py (no function)   0 0 0   100%
src / rendercv / renderer / html.py generate_html   6 0 0   100%
src / rendercv / renderer / html.py (no function)   5 0 0   100%
src / rendercv / renderer / markdown.py generate_markdown   6 0 0   100%
src / rendercv / renderer / markdown.py (no function)   5 0 0   100%
src / rendercv / renderer / path_resolver.py build_name_variants   3 0 0   100%
src / rendercv / renderer / path_resolver.py resolve_output_folder_placeholder   8 0 0   100%
src / rendercv / renderer / path_resolver.py resolve_rendercv_file_path   8 0 0   100%
src / rendercv / renderer / path_resolver.py (no function)   7 0 0   100%
src / rendercv / renderer / pdf_png.py generate_pdf   7 0 0   100%
src / rendercv / renderer / pdf_png.py generate_png   20 0 0   100%
src / rendercv / renderer / pdf_png.py copy_photo_next_to_typst_file   5 0 0   100%
src / rendercv / renderer / pdf_png.py read_version_from_typst_toml   6 0 0   100%
src / rendercv / renderer / pdf_png.py install_bundled_typst_package   6 0 0   100%
src / rendercv / renderer / pdf_png.py get_package_path   6 0 0   100%
src / rendercv / renderer / pdf_png.py get_typst_compiler   1 0 0   100%
src / rendercv / renderer / pdf_png.py (no function)   20 0 0   100%
src / rendercv / renderer / templater / __init__.py (no function)   0 0 0   100%
src / rendercv / renderer / templater / connections.py compute_connections   1 0 0   100%
src / rendercv / renderer / templater / connections.py parse_connections   56 0 0   100%
src / rendercv / renderer / templater / connections.py compute_connections_for_typst   5 0 0   100%
src / rendercv / renderer / templater / connections.py compute_connections_for_markdown   2 0 0   100%
src / rendercv / renderer / templater / connections.py (no function)   17 0 0   100%
src / rendercv / renderer / templater / date.py build_date_placeholders   4 0 0   100%
src / rendercv / renderer / templater / date.py date_object_to_string   1 0 0   100%
src / rendercv / renderer / templater / date.py format_date_range   12 0 0   100%
src / rendercv / renderer / templater / date.py format_single_date   10 0 0   100%
src / rendercv / renderer / templater / date.py compute_time_span_string   36 0 0   100%
src / rendercv / renderer / templater / date.py (no function)   10 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py remove_connectors_of_missing_placeholders   9 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py render_entry_templates   43 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py process_highlights   2 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py process_authors   1 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py process_date   9 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py process_url   6 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py process_doi   3 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py process_summary   1 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py remove_not_provided_placeholders   8 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py clean_trailing_parts   7 0 0   100%
src / rendercv / renderer / templater / entry_templates_from_input.py (no function)   23 0 0   100%
src / rendercv / renderer / templater / footer_and_top_note.py render_top_note_template   4 0 0   100%
src / rendercv / renderer / templater / footer_and_top_note.py render_footer_template   4 0 0   100%
src / rendercv / renderer / templater / footer_and_top_note.py (no function)   7 0 0   100%
src / rendercv / renderer / templater / markdown_parser.py to_typst_string   27 0 0   100%
src / rendercv / renderer / templater / markdown_parser.py escape_typst_characters   16 0 0   100%
src / rendercv / renderer / templater / markdown_parser.py markdown_to_typst   16 0 0   100%
src / rendercv / renderer / templater / markdown_parser.py markdown_to_html   1 0 0   100%
src / rendercv / renderer / templater / markdown_parser.py (no function)   20 0 0   100%
src / rendercv / renderer / templater / model_processor.py download_photo_from_url   17 0 0   100%
src / rendercv / renderer / templater / model_processor.py process_model   21 0 0   100%
src / rendercv / renderer / templater / model_processor.py process_fields   13 0 0   100%
src / rendercv / renderer / templater / model_processor.py (no function)   18 0 0   100%
src / rendercv / renderer / templater / string_processor.py apply_string_processors   0 0 1   100%
src / rendercv / renderer / templater / string_processor.py apply_string_processors   0 0 1   100%
src / rendercv / renderer / templater / string_processor.py apply_string_processors   3 0 0   100%
src / rendercv / renderer / templater / string_processor.py build_keyword_matcher_pattern   16 0 0   100%
src / rendercv / renderer / templater / string_processor.py make_keywords_bold   4 0 0   100%
src / rendercv / renderer / templater / string_processor.py substitute_placeholders   4 0 0   100%
src / rendercv / renderer / templater / string_processor.py clean_url   1 0 0   100%
src / rendercv / renderer / templater / string_processor.py (no function)   12 0 6   100%
src / rendercv / renderer / templater / templater.py get_jinja2_environment   4 0 0   100%
src / rendercv / renderer / templater / templater.py render_full_template   19 0 0   100%
src / rendercv / renderer / templater / templater.py render_html   2 0 0   100%
src / rendercv / renderer / templater / templater.py render_single_template   8 0 0   100%
src / rendercv / renderer / templater / templater.py (no function)   15 0 0   100%
src / rendercv / renderer / typst.py generate_typst   6 0 0   100%
src / rendercv / renderer / typst.py (no function)   5 0 0   100%
src / rendercv / schema / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / json_schema_generator.py generate_json_schema   3 0 0   100%
src / rendercv / schema / json_schema_generator.py generate_json_schema.RenderCVSchemaGenerator.generate   6 0 0   100%
src / rendercv / schema / json_schema_generator.py generate_json_schema_file   3 0 0   100%
src / rendercv / schema / json_schema_generator.py (no function)   8 0 0   100%
src / rendercv / schema / models / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / base.py (no function)   5 0 0   100%
src / rendercv / schema / models / custom_error_types.py (no function)   4 0 0   100%
src / rendercv / schema / models / cv / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / cv / custom_connection.py (no function)   6 0 0   100%
src / rendercv / schema / models / cv / cv.py Cv.rendercv_sections   1 0 0   100%
src / rendercv / schema / models / cv / cv.py Cv.capture_input_order   6 0 0   100%
src / rendercv / schema / models / cv / cv.py Cv.validate_list_or_scalar_fields   8 0 0   100%
src / rendercv / schema / models / cv / cv.py Cv.serialize_phone   3 0 0   100%
src / rendercv / schema / models / cv / cv.py (no function)   42 0 0   100%
src / rendercv / schema / models / cv / entries / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / cv / entries / bases / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry.py BaseEntry.entry_type_in_snake_case   1 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry.py (no function)   9 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry_with_complex_fields.py validate_exact_date   5 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry_with_complex_fields.py get_date_object   14 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry_with_complex_fields.py BaseEntryWithComplexFields.check_and_adjust_dates   19 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry_with_complex_fields.py (no function)   21 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry_with_date.py validate_arbitrary_date   6 0 0   100%
src / rendercv / schema / models / cv / entries / bases / entry_with_date.py (no function)   10 0 0   100%
src / rendercv / schema / models / cv / entries / bullet.py (no function)   4 0 0   100%
src / rendercv / schema / models / cv / entries / education.py (no function)   9 0 0   100%
src / rendercv / schema / models / cv / entries / experience.py (no function)   8 0 0   100%
src / rendercv / schema / models / cv / entries / normal.py (no function)   7 0 0   100%
src / rendercv / schema / models / cv / entries / numbered.py (no function)   4 0 0   100%
src / rendercv / schema / models / cv / entries / one_line.py (no function)   5 0 0   100%
src / rendercv / schema / models / cv / entries / publication.py BasePublicationEntry.ignore_url_if_doi_is_given   4 0 0   100%
src / rendercv / schema / models / cv / entries / publication.py BasePublicationEntry.validate_doi_url   3 0 0   100%
src / rendercv / schema / models / cv / entries / publication.py BasePublicationEntry.doi_url   4 0 0   100%
src / rendercv / schema / models / cv / entries / publication.py (no function)   21 0 0   100%
src / rendercv / schema / models / cv / entries / reversed_numbered.py (no function)   4 0 0   100%
src / rendercv / schema / models / cv / section.py get_characteristic_entry_fields   9 0 0   100%
src / rendercv / schema / models / cv / section.py BaseRenderCVSection.snake_case_title   1 0 0   100%
src / rendercv / schema / models / cv / section.py create_section_models   6 0 0   100%
src / rendercv / schema / models / cv / section.py get_entry_type_name_and_section_model   18 0 0   100%
src / rendercv / schema / models / cv / section.py validate_section   22 0 0   100%
src / rendercv / schema / models / cv / section.py dictionary_key_to_proper_section_title   6 0 0   100%
src / rendercv / schema / models / cv / section.py get_rendercv_sections   10 0 0   100%
src / rendercv / schema / models / cv / section.py (no function)   37 0 0   100%
src / rendercv / schema / models / cv / social_network.py SocialNetwork.check_username   37 0 0   100%
src / rendercv / schema / models / cv / social_network.py SocialNetwork.validate_generated_url   2 0 0   100%
src / rendercv / schema / models / cv / social_network.py SocialNetwork.url   5 0 0   100%
src / rendercv / schema / models / cv / social_network.py (no function)   22 0 0   100%
src / rendercv / schema / models / design / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / design / built_in_design.py discover_other_themes   6 0 0   100%
src / rendercv / schema / models / design / built_in_design.py (no function)   12 0 0   100%
src / rendercv / schema / models / design / classic_theme.py Typography.validate_font_family   3 0 0   100%
src / rendercv / schema / models / design / classic_theme.py Sections.convert_section_titles_to_snake_case   1 0 0   100%
src / rendercv / schema / models / design / classic_theme.py (no function)   153 0 0   100%
src / rendercv / schema / models / design / color.py Color.__str__   1 0 0   100%
src / rendercv / schema / models / design / color.py (no function)   3 0 0   100%
src / rendercv / schema / models / design / design.py validate_design   49 0 0   100%
src / rendercv / schema / models / design / design.py (no function)   15 0 0   100%
src / rendercv / schema / models / design / font_family.py (no function)   4 0 0   100%
src / rendercv / schema / models / design / typst_dimension.py validate_typst_dimension   3 0 0   100%
src / rendercv / schema / models / design / typst_dimension.py (no function)   8 0 0   100%
src / rendercv / schema / models / locale / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / locale / english_locale.py EnglishLocale.language_iso_639_1   1 0 0   100%
src / rendercv / schema / models / locale / english_locale.py EnglishLocale.flag_emoji   2 0 0   100%
src / rendercv / schema / models / locale / english_locale.py EnglishLocale.is_rtl   2 0 0   100%
src / rendercv / schema / models / locale / english_locale.py (no function)   24 0 0   100%
src / rendercv / schema / models / locale / locale.py discover_other_locales   6 0 0   100%
src / rendercv / schema / models / locale / locale.py (no function)   12 0 0   100%
src / rendercv / schema / models / path.py resolve_relative_path   11 0 0   100%
src / rendercv / schema / models / path.py serialize_path   3 0 0   100%
src / rendercv / schema / models / path.py (no function)   11 0 0   100%
src / rendercv / schema / models / rendercv_model.py RenderCVModel.set_input_file_path   2 0 0   100%
src / rendercv / schema / models / rendercv_model.py (no function)   18 0 0   100%
src / rendercv / schema / models / settings / __init__.py (no function)   0 0 0   100%
src / rendercv / schema / models / settings / render_command.py (no function)   19 0 0   100%
src / rendercv / schema / models / settings / settings.py Settings.keep_unique_keywords   1 0 0   100%
src / rendercv / schema / models / settings / settings.py Settings.resolve_current_date   2 0 0   100%
src / rendercv / schema / models / settings / settings.py (no function)   16 0 0   100%
src / rendercv / schema / models / validation_context.py get_input_file_path   5 0 0   100%
src / rendercv / schema / models / validation_context.py get_current_date   7 0 0   100%
src / rendercv / schema / models / validation_context.py (no function)   11 0 0   100%
src / rendercv / schema / override_dictionary.py update_value_by_location   24 0 0   100%
src / rendercv / schema / override_dictionary.py apply_overrides_to_dictionary   4 0 0   100%
src / rendercv / schema / override_dictionary.py (no function)   4 0 0   100%
src / rendercv / schema / pydantic_error_handling.py parse_plain_pydantic_error   30 0 0   100%
src / rendercv / schema / pydantic_error_handling.py parse_validation_errors   19 0 0   100%
src / rendercv / schema / pydantic_error_handling.py get_inner_yaml_object_from_its_key   18 0 0   100%
src / rendercv / schema / pydantic_error_handling.py get_coordinates_of_a_key_in_a_yaml_object   5 0 0   100%
src / rendercv / schema / pydantic_error_handling.py (no function)   15 0 0   100%
src / rendercv / schema / rendercv_model_builder.py get_yaml_error_location   7 0 0   100%
src / rendercv / schema / rendercv_model_builder.py read_yaml_with_validation_errors   7 0 0   100%
src / rendercv / schema / rendercv_model_builder.py build_rendercv_dictionary   17 0 0   100%
src / rendercv / schema / rendercv_model_builder.py build_rendercv_model_from_commented_map   7 0 0   100%
src / rendercv / schema / rendercv_model_builder.py build_rendercv_dictionary_and_model   3 0 0   100%
src / rendercv / schema / rendercv_model_builder.py (no function)   32 0 0   100%
src / rendercv / schema / sample_generator.py comment_out_section_sub_fields   4 0 0   100%
src / rendercv / schema / sample_generator.py expand_nested_bullets   1 0 0   100%
src / rendercv / schema / sample_generator.py dictionary_to_yaml   9 0 0   100%
src / rendercv / schema / sample_generator.py dictionary_to_yaml.str_representer   3 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_rendercv_pydantic_model   7 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_yaml_input_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_yaml_input_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_yaml_input_file   16 0 0   100%
src / rendercv / schema / sample_generator.py rendercv_model_to_dictionary   2 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_yaml_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_yaml_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_yaml_file   4 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_cv_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_cv_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_cv_file   3 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_design_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_design_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_design_file   6 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_locale_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_locale_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_locale_file   6 0 0   100%
src / rendercv / schema / sample_generator.py create_sample_settings_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_settings_file   0 0 1   100%
src / rendercv / schema / sample_generator.py create_sample_settings_file   6 0 0   100%
src / rendercv / schema / sample_generator.py (no function)   26 0 64   100%
src / rendercv / schema / variant_pydantic_model_generator.py sanitize_defaults   5 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py resolve_nested_model   8 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py create_variant_pydantic_model   13 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py validate_defaults_against_base   21 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py generate_model_name   2 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py update_description_with_new_default   5 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py create_discriminator_field_spec   4 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py deep_merge_nested_object   9 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py create_nested_model_variant_model   13 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py create_nested_field_spec   8 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py create_simple_field_spec   3 0 0   100%
src / rendercv / schema / variant_pydantic_model_generator.py (no function)   17 0 0   100%
src / rendercv / schema / yaml_reader.py read_yaml   18 0 0   100%
src / rendercv / schema / yaml_reader.py ScannerNoAlias.fetch_alias   1 0 0   100%
src / rendercv / schema / yaml_reader.py (no function)   11 0 0   100%
Total     2368 2 84   99%

No items found using the specified filter.