Coverage report: 84%

Files Functions Classes

coverage.py v7.15.2, created at 2026-08-03 22:18 +0000

File function   statements missing excluded   coverage
src/lektor_ng/__init__.py (no function)   2 0 0   100%
src/lektor_ng/__main__.py (no function)   3 3 0   0%
src/lektor_ng/admin/__init__.py (no function)   2 0 0   100%
src/lektor_ng/admin/context.py LektorContext.project_id   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.database   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.pad   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.tree   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.config   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.builder   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.failure_controller   1 0 0   100%
src/lektor_ng/admin/context.py LektorContext.cli_reporter   1 0 0   100%
src/lektor_ng/admin/context.py LektorApp.__init__   2 0 0   100%
src/lektor_ng/admin/context.py get_lektor_context   5 0 0   100%
src/lektor_ng/admin/context.py (no function)   34 0 2   100%
src/lektor_ng/admin/modules/__init__.py (no function)   0 0 0   100%
src/lektor_ng/admin/modules/api.py pass_lektor_context   2 0 0   100%
src/lektor_ng/admin/modules/api.py _ServerInfoField._deserialize   6 0 0   100%
src/lektor_ng/admin/modules/api.py _is_valid_path   2 0 0   100%
src/lektor_ng/admin/modules/api.py _is_valid_alt   3 0 0   100%
src/lektor_ng/admin/modules/api.py _with_validated   5 0 0   100%
src/lektor_ng/admin/modules/api.py _with_validated.wrap   2 0 0   100%
src/lektor_ng/admin/modules/api.py _with_validated.wrap.wrapper   10 0 0   100%
src/lektor_ng/admin/modules/api.py get_path_info   8 0 0   100%
src/lektor_ng/admin/modules/api.py get_record_info   3 0 0   100%
src/lektor_ng/admin/modules/api.py get_preview_info   4 0 0   100%
src/lektor_ng/admin/modules/api.py find   2 0 0   100%
src/lektor_ng/admin/modules/api.py browsefs   10 0 0   100%
src/lektor_ng/admin/modules/api.py match_url   4 0 0   100%
src/lektor_ng/admin/modules/api.py get_raw_record   2 0 0   100%
src/lektor_ng/admin/modules/api.py get_new_record_info   7 0 0   100%
src/lektor_ng/admin/modules/api.py get_new_record_info.describe_model   6 0 0   100%
src/lektor_ng/admin/modules/api.py get_new_attachment_info   3 0 0   100%
src/lektor_ng/admin/modules/api.py upload_new_attachments   8 0 0   100%
src/lektor_ng/admin/modules/api.py add_new_record   10 0 0   100%
src/lektor_ng/admin/modules/api.py delete_record   5 0 0   100%
src/lektor_ng/admin/modules/api.py update_raw_record   4 0 0   100%
src/lektor_ng/admin/modules/api.py get_servers   2 0 0   100%
src/lektor_ng/admin/modules/api.py trigger_build   4 0 0   100%
src/lektor_ng/admin/modules/api.py trigger_clean   4 0 0   100%
src/lektor_ng/admin/modules/api.py publish_build   2 0 0   100%
src/lektor_ng/admin/modules/api.py publish_build.generator   6 0 0   100%
src/lektor_ng/admin/modules/api.py ping   1 0 0   100%
src/lektor_ng/admin/modules/api.py (no function)   108 0 0   100%
src/lektor_ng/admin/modules/dash.py app_view   1 0 0   100%
src/lektor_ng/admin/modules/dash.py (no function)   6 0 0   100%
src/lektor_ng/admin/modules/livereload.py events   9 9 0   0%
src/lektor_ng/admin/modules/livereload.py (no function)   14 0 2   100%
src/lektor_ng/admin/modules/serve.py LivereloadConfig.from_artifact   3 0 0   100%
src/lektor_ng/admin/modules/serve.py TooldrawerConfig.__bool__   1 0 0   100%
src/lektor_ng/admin/modules/serve.py _inject_tooldrawer   7 0 0   100%
src/lektor_ng/admin/modules/serve.py _send_html_for_editing   11 0 0   100%
src/lektor_ng/admin/modules/serve.py _deduce_mimetype   4 0 0   100%
src/lektor_ng/admin/modules/serve.py _checked_send_file   5 0 0   100%
src/lektor_ng/admin/modules/serve.py HiddenRecordException.__init__   2 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.__init__   1 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.resolve_url_path   4 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.resolve_directory_index   6 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.build_primary_artifact   8 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.handle_build_failure   3 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.get_edit_url   6 0 0   100%
src/lektor_ng/admin/modules/serve.py ArtifactServer.serve_artifact   15 0 0   100%
src/lektor_ng/admin/modules/serve.py serve_artifact   2 0 0   100%
src/lektor_ng/admin/modules/serve.py serve_file   14 0 0   100%
src/lektor_ng/admin/modules/serve.py serve_artifact_or_file   6 0 0   100%
src/lektor_ng/admin/modules/serve.py serve_error_page   4 0 0   100%
src/lektor_ng/admin/modules/serve.py (no function)   53 0 5   100%
src/lektor_ng/admin/utils.py eventstream   2 0 0   100%
src/lektor_ng/admin/utils.py eventstream.new_func   2 0 0   100%
src/lektor_ng/admin/utils.py eventstream.new_func.generate   2 0 0   100%
src/lektor_ng/admin/utils.py (no function)   6 0 0   100%
src/lektor_ng/admin/webui.py _common_configuration   2 0 0   100%
src/lektor_ng/admin/webui.py make_app   17 1 0   94%
src/lektor_ng/admin/webui.py make_app.admin_view   6 0 0   100%
src/lektor_ng/admin/webui.py (no function)   10 0 3   100%
src/lektor_ng/assets.py get_asset_root   2 0 0   100%
src/lektor_ng/assets.py get_asset   4 0 0   100%
src/lektor_ng/assets.py Asset.__init__   4 0 0   100%
src/lektor_ng/assets.py Asset.iter_source_filenames   1 0 0   100%
src/lektor_ng/assets.py Asset.url_name   5 0 0   100%
src/lektor_ng/assets.py Asset.url_path   3 0 0   100%
src/lektor_ng/assets.py Asset.artifact_name   3 0 0   100%
src/lektor_ng/assets.py Asset.children   1 0 0   100%
src/lektor_ng/assets.py Asset.get_child   3 0 0   100%
src/lektor_ng/assets.py Asset.resolve_url_path   3 0 0   100%
src/lektor_ng/assets.py Asset.__repr__   1 0 0   100%
src/lektor_ng/assets.py Directory.children   1 0 0   100%
src/lektor_ng/assets.py Directory.get_child   3 0 0   100%
src/lektor_ng/assets.py Directory._children_by_name   1 0 0   100%
src/lektor_ng/assets.py Directory._iter_children   14 0 0   100%
src/lektor_ng/assets.py Directory.url_name   1 0 0   100%
src/lektor_ng/assets.py Directory.url_path   4 0 0   100%
src/lektor_ng/assets.py Directory.resolve_url_path   10 0 0   100%
src/lektor_ng/assets.py Directory.url_content_path   1 0 0   100%
src/lektor_ng/assets.py (no function)   48 0 3   100%
src/lektor_ng/build_programs.py buildprogram   2 0 0   100%
src/lektor_ng/build_programs.py buildprogram.decorator   2 0 0   100%
src/lektor_ng/build_programs.py SourceInfo.__init__   14 2 0   86%
src/lektor_ng/build_programs.py BuildProgram.__init__   4 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.primary_artifact   4 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.describe_source_record   0 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.build   16 1 0   94%
src/lektor_ng/build_programs.py BuildProgram.build._build   5 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.produce_artifacts   0 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.declare_artifact   1 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.build_artifact   0 0 0   100%
src/lektor_ng/build_programs.py BuildProgram.iter_child_sources   1 0 0   100%
src/lektor_ng/build_programs.py PageBuildProgram.describe_source_record   4 1 0   75%
src/lektor_ng/build_programs.py PageBuildProgram.produce_artifacts   6 0 0   100%
src/lektor_ng/build_programs.py PageBuildProgram.build_artifact   6 0 0   100%
src/lektor_ng/build_programs.py PageBuildProgram._iter_paginated_children   3 0 0   100%
src/lektor_ng/build_programs.py PageBuildProgram.iter_child_sources   15 0 0   100%
src/lektor_ng/build_programs.py AttachmentBuildProgram.describe_source_record   1 0 0   100%
src/lektor_ng/build_programs.py AttachmentBuildProgram.produce_artifacts   3 0 0   100%
src/lektor_ng/build_programs.py AttachmentBuildProgram.build_artifact   3 0 0   100%
src/lektor_ng/build_programs.py FileAssetBuildProgram.produce_artifacts   1 0 0   100%
src/lektor_ng/build_programs.py FileAssetBuildProgram.build_artifact   3 0 0   100%
src/lektor_ng/build_programs.py DirectoryAssetBuildProgram.iter_child_sources   1 0 0   100%
src/lektor_ng/build_programs.py (no function)   42 0 0   100%
src/lektor_ng/builder.py create_tables   14 1 0   93%
src/lektor_ng/builder.py _placeholders   1 0 0   100%
src/lektor_ng/builder.py BuildState.__init__   4 0 0   100%
src/lektor_ng/builder.py BuildState.pad   1 0 0   100%
src/lektor_ng/builder.py BuildState.env   1 0 0   100%
src/lektor_ng/builder.py BuildState.config   1 0 0   100%
src/lektor_ng/builder.py BuildState.notify_failure   3 0 0   100%
src/lektor_ng/builder.py BuildState.get_file_info   3 1 0   67%
src/lektor_ng/builder.py BuildState.to_source_filename   1 0 0   100%
src/lektor_ng/builder.py BuildState.get_virtual_source_info   6 1 0   83%
src/lektor_ng/builder.py BuildState.connect_to_database   1 0 0   100%
src/lektor_ng/builder.py BuildState.get_destination_filename   1 0 0   100%
src/lektor_ng/builder.py BuildState.artifact_name_from_destination_filename   7 1 0   86%
src/lektor_ng/builder.py BuildState.new_artifact   3 0 0   100%
src/lektor_ng/builder.py BuildState.artifact_exists   2 2 0   0%
src/lektor_ng/builder.py BuildState.get_artifact_dependency_infos   6 6 0   0%
src/lektor_ng/builder.py BuildState._iter_artifact_dependency_infos   16 1 0   94%
src/lektor_ng/builder.py BuildState.write_source_info   9 0 0   100%
src/lektor_ng/builder.py BuildState.prune_source_infos   18 6 0   67%
src/lektor_ng/builder.py BuildState.remove_artifact   6 0 0   100%
src/lektor_ng/builder.py BuildState._any_sources_are_dirty   5 1 0   80%
src/lektor_ng/builder.py BuildState._get_artifact_config_hash   3 0 0   100%
src/lektor_ng/builder.py BuildState.check_artifact_is_current   14 3 0   79%
src/lektor_ng/builder.py BuildState.iter_existing_artifacts   8 0 0   100%
src/lektor_ng/builder.py BuildState.iter_existing_artifacts._unignored   1 0 0   100%
src/lektor_ng/builder.py BuildState.iter_unreferenced_artifacts   8 0 0   100%
src/lektor_ng/builder.py BuildState.iter_unreferenced_artifacts._is_unreferenced   11 1 0   91%
src/lektor_ng/builder.py BuildState.iter_artifacts   12 12 0   0%
src/lektor_ng/builder.py BuildState.vacuum   4 0 0   100%
src/lektor_ng/builder.py _describe_fs_path_for_checksum   7 1 0   86%
src/lektor_ng/builder.py _ArtifactSourceInfo.is_changed   1 1 0   0%
src/lektor_ng/builder.py FileInfo.__init__   6 0 0   100%
src/lektor_ng/builder.py FileInfo._get_stat   16 0 0   100%
src/lektor_ng/builder.py FileInfo.mtime   1 0 0   100%
src/lektor_ng/builder.py FileInfo.size   1 0 0   100%
src/lektor_ng/builder.py FileInfo.is_dir   1 0 0   100%
src/lektor_ng/builder.py FileInfo.exists   1 0 0   100%
src/lektor_ng/builder.py FileInfo.checksum   26 1 0   96%
src/lektor_ng/builder.py FileInfo.filename_and_checksum   1 0 0   100%
src/lektor_ng/builder.py FileInfo.unchanged   7 1 0   86%
src/lektor_ng/builder.py FileInfo.is_changed   2 0 0   100%
src/lektor_ng/builder.py _pack_virtual_source_path   3 0 0   100%
src/lektor_ng/builder.py _unpack_virtual_source_path   6 1 0   83%
src/lektor_ng/builder.py VirtualSourceInfo.unchanged   5 2 0   60%
src/lektor_ng/builder.py VirtualSourceInfo.is_changed   2 0 0   100%
src/lektor_ng/builder.py Artifact.__init__   11 0 0   100%
src/lektor_ng/builder.py Artifact.__repr__   1 1 0   0%
src/lektor_ng/builder.py Artifact.is_current   3 0 0   100%
src/lektor_ng/builder.py Artifact.get_dependency_infos   1 1 0   0%
src/lektor_ng/builder.py Artifact.ensure_dir   5 0 0   100%
src/lektor_ng/builder.py Artifact.open   8 0 0   100%
src/lektor_ng/builder.py Artifact.replace_with_file   6 6 0   0%
src/lektor_ng/builder.py Artifact.render_template_into   3 0 0   100%
src/lektor_ng/builder.py Artifact._memorize_dependencies   12 4 0   67%
src/lektor_ng/builder.py Artifact._memorize_dependencies.operation   24 1 0   96%
src/lektor_ng/builder.py Artifact.clear_dirty_flag   2 0 0   100%
src/lektor_ng/builder.py Artifact.clear_dirty_flag.operation   5 0 0   100%
src/lektor_ng/builder.py Artifact.set_dirty_flag   2 0 0   100%
src/lektor_ng/builder.py Artifact.set_dirty_flag.operation   9 1 0   89%
src/lektor_ng/builder.py Artifact._auto_deferred_update_operation   11 3 0   73%
src/lektor_ng/builder.py Artifact.update   7 0 0   100%
src/lektor_ng/builder.py Artifact.begin_update   8 1 0   88%
src/lektor_ng/builder.py Artifact._commit   18 2 0   89%
src/lektor_ng/builder.py Artifact._rollback   7 5 0   29%
src/lektor_ng/builder.py Artifact.finish_update   13 1 0   92%
src/lektor_ng/builder.py PathCache.__init__   3 0 0   100%
src/lektor_ng/builder.py PathCache.to_source_filename   16 2 0   88%
src/lektor_ng/builder.py PathCache.get_file_info   5 0 0   100%
src/lektor_ng/builder.py Builder.__init__   20 1 0   95%
src/lektor_ng/builder.py Builder.env   1 0 0   100%
src/lektor_ng/builder.py Builder.buildstate_database_filename   1 0 0   100%
src/lektor_ng/builder.py Builder.connect_to_database   7 0 0   100%
src/lektor_ng/builder.py Builder.touch_site_config   5 5 0   0%
src/lektor_ng/builder.py Builder.find_files   1 0 0   100%
src/lektor_ng/builder.py Builder.new_build_state   3 0 0   100%
src/lektor_ng/builder.py Builder.get_build_program   4 1 0   75%
src/lektor_ng/builder.py Builder.build_artifact   10 0 0   100%
src/lektor_ng/builder.py Builder.update_source_info   3 0 0   100%
src/lektor_ng/builder.py Builder.prune   13 0 0   100%
src/lektor_ng/builder.py Builder.build   9 0 0   100%
src/lektor_ng/builder.py Builder.get_initial_build_queue   1 0 0   100%
src/lektor_ng/builder.py Builder.extend_build_queue   3 1 0   67%
src/lektor_ng/builder.py Builder.build_all   17 0 0   100%
src/lektor_ng/builder.py Builder.update_all_source_infos   13 0 0   100%
src/lektor_ng/builder.py (no function)   128 0 0   100%
src/lektor_ng/buildfailures.py BuildFailure.__init__   1 0 0   100%
src/lektor_ng/buildfailures.py BuildFailure.from_exc_info   2 0 0   100%
src/lektor_ng/buildfailures.py BuildFailure.to_json   1 0 0   100%
src/lektor_ng/buildfailures.py FailureController.__init__   2 0 0   100%
src/lektor_ng/buildfailures.py FailureController.get_filename   1 0 0   100%
src/lektor_ng/buildfailures.py FailureController.lookup_failure   8 0 0   100%
src/lektor_ng/buildfailures.py FailureController.clear_failure   5 0 0   100%
src/lektor_ng/buildfailures.py FailureController.store_failure   8 0 0   100%
src/lektor_ng/buildfailures.py (no function)   16 0 0   100%
src/lektor_ng/cli.py cli   6 1 0   83%
src/lektor_ng/cli.py build_cmd   23 5 0   78%
src/lektor_ng/cli.py clean_cmd   10 0 0   100%
src/lektor_ng/cli.py deploy_cmd   28 11 0   61%
src/lektor_ng/cli.py server_cmd   7 1 0   86%
src/lektor_ng/cli.py project_info_cmd   14 0 0   100%
src/lektor_ng/cli.py content_file_info_cmd   28 28 0   0%
src/lektor_ng/cli.py content_file_info_cmd.fail   4 4 0   0%
src/lektor_ng/cli.py plugins_cmd   0 0 0   100%
src/lektor_ng/cli.py plugins_add_cmd   7 7 0   0%
src/lektor_ng/cli.py plugins_remove_cmd   9 9 0   0%
src/lektor_ng/cli.py plugins_list_cmd   20 20 0   0%
src/lektor_ng/cli.py plugins_flush_cache_cmd   4 4 0   0%
src/lektor_ng/cli.py plugins_reinstall_cmd   1 1 0   0%
src/lektor_ng/cli.py quickstart_cmd   2 2 0   0%
src/lektor_ng/cli.py main   6 6 0   0%
src/lektor_ng/cli.py (no function)   97 1 0   99%
src/lektor_ng/cli_utils.py echo_json   1 0 0   100%
src/lektor_ng/cli_utils.py pruneflag   1 0 0   100%
src/lektor_ng/cli_utils.py extraflag   1 0 0   100%
src/lektor_ng/cli_utils.py AliasedGroup.get_command   9 0 0   100%
src/lektor_ng/cli_utils.py Context.__init__   4 0 0   100%
src/lektor_ng/cli_utils.py Context._get_ui_lang   4 0 0   100%
src/lektor_ng/cli_utils.py Context._set_ui_lang   1 1 0   0%
src/lektor_ng/cli_utils.py Context.set_project_path   2 0 0   100%
src/lektor_ng/cli_utils.py Context.get_project   13 2 0   85%
src/lektor_ng/cli_utils.py Context.get_default_output_path   4 1 0   75%
src/lektor_ng/cli_utils.py Context.get_env   6 0 0   100%
src/lektor_ng/cli_utils.py Context.load_plugins   5 0 0   100%
src/lektor_ng/cli_utils.py validate_language   3 1 0   67%
src/lektor_ng/cli_utils.py ResolvedPath.__init__   1 0 0   100%
src/lektor_ng/cli_utils.py ResolvedPath.convert   2 0 0   100%
src/lektor_ng/cli_utils.py (no function)   29 0 0   100%
src/lektor_ng/compat.py __getattr__   9 2 0   78%
src/lektor_ng/compat.py _CompatURL.__str__   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.replace   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.host   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.ascii_host   7 0 0   100%
src/lektor_ng/compat.py _CompatURL.auth   2 0 0   100%
src/lektor_ng/compat.py _CompatURL.username   4 0 0   100%
src/lektor_ng/compat.py _CompatURL.raw_username   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.password   4 0 0   100%
src/lektor_ng/compat.py _CompatURL.raw_password   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.decode_query   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.join   4 0 0   100%
src/lektor_ng/compat.py _CompatURL.to_url   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.to_uri_tuple   1 0 0   100%
src/lektor_ng/compat.py _CompatURL.to_iri_tuple   1 0 0   100%
src/lektor_ng/compat.py _unquote_legacy   4 0 0   100%
src/lektor_ng/compat.py (no function)   37 0 0   100%
src/lektor_ng/constants.py (no function)   1 0 0   100%
src/lektor_ng/context.py url_to   4 1 0   75%
src/lektor_ng/context.py get_asset_url   7 2 0   71%
src/lektor_ng/context.py site_proxy   4 1 0   75%
src/lektor_ng/context.py config_proxy   1 1 0   0%
src/lektor_ng/context.py get_ctx   1 0 0   100%
src/lektor_ng/context.py get_locale   7 1 0   86%
src/lektor_ng/context.py Context.__init__   21 1 0   95%
src/lektor_ng/context.py Context.env   1 0 0   100%
src/lektor_ng/context.py Context.record   4 4 0   0%
src/lektor_ng/context.py Context.locale   6 1 0   83%
src/lektor_ng/context.py Context.push   1 0 0   100%
src/lektor_ng/context.py Context.pop   1 0 0   100%
src/lektor_ng/context.py Context.__enter__   2 0 0   100%
src/lektor_ng/context.py Context.__exit__   1 0 0   100%
src/lektor_ng/context.py Context.base_url   5 0 0   100%
src/lektor_ng/context.py Context.url_to   3 1 0   67%
src/lektor_ng/context.py Context.get_asset_url   6 1 0   83%
src/lektor_ng/context.py Context.sub_artifact   2 2 0   0%
src/lektor_ng/context.py Context.sub_artifact.decorator   2 2 0   0%
src/lektor_ng/context.py Context.add_sub_artifact   5 1 0   80%
src/lektor_ng/context.py Context.record_dependency   5 1 0   80%
src/lektor_ng/context.py Context.record_virtual_dependency   3 1 0   67%
src/lektor_ng/context.py Context.gather_dependencies   4 4 0   0%
src/lektor_ng/context.py Context.changed_base_url   5 0 0   100%
src/lektor_ng/context.py ignore_url_unaffecting_dependencies   8 0 0   100%
src/lektor_ng/context.py (no function)   40 0 0   100%
src/lektor_ng/databags.py load_databag   11 7 0   36%
src/lektor_ng/databags.py Databags.__init__   10 0 0   100%
src/lektor_ng/databags.py Databags.get_bag   18 2 0   89%
src/lektor_ng/databags.py Databags.lookup   7 2 0   71%
src/lektor_ng/databags.py (no function)   12 0 0   100%
src/lektor_ng/datamodel.py ChildConfig.__init__   8 0 0   100%
src/lektor_ng/datamodel.py ChildConfig.to_json   1 0 0   100%
src/lektor_ng/datamodel.py PaginationConfig.__init__   16 0 0   100%
src/lektor_ng/datamodel.py PaginationConfig.count_total_items   1 0 0   100%
src/lektor_ng/datamodel.py PaginationConfig.count_pages   3 0 0   100%
src/lektor_ng/datamodel.py PaginationConfig.slice_query_for_page   4 0 0   100%
src/lektor_ng/datamodel.py PaginationConfig.get_record_for_page   10 2 0   80%
src/lektor_ng/datamodel.py PaginationConfig.match_pagination   15 4 0   73%
src/lektor_ng/datamodel.py PaginationConfig.get_pagination_controller   3 1 0   67%
src/lektor_ng/datamodel.py PaginationConfig.get_pagination_query   6 0 0   100%
src/lektor_ng/datamodel.py PaginationConfig.to_json   1 0 0   100%
src/lektor_ng/datamodel.py AttachmentConfig.__init__   8 0 0   100%
src/lektor_ng/datamodel.py AttachmentConfig.to_json   1 0 0   100%
src/lektor_ng/datamodel.py Field.__init__   13 1 0   92%
src/lektor_ng/datamodel.py Field.label   1 0 0   100%
src/lektor_ng/datamodel.py Field.to_json   1 0 0   100%
src/lektor_ng/datamodel.py Field.deserialize_value   2 0 0   100%
src/lektor_ng/datamodel.py Field.serialize_value   1 1 0   0%
src/lektor_ng/datamodel.py Field.__repr__   1 1 0   0%
src/lektor_ng/datamodel.py _iter_all_fields   3 0 0   100%
src/lektor_ng/datamodel.py DataModel.__init__   33 0 0   100%
src/lektor_ng/datamodel.py DataModel.name   2 0 0   100%
src/lektor_ng/datamodel.py DataModel.label   1 0 0   100%
src/lektor_ng/datamodel.py DataModel.to_json   1 0 0   100%
src/lektor_ng/datamodel.py DataModel.format_record_label   11 3 0   73%
src/lektor_ng/datamodel.py DataModel.get_default_child_slug   10 0 0   100%
src/lektor_ng/datamodel.py DataModel.get_default_template_name   1 0 0   100%
src/lektor_ng/datamodel.py DataModel.has_own_children   1 0 0   100%
src/lektor_ng/datamodel.py DataModel.has_own_attachments   1 0 0   100%
src/lektor_ng/datamodel.py DataModel.get_child_replacements   6 3 0   50%
src/lektor_ng/datamodel.py DataModel.process_raw_data   6 0 0   100%
src/lektor_ng/datamodel.py DataModel.__repr__   1 1 0   0%
src/lektor_ng/datamodel.py FlowBlockModel.__init__   13 1 0   92%
src/lektor_ng/datamodel.py FlowBlockModel.name   1 0 0   100%
src/lektor_ng/datamodel.py FlowBlockModel.to_json   1 0 0   100%
src/lektor_ng/datamodel.py FlowBlockModel.process_raw_data   6 0 0   100%
src/lektor_ng/datamodel.py FlowBlockModel.__repr__   1 1 0   0%
src/lektor_ng/datamodel.py fielddata_from_ini   1 0 0   100%
src/lektor_ng/datamodel.py datamodel_data_from_ini   2 0 0   100%
src/lektor_ng/datamodel.py datamodel_data_from_ini._parse_order   4 0 0   100%
src/lektor_ng/datamodel.py flowblock_data_from_ini   1 0 0   100%
src/lektor_ng/datamodel.py fields_from_data   10 0 0   100%
src/lektor_ng/datamodel.py datamodel_from_data   3 0 0   100%
src/lektor_ng/datamodel.py datamodel_from_data.get_value   12 0 0   100%
src/lektor_ng/datamodel.py flowblock_from_data   1 0 0   100%
src/lektor_ng/datamodel.py iter_inis   13 2 0   85%
src/lektor_ng/datamodel.py load_datamodels   13 0 0   100%
src/lektor_ng/datamodel.py load_datamodels.get_model   6 1 0   83%
src/lektor_ng/datamodel.py load_datamodels.create_model   8 1 0   88%
src/lektor_ng/datamodel.py load_flowblocks   7 0 0   100%
src/lektor_ng/datamodel.py add_system_field   3 0 0   100%
src/lektor_ng/datamodel.py (no function)   84 0 0   100%
src/lektor_ng/db.py get_alts   16 2 0   88%
src/lektor_ng/db.py _require_ctx   6 2 0   67%
src/lektor_ng/db.py _CmpHelper.__init__   2 0 0   100%
src/lektor_ng/db.py _CmpHelper.coerce   21 0 0   100%
src/lektor_ng/db.py _CmpHelper.__eq__   2 0 0   100%
src/lektor_ng/db.py _CmpHelper.__lt__   9 0 0   100%
src/lektor_ng/db.py _auto_wrap_expr   3 0 0   100%
src/lektor_ng/db.py save_eval   4 2 0   50%
src/lektor_ng/db.py Expression.__eval__   1 1 0   0%
src/lektor_ng/db.py Expression.__eq__   1 0 0   100%
src/lektor_ng/db.py Expression.__ne__   1 0 0   100%
src/lektor_ng/db.py Expression.__and__   1 1 0   0%
src/lektor_ng/db.py Expression.__or__   1 0 0   100%
src/lektor_ng/db.py Expression.__gt__   1 1 0   0%
src/lektor_ng/db.py Expression.__ge__   1 1 0   0%
src/lektor_ng/db.py Expression.__lt__   1 1 0   0%
src/lektor_ng/db.py Expression.__le__   1 1 0   0%
src/lektor_ng/db.py Expression.contains   1 1 0   0%
src/lektor_ng/db.py Expression.startswith   1 1 0   0%
src/lektor_ng/db.py Expression.endswith   1 1 0   0%
src/lektor_ng/db.py Expression.startswith_cs   1 1 0   0%
src/lektor_ng/db.py Expression.endswith_cs   1 1 0   0%
src/lektor_ng/db.py Expression.false   1 1 0   0%
src/lektor_ng/db.py Expression.true   1 1 0   0%
src/lektor_ng/db.py _CallbackExpr.__init__   1 1 0   0%
src/lektor_ng/db.py _CallbackExpr.__eval__   1 1 0   0%
src/lektor_ng/db.py _IsBoolExpr.__init__   2 2 0   0%
src/lektor_ng/db.py _IsBoolExpr.__eval__   2 2 0   0%
src/lektor_ng/db.py _Literal.__init__   1 0 0   100%
src/lektor_ng/db.py _Literal.__eval__   1 0 0   100%
src/lektor_ng/db.py _BinExpr.__init__   3 0 0   100%
src/lektor_ng/db.py _BinExpr.__eval__   1 0 0   100%
src/lektor_ng/db.py _ContainmentExpr.__init__   2 2 0   0%
src/lektor_ng/db.py _ContainmentExpr.__eval__   5 5 0   0%
src/lektor_ng/db.py _RecordQueryField.__init__   1 0 0   100%
src/lektor_ng/db.py _RecordQueryField.__eval__   4 2 0   50%
src/lektor_ng/db.py _RecordQueryProxy.__getattr__   3 0 0   100%
src/lektor_ng/db.py _RecordQueryProxy.__getitem__   4 4 0   0%
src/lektor_ng/db.py Record.__init__   6 1 0   83%
src/lektor_ng/db.py Record.record   1 1 0   0%
src/lektor_ng/db.py Record.datamodel   4 2 0   50%
src/lektor_ng/db.py Record.alt   1 0 0   100%
src/lektor_ng/db.py Record.is_hidden   4 0 0   100%
src/lektor_ng/db.py Record._is_hidden_by_parent_config   1 1 0   0%
src/lektor_ng/db.py Record.is_discoverable   1 0 0   100%
src/lektor_ng/db.py Record.pagination   3 1 0   67%
src/lektor_ng/db.py Record.contents   1 0 0   100%
src/lektor_ng/db.py Record.get_fallback_record_label   3 0 0   100%
src/lektor_ng/db.py Record.get_record_label_i18n   9 0 0   100%
src/lektor_ng/db.py Record.record_label   1 0 0   100%
src/lektor_ng/db.py Record.url_path   1 1 0   0%
src/lektor_ng/db.py Record._get_clean_url_path   10 0 0   100%
src/lektor_ng/db.py Record._get_url_path   8 0 0   100%
src/lektor_ng/db.py Record.path   1 0 0   100%
src/lektor_ng/db.py Record.get_sort_key   13 0 0   100%
src/lektor_ng/db.py Record.__contains__   1 1 0   0%
src/lektor_ng/db.py Record.__getitem__   8 0 0   100%
src/lektor_ng/db.py Record.__repr__   6 1 0   83%
src/lektor_ng/db.py Siblings.__init__   4 0 0   100%
src/lektor_ng/db.py Siblings.path   1 0 0   100%
src/lektor_ng/db.py Siblings.prev_page   1 0 0   100%
src/lektor_ng/db.py Siblings.next_page   1 0 0   100%
src/lektor_ng/db.py Siblings.iter_source_filenames   3 0 0   100%
src/lektor_ng/db.py Siblings._file_infos   3 0 0   100%
src/lektor_ng/db.py Siblings.get_mtime   2 0 0   100%
src/lektor_ng/db.py Siblings.get_checksum   2 0 0   100%
src/lektor_ng/db.py siblings_resolver   1 0 0   100%
src/lektor_ng/db.py Page.path   4 0 0   100%
src/lektor_ng/db.py Page.record   3 0 0   100%
src/lektor_ng/db.py Page.iter_source_filenames   4 0 0   100%
src/lektor_ng/db.py Page.url_path   12 0 0   100%
src/lektor_ng/db.py Page.url_content_path   6 0 0   100%
src/lektor_ng/db.py Page.resolve_url_path   29 1 0   97%
src/lektor_ng/db.py Page.parent   5 0 0   100%
src/lektor_ng/db.py Page._is_hidden_by_parent_config   7 0 0   100%
src/lektor_ng/db.py Page.children   4 1 0   75%
src/lektor_ng/db.py Page.attachments   1 0 0   100%
src/lektor_ng/db.py Page.has_prev   1 1 0   0%
src/lektor_ng/db.py Page.has_next   1 1 0   0%
src/lektor_ng/db.py Page.get_siblings   5 0 0   100%
src/lektor_ng/db.py Page._siblings   17 2 0   88%
src/lektor_ng/db.py Attachment._is_hidden_by_parent_config   4 1 0   75%
src/lektor_ng/db.py Attachment.record   1 0 0   100%
src/lektor_ng/db.py Attachment.attachment_filename   1 0 0   100%
src/lektor_ng/db.py Attachment.parent   1 0 0   100%
src/lektor_ng/db.py Attachment.contents   1 0 0   100%
src/lektor_ng/db.py Attachment.get_fallback_record_label   1 0 0   100%
src/lektor_ng/db.py Attachment.iter_source_filenames   5 0 0   100%
src/lektor_ng/db.py Attachment.url_path   2 0 0   100%
src/lektor_ng/db.py Image._image_info   1 0 0   100%
src/lektor_ng/db.py Image.exif   1 0 0   100%
src/lektor_ng/db.py Image.width   4 1 0   75%
src/lektor_ng/db.py Image.height   4 1 0   75%
src/lektor_ng/db.py Image.format   4 1 0   75%
src/lektor_ng/db.py Image.thumbnail   8 0 0   100%
src/lektor_ng/db.py require_ffmpeg   5 1 0   80%
src/lektor_ng/db.py require_ffmpeg.wrapper   1 0 0   100%
src/lektor_ng/db.py Video._video_info   4 4 0   0%
src/lektor_ng/db.py Video.width   4 4 0   0%
src/lektor_ng/db.py Video.height   4 4 0   0%
src/lektor_ng/db.py Video.duration   4 4 0   0%
src/lektor_ng/db.py Video.frame   6 6 0   0%
src/lektor_ng/db.py VideoFrame.__init__   8 8 0   0%
src/lektor_ng/db.py VideoFrame.__str__   1 1 0   0%
src/lektor_ng/db.py VideoFrame.thumbnail   5 5 0   0%
src/lektor_ng/db.py Query.__init__   14 0 0   100%
src/lektor_ng/db.py Query.self   1 1 0   0%
src/lektor_ng/db.py Query._clone   5 0 0   100%
src/lektor_ng/db.py Query._get   3 0 0   100%
src/lektor_ng/db.py Query._matches   8 0 0   100%
src/lektor_ng/db.py Query._iterate   12 0 0   100%
src/lektor_ng/db.py Query.filter   6 1 0   83%
src/lektor_ng/db.py Query.get_order_by   10 1 0   90%
src/lektor_ng/db.py Query.include_hidden   3 0 0   100%
src/lektor_ng/db.py Query.include_undiscoverable   3 0 0   100%
src/lektor_ng/db.py Query.request_page   3 3 0   0%
src/lektor_ng/db.py Query.first   1 0 0   100%
src/lektor_ng/db.py Query.all   1 0 0   100%
src/lektor_ng/db.py Query.order_by   3 0 0   100%
src/lektor_ng/db.py Query.offset   3 0 0   100%
src/lektor_ng/db.py Query.limit   3 0 0   100%
src/lektor_ng/db.py Query.count   4 0 0   100%
src/lektor_ng/db.py Query.distinct   9 0 0   100%
src/lektor_ng/db.py Query.get   6 1 0   83%
src/lektor_ng/db.py Query.__bool__   1 1 0   0%
src/lektor_ng/db.py Query.__iter__   7 0 0   100%
src/lektor_ng/db.py Query.__repr__   2 2 0   0%
src/lektor_ng/db.py EmptyQuery._get   1 1 0   0%
src/lektor_ng/db.py EmptyQuery._iterate   1 1 0   0%
src/lektor_ng/db.py AttachmentsQuery.__init__   3 0 0   100%
src/lektor_ng/db.py AttachmentsQuery.images   1 0 0   100%
src/lektor_ng/db.py AttachmentsQuery.videos   1 0 0   100%
src/lektor_ng/db.py AttachmentsQuery.audio   1 1 0   0%
src/lektor_ng/db.py AttachmentsQuery.documents   1 1 0   0%
src/lektor_ng/db.py AttachmentsQuery.text   1 1 0   0%
src/lektor_ng/db.py _iter_filename_choices   10 0 0   100%
src/lektor_ng/db.py _iter_content_files   7 0 0   100%
src/lektor_ng/db.py _iter_datamodel_choices   5 0 0   100%
src/lektor_ng/db.py get_default_slug   4 0 0   100%
src/lektor_ng/db.py Database.__init__   6 0 0   100%
src/lektor_ng/db.py Database.to_fs_path   1 0 0   100%
src/lektor_ng/db.py Database.load_raw_data   35 1 0   97%
src/lektor_ng/db.py Database.iter_items   33 8 0   76%
src/lektor_ng/db.py Database.get_datamodel_for_raw_data   4 0 0   100%
src/lektor_ng/db.py Database.iter_dependent_models   5 0 0   100%
src/lektor_ng/db.py Database.iter_dependent_models.deep_find   7 0 0   100%
src/lektor_ng/db.py Database.get_implied_datamodel   16 2 0   88%
src/lektor_ng/db.py Database.get_attachment_type   1 0 0   100%
src/lektor_ng/db.py Database.track_record_dependency   15 0 0   100%
src/lektor_ng/db.py Database.process_data   7 0 0   100%
src/lektor_ng/db.py Database.get_record_class   5 0 0   100%
src/lektor_ng/db.py Database.new_pad   1 0 0   100%
src/lektor_ng/db.py _split_alt_from_url   14 3 0   79%
src/lektor_ng/db.py Pad.__init__   3 0 0   100%
src/lektor_ng/db.py Pad.config   1 0 0   100%
src/lektor_ng/db.py Pad.env   1 0 0   100%
src/lektor_ng/db.py Pad.make_absolute_url   4 4 0   0%
src/lektor_ng/db.py Pad.make_url   15 0 0   100%
src/lektor_ng/db.py Pad.resolve_url_path   22 1 0   95%
src/lektor_ng/db.py Pad.get_root   3 0 0   100%
src/lektor_ng/db.py Pad.asset_root   3 0 0   100%
src/lektor_ng/db.py Pad.theme_asset_roots   1 1 0   0%
src/lektor_ng/db.py Pad.get_all_roots   5 0 0   100%
src/lektor_ng/db.py Pad.get_virtual   11 2 0   82%
src/lektor_ng/db.py Pad.get   33 4 0   88%
src/lektor_ng/db.py Pad.alt_exists   11 2 0   82%
src/lektor_ng/db.py Pad.get_asset   8 1 0   88%
src/lektor_ng/db.py Pad.instance_from_data   6 0 0   100%
src/lektor_ng/db.py Pad.query   3 1 0   67%
src/lektor_ng/db.py TreeItem.__init__   4 0 0   100%
src/lektor_ng/db.py TreeItem.id   1 0 0   100%
src/lektor_ng/db.py TreeItem.exists   1 0 0   100%
src/lektor_ng/db.py TreeItem.is_attachment   3 0 0   100%
src/lektor_ng/db.py TreeItem.is_visible   3 0 0   100%
src/lektor_ng/db.py TreeItem.can_be_deleted   3 0 0   100%
src/lektor_ng/db.py TreeItem._datamodel   3 0 0   100%
src/lektor_ng/db.py TreeItem.get_record_label_i18n   5 0 0   100%
src/lektor_ng/db.py TreeItem.can_have_children   3 0 0   100%
src/lektor_ng/db.py TreeItem.implied_child_datamodel   2 0 0   100%
src/lektor_ng/db.py TreeItem.can_have_attachments   3 0 0   100%
src/lektor_ng/db.py TreeItem.attachment_type   3 0 0   100%
src/lektor_ng/db.py TreeItem.get_parent   3 0 0   100%
src/lektor_ng/db.py TreeItem.get   1 0 0   100%
src/lektor_ng/db.py TreeItem._get_child_ids   5 0 0   100%
src/lektor_ng/db.py TreeItem.iter_children   4 0 0   100%
src/lektor_ng/db.py TreeItem.get_children   5 0 0   100%
src/lektor_ng/db.py TreeItem.iter_attachments   5 0 0   100%
src/lektor_ng/db.py TreeItem.iter_subpages   5 0 0   100%
src/lektor_ng/db.py TreeItem.get_sort_key   4 0 0   100%
src/lektor_ng/db.py TreeItem.get_sort_key.sort_key   5 0 0   100%
src/lektor_ng/db.py TreeItem.__repr__   1 0 0   100%
src/lektor_ng/db.py Alt.__init__   5 0 0   100%
src/lektor_ng/db.py Alt.__repr__   1 0 0   100%
src/lektor_ng/db.py Tree.__init__   11 0 0   100%
src/lektor_ng/db.py Tree.get   9 0 0   100%
src/lektor_ng/db.py Tree.iter_children   2 2 0   0%
src/lektor_ng/db.py Tree.get_children   2 2 0   0%
src/lektor_ng/db.py Tree.edit   1 0 0   100%
src/lektor_ng/db.py RecordCache.__init__   2 0 0   100%
src/lektor_ng/db.py RecordCache._get_cache_key   7 0 0   100%
src/lektor_ng/db.py RecordCache.flush   2 0 0   100%
src/lektor_ng/db.py RecordCache.is_persistent   2 0 0   100%
src/lektor_ng/db.py RecordCache.remember   3 0 0   100%
src/lektor_ng/db.py RecordCache.persist   6 0 0   100%
src/lektor_ng/db.py RecordCache.persist_if_cached   3 3 0   0%
src/lektor_ng/db.py RecordCache.get   8 0 0   100%
src/lektor_ng/db.py RecordCache.remember_as_missing   3 0 0   100%
src/lektor_ng/db.py (no function)   341 0 3   100%
src/lektor_ng/devcli.py cli   0 0 0   100%
src/lektor_ng/devcli.py shell_cmd   18 17 0   6%
src/lektor_ng/devcli.py new_plugin   3 0 0   100%
src/lektor_ng/devcli.py new_theme   3 0 0   100%
src/lektor_ng/devcli.py (no function)   25 1 0   96%
src/lektor_ng/devserver.py BackgroundBuilder.__init__   7 7 0   0%
src/lektor_ng/devserver.py BackgroundBuilder.__enter__   2 2 0   0%
src/lektor_ng/devserver.py BackgroundBuilder.__exit__   1 1 0   0%
src/lektor_ng/devserver.py BackgroundBuilder.build   10 10 0   0%
src/lektor_ng/devserver.py BackgroundBuilder.run   5 5 0   0%
src/lektor_ng/devserver.py browse_to_address   3 3 0   0%
src/lektor_ng/devserver.py run_server   16 16 0   0%
src/lektor_ng/devserver.py (no function)   25 0 3   100%
src/lektor_ng/editor.py _is_valid_path   4 0 0   100%
src/lektor_ng/editor.py make_editor_session   41 0 0   100%
src/lektor_ng/editor.py _deprecated_data_proxy   5 0 0   100%
src/lektor_ng/editor.py _deprecated_data_proxy.wrapper   2 0 0   100%
src/lektor_ng/editor.py EditorSession.__init__   26 0 0   100%
src/lektor_ng/editor.py EditorSession.to_json   10 1 0   90%
src/lektor_ng/editor.py EditorSession.__enter__   1 0 0   100%
src/lektor_ng/editor.py EditorSession.__exit__   3 1 0   67%
src/lektor_ng/editor.py EditorSession.get_fs_path   7 1 0   86%
src/lektor_ng/editor.py EditorSession.fs_path   1 0 0   100%
src/lektor_ng/editor.py EditorSession.attachment_fs_path   3 3 0   0%
src/lektor_ng/editor.py EditorSession.rollback   3 3 0   0%
src/lektor_ng/editor.py EditorSession.commit   5 1 0   80%
src/lektor_ng/editor.py EditorSession.delete   7 7 0   0%
src/lektor_ng/editor.py EditorSession.add_attachment   16 4 0   75%
src/lektor_ng/editor.py EditorSession._attachment_delete_impl   9 9 0   0%
src/lektor_ng/editor.py EditorSession._page_delete_impl   12 12 0   0%
src/lektor_ng/editor.py EditorSession._delete_impl   8 8 0   0%
src/lektor_ng/editor.py EditorSession._save_impl   9 0 0   100%
src/lektor_ng/editor.py EditorSession.__repr__   6 6 0   0%
src/lektor_ng/editor.py EditorSession.revert_key   1 0 0   100%
src/lektor_ng/editor.py EditorSession.__contains__   1 0 0   100%
src/lektor_ng/editor.py EditorSession.__getitem__   1 0 0   100%
src/lektor_ng/editor.py EditorSession.__len__   1 0 0   100%
src/lektor_ng/editor.py EditorSession.__iter__   1 0 0   100%
src/lektor_ng/editor.py EditorSession.items   1 0 0   100%
src/lektor_ng/editor.py EditorSession.keys   1 0 0   100%
src/lektor_ng/editor.py EditorSession.values   1 0 0   100%
src/lektor_ng/editor.py EditorSession.iteritems   1 0 0   100%
src/lektor_ng/editor.py EditorSession.iterkeys   1 0 0   100%
src/lektor_ng/editor.py EditorSession.itervalues   1 0 0   100%
src/lektor_ng/editor.py EditorSession.__setitem__   1 0 0   100%
src/lektor_ng/editor.py EditorSession.update   1 0 0   100%
src/lektor_ng/editor.py EditorData.__init__   8 0 0   100%
src/lektor_ng/editor.py EditorData._changed_data   1 0 0   100%
src/lektor_ng/editor.py EditorData.original_data   1 0 0   100%
src/lektor_ng/editor.py EditorData.ischanged   1 0 0   100%
src/lektor_ng/editor.py EditorData.__getitem__   4 0 0   100%
src/lektor_ng/editor.py EditorData.__iter__   6 0 0   100%
src/lektor_ng/editor.py EditorData.__len__   2 0 0   100%
src/lektor_ng/editor.py EditorData.keys   1 0 0   100%
src/lektor_ng/editor.py EditorData.items   1 0 0   100%
src/lektor_ng/editor.py EditorData.values   1 0 0   100%
src/lektor_ng/editor.py EditorData._without_fallback   3 0 0   100%
src/lektor_ng/editor.py MutableEditorData.__setitem__   8 0 0   100%
src/lektor_ng/editor.py MutableEditorData.__delitem__   3 0 0   100%
src/lektor_ng/editor.py MutableEditorData.revert_key   1 0 0   100%
src/lektor_ng/editor.py _uniq   5 0 0   100%
src/lektor_ng/editor.py (no function)   86 0 0   100%
src/lektor_ng/environment/__init__.py _prevent_inlining   3 0 0   100%
src/lektor_ng/environment/__init__.py _prevent_inlining.wrapper   1 0 0   100%
src/lektor_ng/environment/__init__.py _dates_filter   3 0 0   100%
src/lektor_ng/environment/__init__.py _dates_filter.wrapper   13 0 0   100%
src/lektor_ng/environment/__init__.py _markdown_filter   3 0 0   100%
src/lektor_ng/environment/__init__.py any_fnmatch   4 0 0   100%
src/lektor_ng/environment/__init__.py CustomJinjaEnvironment._load_template   18 3 0   83%
src/lektor_ng/environment/__init__.py lookup_from_bag   3 0 0   100%
src/lektor_ng/environment/__init__.py Environment.__init__   34 0 0   100%
src/lektor_ng/environment/__init__.py Environment.__init__.latlongformat   2 2 0   0%
src/lektor_ng/environment/__init__.py Environment.asset_path   1 1 0   0%
src/lektor_ng/environment/__init__.py Environment.temp_path   1 1 0   0%
src/lektor_ng/environment/__init__.py Environment.load_plugins   2 0 0   100%
src/lektor_ng/environment/__init__.py Environment.load_config   1 0 0   100%
src/lektor_ng/environment/__init__.py Environment.new_pad   2 0 0   100%
src/lektor_ng/environment/__init__.py Environment.is_uninteresting_source_name   7 1 0   86%
src/lektor_ng/environment/__init__.py Environment.is_ignored_artifact   4 1 0   75%
src/lektor_ng/environment/__init__.py Environment.render_template   2 0 0   100%
src/lektor_ng/environment/__init__.py Environment.make_default_tmpl_values   20 3 0   85%
src/lektor_ng/environment/__init__.py Environment.select_jinja_autoescape   3 0 0   100%
src/lektor_ng/environment/__init__.py Environment.resolve_custom_url_path   5 3 0   40%
src/lektor_ng/environment/__init__.py Environment.add_build_program   1 1 0   0%
src/lektor_ng/environment/__init__.py Environment.add_asset_type   5 5 0   0%
src/lektor_ng/environment/__init__.py Environment.add_publisher   3 1 0   67%
src/lektor_ng/environment/__init__.py Environment.add_type   4 4 0   0%
src/lektor_ng/environment/__init__.py Environment.virtualpathresolver   2 0 0   100%
src/lektor_ng/environment/__init__.py Environment.virtualpathresolver.decorator   4 1 0   75%
src/lektor_ng/environment/__init__.py Environment.urlresolver   2 2 0   0%
src/lektor_ng/environment/__init__.py Environment.generator   2 2 0   0%
src/lektor_ng/environment/__init__.py (no function)   59 0 5   100%
src/lektor_ng/environment/config.py update_config_from_ini   16 1 0   94%
src/lektor_ng/environment/config.py ServerInfo.__init__   6 0 0   100%
src/lektor_ng/environment/config.py ServerInfo.name   1 0 0   100%
src/lektor_ng/environment/config.py ServerInfo.short_target   5 1 0   80%
src/lektor_ng/environment/config.py ServerInfo.to_json   1 0 0   100%
src/lektor_ng/environment/config.py Config.__init__   5 0 0   100%
src/lektor_ng/environment/config.py Config.__getitem__   1 0 0   100%
src/lektor_ng/environment/config.py Config.site_locale   1 1 0   0%
src/lektor_ng/environment/config.py Config.get_servers   7 1 0   86%
src/lektor_ng/environment/config.py Config.get_default_server   10 2 0   80%
src/lektor_ng/environment/config.py Config.get_server   8 0 0   100%
src/lektor_ng/environment/config.py Config.is_valid_alternative   3 0 0   100%
src/lektor_ng/environment/config.py Config.list_alternatives   1 0 0   100%
src/lektor_ng/environment/config.py Config.iter_alternatives   7 1 0   86%
src/lektor_ng/environment/config.py Config.get_alternative   3 0 0   100%
src/lektor_ng/environment/config.py Config.get_alternative_url_prefixes   3 0 0   100%
src/lektor_ng/environment/config.py Config.get_alternative_url_suffixes   3 0 0   100%
src/lektor_ng/environment/config.py Config.get_alternative_url_span   6 1 0   83%
src/lektor_ng/environment/config.py Config.primary_alternative_is_rooted   7 2 0   71%
src/lektor_ng/environment/config.py Config.primary_alternative   1 0 0   100%
src/lektor_ng/environment/config.py Config.base_url   4 0 0   100%
src/lektor_ng/environment/config.py Config.base_path   4 0 0   100%
src/lektor_ng/environment/config.py Config.url_style   4 1 0   75%
src/lektor_ng/environment/config.py (no function)   44 0 0   100%
src/lektor_ng/environment/expressions.py Expression.__init__   2 0 0   100%
src/lektor_ng/environment/expressions.py Expression.evaluate   6 0 0   100%
src/lektor_ng/environment/expressions.py Expression.evaluate.result_func   2 0 0   100%
src/lektor_ng/environment/expressions.py FormatExpression.__init__   2 0 0   100%
src/lektor_ng/environment/expressions.py FormatExpression.evaluate   2 0 0   100%
src/lektor_ng/environment/expressions.py (no function)   6 0 0   100%
src/lektor_ng/exception.py LektorException.__init__   4 1 0   75%
src/lektor_ng/exception.py LektorException.to_json   1 1 0   0%
src/lektor_ng/exception.py LektorException.__str__   1 0 0   100%
src/lektor_ng/exception.py LektorException.__repr__   1 1 0   0%
src/lektor_ng/exception.py (no function)   5 0 0   100%
src/lektor_ng/filecontents.py FileContents.__init__   5 0 0   100%
src/lektor_ng/filecontents.py FileContents.sha1   2 2 0   0%
src/lektor_ng/filecontents.py FileContents.md5   2 2 0   0%
src/lektor_ng/filecontents.py FileContents.integrity   2 2 0   0%
src/lektor_ng/filecontents.py FileContents.mimetype   1 1 0   0%
src/lektor_ng/filecontents.py FileContents.bytes   4 4 0   0%
src/lektor_ng/filecontents.py FileContents.as_data_url   3 3 0   0%
src/lektor_ng/filecontents.py FileContents.as_text   2 2 0   0%
src/lektor_ng/filecontents.py FileContents.as_bytes   2 2 0   0%
src/lektor_ng/filecontents.py FileContents.as_base64   1 1 0   0%
src/lektor_ng/filecontents.py FileContents.open   5 5 0   0%
src/lektor_ng/filecontents.py FileContents._ensure_hashes   16 16 0   0%
src/lektor_ng/filecontents.py FileContents.__repr__   1 1 0   0%
src/lektor_ng/filecontents.py (no function)   26 0 0   100%
src/lektor_ng/i18n.py get_translations   1 1 0   0%
src/lektor_ng/i18n.py is_valid_language   1 0 0   100%
src/lektor_ng/i18n.py get_default_lang   8 1 0   88%
src/lektor_ng/i18n.py load_i18n_block   6 0 0   100%
src/lektor_ng/i18n.py get_i18n_block   7 0 0   100%
src/lektor_ng/i18n.py generate_i18n_kvs   7 0 0   100%
src/lektor_ng/i18n.py (no function)   18 0 0   100%
src/lektor_ng/imagetools/__init__.py get_quality   3 0 0   100%
src/lektor_ng/imagetools/__init__.py (no function)   9 0 0   100%
src/lektor_ng/imagetools/_compat.py (no function)   20 7 0   65%
src/lektor_ng/imagetools/exif.py _combine_make   5 0 0   100%
src/lektor_ng/imagetools/exif.py _to_flash_description   4 0 0   100%
src/lektor_ng/imagetools/exif.py _to_string   6 1 0   83%
src/lektor_ng/imagetools/exif.py _to_rational   5 1 0   80%
src/lektor_ng/imagetools/exif.py _to_float   3 0 0   100%
src/lektor_ng/imagetools/exif.py _to_focal_length   1 0 0   100%
src/lektor_ng/imagetools/exif.py _to_degrees   5 0 0   100%
src/lektor_ng/imagetools/exif.py _to_altitude   4 0 0   100%
src/lektor_ng/imagetools/exif.py _default_none   3 0 0   100%
src/lektor_ng/imagetools/exif.py _default_none.wrapper   4 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.__init__   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.__bool__   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.to_dict   5 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo._ifd0   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo._exif_ifd   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo._gpsinfo_ifd   4 1 0   75%
src/lektor_ng/imagetools/exif.py EXIFInfo.artist   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.copyright   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.camera_make   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.camera_model   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.camera   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.lens_make   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.lens_model   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.lens   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.aperture   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.f_num   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.f   2 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.exposure_time   2 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.shutter_speed   2 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.focal_length   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.focal_length_35mm   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.flash_info   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.iso   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.created_at   5 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.longitude   2 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.latitude   2 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.altitude   6 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.location   5 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.documentname   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.description   1 0 0   100%
src/lektor_ng/imagetools/exif.py EXIFInfo.is_rotated   5 0 0   100%
src/lektor_ng/imagetools/exif.py read_exif   6 0 0   100%
src/lektor_ng/imagetools/exif.py (no function)   106 0 3   100%
src/lektor_ng/imagetools/image_info.py TiffOrientation.__init__   1 0 0   100%
src/lektor_ng/imagetools/image_info.py get_image_orientation   8 0 0   100%
src/lektor_ng/imagetools/image_info.py _parse_svg_units_px   4 0 0   100%
src/lektor_ng/imagetools/image_info.py _get_svg_info   9 0 0   100%
src/lektor_ng/imagetools/image_info.py _PIL_image_info   11 0 0   100%
src/lektor_ng/imagetools/image_info.py _save_position   4 0 0   100%
src/lektor_ng/imagetools/image_info.py get_image_info   11 1 0   91%
src/lektor_ng/imagetools/image_info.py (no function)   43 0 3   100%
src/lektor_ng/imagetools/thumbnail.py _FormatInfo.get_save_params   4 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _FormatInfo.get_thumbnail_tag   6 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _FormatInfo.get_ext   3 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _FormatInfo._extra_save_params   1 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _FormatInfo._extra_tag_bits   1 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _PngFormatInfo._extra_save_params   3 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _PngFormatInfo._extra_tag_bits   3 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _JpegFormatInfo._extra_save_params   3 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _JpegFormatInfo._extra_tag_bits   3 0 0   100%
src/lektor_ng/imagetools/thumbnail.py ThumbnailParams.__post_init__   6 0 0   100%
src/lektor_ng/imagetools/thumbnail.py ThumbnailParams.get_save_params   1 0 0   100%
src/lektor_ng/imagetools/thumbnail.py ThumbnailParams.get_ext   1 0 0   100%
src/lektor_ng/imagetools/thumbnail.py ThumbnailParams.get_tag   1 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _scale   3 0 0   100%
src/lektor_ng/imagetools/thumbnail.py compute_dimensions   7 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _compute_cropbox   5 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _get_icc_transform   4 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _convert_to_rgb   9 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _convert_icc_profile_to_srgb   5 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _auto_orient_image   4 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _create_thumbnail   12 1 0   92%
src/lektor_ng/imagetools/thumbnail.py _create_artifact   5 0 0   100%
src/lektor_ng/imagetools/thumbnail.py _get_thumbnail_url_path   4 0 0   100%
src/lektor_ng/imagetools/thumbnail.py make_image_thumbnail   26 0 0   100%
src/lektor_ng/imagetools/thumbnail.py Thumbnail.__str__   1 0 0   100%
src/lektor_ng/imagetools/thumbnail.py (no function)   91 0 4   100%
src/lektor_ng/inifile.py config_parser_load   9 0 0   100%
src/lektor_ng/inifile.py IniFile.__post_init__   2 0 0   100%
src/lektor_ng/inifile.py IniFile.__iter__   8 0 0   100%
src/lektor_ng/inifile.py IniFile.get   8 1 0   88%
src/lektor_ng/inifile.py IniFile.items   2 0 0   100%
src/lektor_ng/inifile.py IniFile.__getitem__   1 0 0   100%
src/lektor_ng/inifile.py IniFile.__setitem__   7 3 0   57%
src/lektor_ng/inifile.py IniFile.sections   1 0 0   100%
src/lektor_ng/inifile.py IniFile.section_as_dict   7 0 0   100%
src/lektor_ng/inifile.py IniFile.get_int   4 0 0   100%
src/lektor_ng/inifile.py IniFile.get_bool   4 0 0   100%
src/lektor_ng/inifile.py IniFile.save   1 1 0   0%
src/lektor_ng/inifile.py (no function)   23 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.__init__   4 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.__bool__   1 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.record   7 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.__render   8 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.meta   1 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.html   1 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.__getitem__   1 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.__str__   1 0 0   100%
src/lektor_ng/markdown/__init__.py Markdown.__html__   1 0 0   100%
src/lektor_ng/markdown/__init__.py __getattr__   6 0 0   100%
src/lektor_ng/markdown/__init__.py __dir__   1 0 0   100%
src/lektor_ng/markdown/__init__.py make_markdown   1 0 0   100%
src/lektor_ng/markdown/__init__.py markdown_to_html   1 0 0   100%
src/lektor_ng/markdown/__init__.py (no function)   38 2 4   95%
src/lektor_ng/markdown/controller.py require_ctx   4 0 0   100%
src/lektor_ng/markdown/controller.py RendererContext.__enter__   3 0 0   100%
src/lektor_ng/markdown/controller.py RendererContext.__exit__   1 0 0   100%
src/lektor_ng/markdown/controller.py get_renderer_context   3 0 0   100%
src/lektor_ng/markdown/controller.py RendererHelper.record   1 0 0   100%
src/lektor_ng/markdown/controller.py RendererHelper.meta   1 0 0   100%
src/lektor_ng/markdown/controller.py RendererHelper.field_options   1 0 0   100%
src/lektor_ng/markdown/controller.py RendererHelper.base_url   1 0 0   100%
src/lektor_ng/markdown/controller.py RendererHelper.resolve_url   12 0 0   100%
src/lektor_ng/markdown/controller.py MarkdownController.__init__   1 0 0   100%
src/lektor_ng/markdown/controller.py MarkdownController.make_parser   0 0 0   100%
src/lektor_ng/markdown/controller.py MarkdownController.parser   1 0 0   100%
src/lektor_ng/markdown/controller.py MarkdownController.get_cache_key   4 0 0   100%
src/lektor_ng/markdown/controller.py MarkdownController.render   6 0 0   100%
src/lektor_ng/markdown/controller.py ControllerCache.__init__   2 0 0   100%
src/lektor_ng/markdown/controller.py ControllerCache.__call__   6 0 0   100%
src/lektor_ng/markdown/controller.py (no function)   43 0 2   100%
src/lektor_ng/markdown/mistune0.py escape   1 0 0   100%
src/lektor_ng/markdown/mistune0.py ImprovedRenderer.record   1 0 0   100%
src/lektor_ng/markdown/mistune0.py ImprovedRenderer.meta   1 0 0   100%
src/lektor_ng/markdown/mistune0.py ImprovedRenderer.link   4 0 0   100%
src/lektor_ng/markdown/mistune0.py ImprovedRenderer.image   4 0 0   100%
src/lektor_ng/markdown/mistune0.py MarkdownConfig.__init__   3 0 0   100%
src/lektor_ng/markdown/mistune0.py MarkdownConfig.make_renderer   3 0 0   100%
src/lektor_ng/markdown/mistune0.py MarkdownController0.make_parser   6 0 0   100%
src/lektor_ng/markdown/mistune0.py (no function)   22 0 0   100%
src/lektor_ng/markdown/mistune2.py escape   1 1 0   0%
src/lektor_ng/markdown/mistune2.py ImprovedRenderer.link   2 2 0   0%
src/lektor_ng/markdown/mistune2.py ImprovedRenderer.image   2 2 0   0%
src/lektor_ng/markdown/mistune2.py MarkdownConfig.__init__   4 4 0   0%
src/lektor_ng/markdown/mistune2.py MarkdownConfig.make_renderer   3 3 0   0%
src/lektor_ng/markdown/mistune2.py MarkdownController2.make_parser   10 10 0   0%
src/lektor_ng/markdown/mistune2.py MarkdownController2.resolve_plugin   14 14 0   0%
src/lektor_ng/markdown/mistune2.py (no function)   25 25 0   0%
src/lektor_ng/metaformat.py _line_is_dashes   2 0 0   100%
src/lektor_ng/metaformat.py _process_buf   7 0 0   100%
src/lektor_ng/metaformat.py tokenize   34 1 0   97%
src/lektor_ng/metaformat.py tokenize._flush_item   6 1 0   83%
src/lektor_ng/metaformat.py serialize   12 5 0   58%
src/lektor_ng/metaformat.py serialize._produce   6 2 0   67%
src/lektor_ng/metaformat.py (no function)   4 0 0   100%
src/lektor_ng/packages.py _get_package_version_from_project   5 5 0   0%
src/lektor_ng/packages.py add_package_to_project   25 25 0   0%
src/lektor_ng/packages.py remove_package_from_project   8 8 0   0%
src/lektor_ng/packages.py VirtualEnv.__init__   1 0 0   100%
src/lektor_ng/packages.py VirtualEnv.create   2 0 0   100%
src/lektor_ng/packages.py VirtualEnv.addsitedir   2 0 0   100%
src/lektor_ng/packages.py VirtualEnv.run_pip_install   4 0 0   100%
src/lektor_ng/packages.py VirtualEnv.site_packages   1 0 0   100%
src/lektor_ng/packages.py VirtualEnv.executable   3 0 0   100%
src/lektor_ng/packages.py VirtualEnv._get_path   2 0 0   100%
src/lektor_ng/packages.py Requirements.__init__   1 0 0   100%
src/lektor_ng/packages.py Requirements.__len__   1 0 0   100%
src/lektor_ng/packages.py Requirements.__iter__   1 0 0   100%
src/lektor_ng/packages.py Requirements.add_requirement   1 0 0   100%
src/lektor_ng/packages.py Requirements.add_local_requirement   2 0 0   100%
src/lektor_ng/packages.py Requirements.add_local_requirements_from   6 0 0   100%
src/lektor_ng/packages.py Requirements.hash   5 0 0   100%
src/lektor_ng/packages.py update_cache   18 0 0   100%
src/lektor_ng/packages.py load_packages   7 0 0   100%
src/lektor_ng/packages.py wipe_package_cache   3 0 0   100%
src/lektor_ng/packages.py (no function)   44 1 3   98%
src/lektor_ng/pagination.py Pagination.__init__   5 0 0   100%
src/lektor_ng/pagination.py Pagination.items   1 0 0   100%
src/lektor_ng/pagination.py Pagination.pages   2 0 0   100%
src/lektor_ng/pagination.py Pagination.prev_num   3 1 0   67%
src/lektor_ng/pagination.py Pagination.has_prev   1 0 0   100%
src/lektor_ng/pagination.py Pagination.prev   3 0 0   100%
src/lektor_ng/pagination.py Pagination.has_next   1 0 0   100%
src/lektor_ng/pagination.py Pagination.next_num   3 0 0   100%
src/lektor_ng/pagination.py Pagination.next   3 0 0   100%
src/lektor_ng/pagination.py Pagination.for_page   3 0 0   100%
src/lektor_ng/pagination.py Pagination.iter_pages   9 0 0   100%
src/lektor_ng/pagination.py (no function)   20 0 0   100%
src/lektor_ng/pluginsystem.py get_plugin   10 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.__init__   2 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.name   4 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.description   3 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.env   4 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.version   3 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.path   6 1 1   83%
src/lektor_ng/pluginsystem.py Plugin.import_name   1 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.get_lektor_config   5 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.config_filename   1 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.get_config   11 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.emit   1 0 0   100%
src/lektor_ng/pluginsystem.py Plugin.to_json   1 0 0   100%
src/lektor_ng/pluginsystem.py _check_dist_name   3 0 0   100%
src/lektor_ng/pluginsystem.py initialize_plugins   7 0 0   100%
src/lektor_ng/pluginsystem.py PluginController.__init__   2 0 0   100%
src/lektor_ng/pluginsystem.py PluginController.env   4 0 0   100%
src/lektor_ng/pluginsystem.py PluginController.instanciate_plugin   7 0 0   100%
src/lektor_ng/pluginsystem.py PluginController.iter_plugins   1 0 0   100%
src/lektor_ng/pluginsystem.py PluginController.emit   15 0 0   100%
src/lektor_ng/pluginsystem.py (no function)   44 0 0   100%
src/lektor_ng/project.py Project.__init__   5 0 0   100%
src/lektor_ng/project.py Project.open_config   3 1 0   67%
src/lektor_ng/project.py Project.from_file   10 1 0   90%
src/lektor_ng/project.py Project.from_path   12 4 0   67%
src/lektor_ng/project.py Project.discover   12 0 0   100%
src/lektor_ng/project.py Project.project_path   1 0 0   100%
src/lektor_ng/project.py Project.get_output_path   6 0 0   100%
src/lektor_ng/project.py Project.get_package_cache_path   8 0 0   100%
src/lektor_ng/project.py Project.content_path_from_filename   12 12 0   0%
src/lektor_ng/project.py Project.make_env   1 0 0   100%
src/lektor_ng/project.py Project.excluded_assets   2 0 0   100%
src/lektor_ng/project.py Project.included_assets   2 0 0   100%
src/lektor_ng/project.py Project.to_json   1 0 0   100%
src/lektor_ng/project.py (no function)   33 0 0   100%
src/lektor_ng/publisher.py _parse_query   1 0 0   100%
src/lektor_ng/publisher.py _ascii_host   1 0 0   100%
src/lektor_ng/publisher.py _ssh_key_file   14 0 0   100%
src/lektor_ng/publisher.py _ssh_command   10 0 0   100%
src/lektor_ng/publisher.py Command.__init__   26 0 0   100%
src/lektor_ng/publisher.py Command._communicate   13 0 0   100%
src/lektor_ng/publisher.py Command.close   7 0 0   100%
src/lektor_ng/publisher.py Command.wait   3 0 0   100%
src/lektor_ng/publisher.py Command.result   1 0 0   100%
src/lektor_ng/publisher.py Command.returncode   1 0 0   100%
src/lektor_ng/publisher.py Command.__exit__   1 0 0   100%
src/lektor_ng/publisher.py Command.__iter__   5 0 0   100%
src/lektor_ng/publisher.py Command.output   1 0 0   100%
src/lektor_ng/publisher.py Publisher.__init__   2 0 0   100%
src/lektor_ng/publisher.py Publisher.fail   1 0 0   100%
src/lektor_ng/publisher.py Publisher.publish   1 1 0   0%
src/lektor_ng/publisher.py RsyncPublisher.get_command   25 1 0   96%
src/lektor_ng/publisher.py RsyncPublisher.publish   2 0 0   100%
src/lektor_ng/publisher.py FtpConnection.__init__   10 10 0   0%
src/lektor_ng/publisher.py FtpConnection.make_connection   2 2 0   0%
src/lektor_ng/publisher.py FtpConnection.drain_log   7 7 0   0%
src/lektor_ng/publisher.py FtpConnection.connect   33 33 0   0%
src/lektor_ng/publisher.py FtpConnection.mkdir   15 15 0   0%
src/lektor_ng/publisher.py FtpConnection.append   9 9 0   0%
src/lektor_ng/publisher.py FtpConnection.get_file   16 16 0   0%
src/lektor_ng/publisher.py FtpConnection.upload_file   14 14 0   0%
src/lektor_ng/publisher.py FtpConnection.rename_file   12 12 0   0%
src/lektor_ng/publisher.py FtpConnection.delete_file   6 6 0   0%
src/lektor_ng/publisher.py FtpConnection.delete_folder   7 7 0   0%
src/lektor_ng/publisher.py FtpTlsConnection.make_connection   2 2 0   0%
src/lektor_ng/publisher.py FtpTlsConnection.connect   4 4 0   0%
src/lektor_ng/publisher.py FtpPublisher.read_existing_artifacts   15 15 0   0%
src/lektor_ng/publisher.py FtpPublisher.iter_artifacts   21 21 0   0%
src/lektor_ng/publisher.py FtpPublisher.get_temp_filename   2 2 0   0%
src/lektor_ng/publisher.py FtpPublisher.upload_artifact   6 6 0   0%
src/lektor_ng/publisher.py FtpPublisher.consolidate_listing   19 19 0   0%
src/lektor_ng/publisher.py FtpPublisher.publish   21 21 0   0%
src/lektor_ng/publisher.py GitRepo.__init__   10 0 0   100%
src/lektor_ng/publisher.py GitRepo.__exit__   1 0 0   100%
src/lektor_ng/publisher.py GitRepo._popen   3 0 0   100%
src/lektor_ng/publisher.py GitRepo.popen   1 0 0   100%
src/lektor_ng/publisher.py GitRepo.run   1 0 0   100%
src/lektor_ng/publisher.py GitRepo.set_ssh_credentials   4 0 0   100%
src/lektor_ng/publisher.py GitRepo.set_https_credentials   8 0 0   100%
src/lektor_ng/publisher.py GitRepo.add_to_index   2 0 0   100%
src/lektor_ng/publisher.py GitRepo.publish_ghpages   25 1 0   96%
src/lektor_ng/publisher.py _prefix_output   1 0 0   100%
src/lektor_ng/publisher.py GithubPagesPublisher.publish   10 0 0   100%
src/lektor_ng/publisher.py GithubPagesPublisher._parse_url   26 0 0   100%
src/lektor_ng/publisher.py GithubPagesPublisher._parse_credentials   6 0 0   100%
src/lektor_ng/publisher.py publish   6 0 0   100%
src/lektor_ng/publisher.py _CompatURLStr.__getattr__   6 0 0   100%
src/lektor_ng/publisher.py (no function)   100 0 4   100%
src/lektor_ng/quickstart.py Generator.__init__   6 0 0   100%
src/lektor_ng/quickstart.py Generator.abort   2 0 0   100%
src/lektor_ng/quickstart.py Generator.prompt   9 1 0   89%
src/lektor_ng/quickstart.py Generator.title   3 3 0   0%
src/lektor_ng/quickstart.py Generator.warn   1 1 0   0%
src/lektor_ng/quickstart.py Generator.text   1 1 0   0%
src/lektor_ng/quickstart.py Generator.confirm   2 0 0   100%
src/lektor_ng/quickstart.py Generator.make_target_directory   17 3 0   82%
src/lektor_ng/quickstart.py Generator.expand_filename   2 0 0   100%
src/lektor_ng/quickstart.py Generator.expand_filename._repl   1 0 0   100%
src/lektor_ng/quickstart.py Generator.run   15 0 0   100%
src/lektor_ng/quickstart.py get_default_author   9 0 0   100%
src/lektor_ng/quickstart.py get_default_author_email   9 0 0   100%
src/lektor_ng/quickstart.py project_quickstart   17 17 0   0%
src/lektor_ng/quickstart.py plugin_quickstart   22 4 0   82%
src/lektor_ng/quickstart.py theme_quickstart   44 8 0   82%
src/lektor_ng/quickstart.py (no function)   34 0 0   100%
src/lektor_ng/reporter.py describe_build_func   10 0 0   100%
src/lektor_ng/reporter.py Reporter.__init__   5 0 0   100%
src/lektor_ng/reporter.py Reporter.push   1 0 0   100%
src/lektor_ng/reporter.py Reporter.pop   1 0 0   100%
src/lektor_ng/reporter.py Reporter.__enter__   2 0 0   100%
src/lektor_ng/reporter.py Reporter.__exit__   1 0 0   100%
src/lektor_ng/reporter.py Reporter.builder   3 3 0   0%
src/lektor_ng/reporter.py Reporter.current_artifact   3 0 0   100%
src/lektor_ng/reporter.py Reporter.current_source   3 1 0   67%
src/lektor_ng/reporter.py Reporter.show_build_info   1 0 0   100%
src/lektor_ng/reporter.py Reporter.show_tracebacks   1 0 0   100%
src/lektor_ng/reporter.py Reporter.show_current_artifacts   1 0 0   100%
src/lektor_ng/reporter.py Reporter.show_artifact_internals   1 0 0   100%
src/lektor_ng/reporter.py Reporter.show_source_internals   1 0 0   100%
src/lektor_ng/reporter.py Reporter.show_debug_info   1 0 0   100%
src/lektor_ng/reporter.py Reporter.build   7 0 0   100%
src/lektor_ng/reporter.py Reporter.on_build_change   4 4 0   0%
src/lektor_ng/reporter.py Reporter.start_build   1 0 0   100%
src/lektor_ng/reporter.py Reporter.finish_build   1 0 0   100%
src/lektor_ng/reporter.py Reporter.build_artifact   9 0 0   100%
src/lektor_ng/reporter.py Reporter.report_artifact_built   4 1 0   75%
src/lektor_ng/reporter.py Reporter.start_artifact_build   1 0 0   100%
src/lektor_ng/reporter.py Reporter.finish_artifact_build   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_failure   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_build_all_failure   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_dependencies   2 0 0   100%
src/lektor_ng/reporter.py Reporter.report_dirty_flag   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_write_source_info   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_prune_source_info   1 1 0   0%
src/lektor_ng/reporter.py Reporter.report_sub_artifact   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_build_func   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_debug_info   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_generic   1 0 0   100%
src/lektor_ng/reporter.py Reporter.report_pruned_artifact   1 0 0   100%
src/lektor_ng/reporter.py Reporter.process_source   7 0 0   100%
src/lektor_ng/reporter.py Reporter.enter_source   1 0 0   100%
src/lektor_ng/reporter.py Reporter.leave_source   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.__init__   2 0 0   100%
src/lektor_ng/reporter.py BufferReporter.clear   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.get_recorded_dependencies   5 0 0   100%
src/lektor_ng/reporter.py BufferReporter.get_major_events   5 0 0   100%
src/lektor_ng/reporter.py BufferReporter.get_failures   5 0 0   100%
src/lektor_ng/reporter.py BufferReporter._emit   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.start_build   1 1 0   0%
src/lektor_ng/reporter.py BufferReporter.finish_build   1 1 0   0%
src/lektor_ng/reporter.py BufferReporter.start_artifact_build   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.finish_artifact_build   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_build_all_failure   1 1 0   0%
src/lektor_ng/reporter.py BufferReporter.report_failure   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_dirty_flag   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_write_source_info   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_prune_source_info   1 1 0   0%
src/lektor_ng/reporter.py BufferReporter.report_build_func   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_sub_artifact   1 1 0   0%
src/lektor_ng/reporter.py BufferReporter.report_debug_info   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_generic   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.enter_source   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.leave_source   1 0 0   100%
src/lektor_ng/reporter.py BufferReporter.report_pruned_artifact   1 1 0   0%
src/lektor_ng/reporter.py CliReporter.__init__   2 0 0   100%
src/lektor_ng/reporter.py CliReporter.indent   1 0 0   100%
src/lektor_ng/reporter.py CliReporter.outdent   1 0 0   100%
src/lektor_ng/reporter.py CliReporter._write_line   1 0 0   100%
src/lektor_ng/reporter.py CliReporter._write_kv_info   1 1 0   0%
src/lektor_ng/reporter.py CliReporter.start_build   5 2 0   60%
src/lektor_ng/reporter.py CliReporter.finish_build   1 0 0   100%
src/lektor_ng/reporter.py CliReporter.start_artifact_build   8 1 0   88%
src/lektor_ng/reporter.py CliReporter.finish_artifact_build   1 0 0   100%
src/lektor_ng/reporter.py CliReporter.report_build_all_failure   2 2 0   0%
src/lektor_ng/reporter.py CliReporter.report_failure   14 9 0   36%
src/lektor_ng/reporter.py CliReporter.report_dirty_flag   2 1 0   50%
src/lektor_ng/reporter.py CliReporter.report_write_source_info   2 1 0   50%
src/lektor_ng/reporter.py CliReporter.report_prune_source_info   2 2 0   0%
src/lektor_ng/reporter.py CliReporter.report_build_func   2 1 0   50%
src/lektor_ng/reporter.py CliReporter.report_sub_artifact   2 1 0   50%
src/lektor_ng/reporter.py CliReporter.report_debug_info   2 1 0   50%
src/lektor_ng/reporter.py CliReporter.report_generic   1 1 0   0%
src/lektor_ng/reporter.py CliReporter.enter_source   5 3 0   40%
src/lektor_ng/reporter.py CliReporter.leave_source   2 1 0   50%
src/lektor_ng/reporter.py CliReporter.report_pruned_artifact   1 0 0   100%
src/lektor_ng/reporter.py reporter   4 0 0   100%
src/lektor_ng/reporter.py (no function)   112 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.__init__   1 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.alt   1 1 0   0%
src/lektor_ng/sourceobj.py SourceObject.source_filename   2 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.is_visible   1 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.is_undiscoverable   1 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.iter_source_filenames   1 1 0   0%
src/lektor_ng/sourceobj.py SourceObject.url_path   1 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.path   1 1 0   0%
src/lektor_ng/sourceobj.py SourceObject.pad   4 1 0   75%
src/lektor_ng/sourceobj.py SourceObject.resolve_url_path   3 1 0   67%
src/lektor_ng/sourceobj.py SourceObject.is_child_of   5 1 0   80%
src/lektor_ng/sourceobj.py SourceObject.url_to   25 0 0   100%
src/lektor_ng/sourceobj.py SourceObject._resolve_url   21 0 0   100%
src/lektor_ng/sourceobj.py SourceObject.url_content_path   1 0 0   100%
src/lektor_ng/sourceobj.py _join_url_path   7 0 0   100%
src/lektor_ng/sourceobj.py DBSourceObject.path   1 1 0   0%
src/lektor_ng/sourceobj.py DBSourceObject.__eq__   5 0 0   100%
src/lektor_ng/sourceobj.py DBSourceObject.__hash__   1 0 0   100%
src/lektor_ng/sourceobj.py VirtualSourceObject.__init__   2 0 0   100%
src/lektor_ng/sourceobj.py VirtualSourceObject.path   1 1 0   0%
src/lektor_ng/sourceobj.py VirtualSourceObject.get_mtime   1 1 0   0%
src/lektor_ng/sourceobj.py VirtualSourceObject.get_checksum   1 1 0   0%
src/lektor_ng/sourceobj.py VirtualSourceObject.parent   1 1 0   0%
src/lektor_ng/sourceobj.py VirtualSourceObject.alt   1 0 0   100%
src/lektor_ng/sourceobj.py VirtualSourceObject.iter_source_filenames   1 1 0   0%
src/lektor_ng/sourceobj.py (no function)   53 0 2   100%
src/lektor_ng/sourcesearch.py _iter_parents   5 0 0   100%
src/lektor_ng/sourcesearch.py _find_info   4 0 0   100%
src/lektor_ng/sourcesearch.py _id_from_path   4 2 0   50%
src/lektor_ng/sourcesearch.py _mapping_from_cursor   4 0 0   100%
src/lektor_ng/sourcesearch.py _find_best_info   5 1 0   80%
src/lektor_ng/sourcesearch.py _build_parent_path   9 1 0   89%
src/lektor_ng/sourcesearch.py _placeholders   1 0 0   100%
src/lektor_ng/sourcesearch.py _process_search_results   19 2 0   89%
src/lektor_ng/sourcesearch.py find_files   19 2 0   89%
src/lektor_ng/sourcesearch.py (no function)   12 0 0   100%
src/lektor_ng/types/__init__.py (no function)   25 0 0   100%
src/lektor_ng/types/base.py get_undefined_info   6 6 0   0%
src/lektor_ng/types/base.py RawValue.__init__   4 0 0   100%
src/lektor_ng/types/base.py RawValue._get_hint   3 1 0   67%
src/lektor_ng/types/base.py RawValue.bad_value   1 0 0   100%
src/lektor_ng/types/base.py RawValue.missing_value   1 0 0   100%
src/lektor_ng/types/base.py _NameDescriptor.__get__   3 0 0   100%
src/lektor_ng/types/base.py Type.__init__   2 0 0   100%
src/lektor_ng/types/base.py Type.size   4 1 0   75%
src/lektor_ng/types/base.py Type.width   1 0 0   100%
src/lektor_ng/types/base.py Type.to_json   1 0 0   100%
src/lektor_ng/types/base.py Type.value_from_raw   1 1 0   0%
src/lektor_ng/types/base.py Type.value_from_raw_with_default   4 0 0   100%
src/lektor_ng/types/base.py Type.__repr__   1 1 0   0%
src/lektor_ng/types/base.py (no function)   25 0 0   100%
src/lektor_ng/types/fake.py FakeType.value_from_raw   1 1 0   0%
src/lektor_ng/types/fake.py FakeType.to_json   3 3 0   0%
src/lektor_ng/types/fake.py HeadingType.to_json   3 3 0   0%
src/lektor_ng/types/fake.py (no function)   15 0 0   100%
src/lektor_ng/types/flow.py discover_relevant_flowblock_models   21 17 0   19%
src/lektor_ng/types/flow.py FlowBlock.__init__   4 0 0   100%
src/lektor_ng/types/flow.py FlowBlock.flowblockmodel   1 0 0   100%
src/lektor_ng/types/flow.py FlowBlock.__contains__   1 1 0   0%
src/lektor_ng/types/flow.py FlowBlock.__getitem__   11 1 0   91%
src/lektor_ng/types/flow.py FlowBlock.__html__   10 3 0   70%
src/lektor_ng/types/flow.py FlowBlock.__repr__   1 1 0   0%
src/lektor_ng/types/flow.py Flow.__init__   2 0 0   100%
src/lektor_ng/types/flow.py Flow.__html__   1 0 0   100%
src/lektor_ng/types/flow.py Flow.__bool__   1 1 0   0%
src/lektor_ng/types/flow.py Flow.__repr__   1 1 0   0%
src/lektor_ng/types/flow.py FlowDescriptor.__init__   2 0 0   100%
src/lektor_ng/types/flow.py FlowDescriptor.__get__   3 1 0   67%
src/lektor_ng/types/flow.py process_flowblock_data   20 1 0   95%
src/lektor_ng/types/flow.py FlowType.__init__   2 0 0   100%
src/lektor_ng/types/flow.py FlowType.value_from_raw   20 2 0   90%
src/lektor_ng/types/flow.py FlowType.to_json   7 0 0   100%
src/lektor_ng/types/flow.py (no function)   35 0 0   100%
src/lektor_ng/types/formats.py MarkdownDescriptor.__init__   2 0 0   100%
src/lektor_ng/types/formats.py MarkdownDescriptor.__get__   3 1 0   67%
src/lektor_ng/types/formats.py MarkdownType.__init__   2 0 0   100%
src/lektor_ng/types/formats.py MarkdownType.value_from_raw   1 0 0   100%
src/lektor_ng/types/formats.py _check_option   4 0 0   100%
src/lektor_ng/types/formats.py (no function)   11 0 0   100%
src/lektor_ng/types/multi.py _reflow_and_split_labels   10 10 0   0%
src/lektor_ng/types/multi.py _parse_choices   21 21 0   0%
src/lektor_ng/types/multi.py ChoiceSource.__init__   14 14 0   0%
src/lektor_ng/types/multi.py ChoiceSource.has_choices   1 1 0   0%
src/lektor_ng/types/multi.py ChoiceSource.iter_choices   20 20 0   0%
src/lektor_ng/types/multi.py MultiType.__init__   2 2 0   0%
src/lektor_ng/types/multi.py MultiType.get_labels   1 1 0   0%
src/lektor_ng/types/multi.py MultiType.to_json   4 4 0   0%
src/lektor_ng/types/multi.py SelectType.value_from_raw   3 3 0   0%
src/lektor_ng/types/multi.py CheckboxesType.value_from_raw   4 4 0   0%
src/lektor_ng/types/multi.py (no function)   22 0 0   100%
src/lektor_ng/types/primitives.py SingleInputType.to_json   3 0 0   100%
src/lektor_ng/types/primitives.py StringType.value_from_raw   6 0 0   100%
src/lektor_ng/types/primitives.py StringsType.value_from_raw   1 0 0   100%
src/lektor_ng/types/primitives.py TextType.value_from_raw   3 0 0   100%
src/lektor_ng/types/primitives.py HtmlType.value_from_raw   3 3 0   0%
src/lektor_ng/types/primitives.py IntegerType.value_from_raw   9 0 0   100%
src/lektor_ng/types/primitives.py FloatType.value_from_raw   6 0 0   100%
src/lektor_ng/types/primitives.py BooleanType.to_json   3 0 0   100%
src/lektor_ng/types/primitives.py BooleanType.value_from_raw   6 0 0   100%
src/lektor_ng/types/primitives.py DateType.value_from_raw   6 2 0   67%
src/lektor_ng/types/primitives.py DateTimeType.value_from_raw   31 3 0   90%
src/lektor_ng/types/primitives.py (no function)   38 0 0   100%
src/lektor_ng/types/special.py SortKeyType.value_from_raw   6 6 0   0%
src/lektor_ng/types/special.py SlugType.value_from_raw   3 0 0   100%
src/lektor_ng/types/special.py UrlType.value_from_raw   3 1 0   67%
src/lektor_ng/types/special.py (no function)   11 0 0   100%
src/lektor_ng/utils.py split_virtual_path   3 0 0   100%
src/lektor_ng/utils.py _norm_join   1 0 0   100%
src/lektor_ng/utils.py join_path   14 0 0   100%
src/lektor_ng/utils.py cleanup_path   1 0 0   100%
src/lektor_ng/utils.py cleanup_url_path   6 0 0   100%
src/lektor_ng/utils.py parse_path   4 0 0   100%
src/lektor_ng/utils.py is_path_child_of   13 1 0   92%
src/lektor_ng/utils.py untrusted_to_os_path   5 1 0   80%
src/lektor_ng/utils.py is_path   1 1 0   0%
src/lektor_ng/utils.py magic_split_ext   15 4 0   73%
src/lektor_ng/utils.py magic_split_ext.bad_ext   5 0 0   100%
src/lektor_ng/utils.py iter_dotted_path_prefixes   5 1 0   80%
src/lektor_ng/utils.py resolve_dotted_value   16 9 0   44%
src/lektor_ng/utils.py decode_flat_data   15 1 0   93%
src/lektor_ng/utils.py decode_flat_data._split_key   5 1 0   80%
src/lektor_ng/utils.py decode_flat_data._enter_container   3 1 0   67%
src/lektor_ng/utils.py decode_flat_data._convert   14 4 0   71%
src/lektor_ng/utils.py merge   12 4 0   67%
src/lektor_ng/utils.py slugify   6 0 0   100%
src/lektor_ng/utils.py secure_filename   8 2 0   75%
src/lektor_ng/utils.py increment_filename   11 11 0   0%
src/lektor_ng/utils.py locate_executable   21 3 0   86%
src/lektor_ng/utils.py JSONEncoder.default   9 9 0   0%
src/lektor_ng/utils.py htmlsafe_json_dump   5 5 0   0%
src/lektor_ng/utils.py tojson_filter   1 1 0   0%
src/lektor_ng/utils.py Url.__new__   2 0 0   100%
src/lektor_ng/utils.py Url.from_string   4 0 0   100%
src/lektor_ng/utils.py Url.__str__   1 0 0   100%
src/lektor_ng/utils.py Url.ascii_url   1 0 0   100%
src/lektor_ng/utils.py Url.ascii_host   1 0 0   100%
src/lektor_ng/utils.py Url.host   1 0 0   100%
src/lektor_ng/utils.py Url.anchor   1 0 0   100%
src/lektor_ng/utils.py is_unsafe_to_delete   5 0 0   100%
src/lektor_ng/utils.py prune_file_and_folder   21 10 0   52%
src/lektor_ng/utils.py sort_normalize_string   1 0 0   100%
src/lektor_ng/utils.py get_dependent_url   5 1 0   80%
src/lektor_ng/utils.py atomic_open   0 0 1   100%
src/lektor_ng/utils.py atomic_open   0 0 1   100%
src/lektor_ng/utils.py atomic_open   0 0 1   100%
src/lektor_ng/utils.py atomic_open   15 2 0   87%
src/lektor_ng/utils.py create_temp   13 4 0   69%
src/lektor_ng/utils.py portable_popen   9 2 0   78%
src/lektor_ng/utils.py is_valid_id   3 0 0   100%
src/lektor_ng/utils.py secure_url   5 0 0   100%
src/lektor_ng/utils.py bool_from_string   9 1 0   89%
src/lektor_ng/utils.py make_relative_url   10 0 0   100%
src/lektor_ng/utils.py get_relative_path   20 1 0   95%
src/lektor_ng/utils.py deg_to_dms   5 5 0   0%
src/lektor_ng/utils.py format_lat_long   7 7 0   0%
src/lektor_ng/utils.py format_lat_long._format   2 2 0   0%
src/lektor_ng/utils.py split_camel_case   1 0 0   100%
src/lektor_ng/utils.py get_cache_dir   10 7 0   30%
src/lektor_ng/utils.py URLBuilder.__init__   1 0 0   100%
src/lektor_ng/utils.py URLBuilder.append   5 0 0   100%
src/lektor_ng/utils.py URLBuilder.get_url   10 0 0   100%
src/lektor_ng/utils.py build_url   4 0 0   100%
src/lektor_ng/utils.py comma_delimited   4 0 0   100%
src/lektor_ng/utils.py process_extra_flags   9 0 0   100%
src/lektor_ng/utils.py unique_everseen   5 0 0   100%
src/lektor_ng/utils.py RecursionCheck.__enter__   2 0 0   100%
src/lektor_ng/utils.py RecursionCheck.__exit__   1 0 0   100%
src/lektor_ng/utils.py DeprecatedWarning.__init__   3 0 0   100%
src/lektor_ng/utils.py DeprecatedWarning.__str__   6 0 0   100%
src/lektor_ng/utils.py _Deprecate.__call__   7 0 0   100%
src/lektor_ng/utils.py _Deprecate.__call__.wrapper   4 0 0   100%
src/lektor_ng/utils.py deprecated   0 0 1   100%
src/lektor_ng/utils.py deprecated   0 0 1   100%
src/lektor_ng/utils.py deprecated   0 0 1   100%
src/lektor_ng/utils.py deprecated   11 1 0   91%
src/lektor_ng/utils.py (no function)   122 3 54   98%
src/lektor_ng/version.py get_version   3 1 0   67%
src/lektor_ng/version.py (no function)   5 0 0   100%
src/lektor_ng/videotools.py _imround   1 0 0   100%
src/lektor_ng/videotools.py Dimensions.__new__   5 1 0   80%
src/lektor_ng/videotools.py Dimensions.aspect_ratio   1 0 0   100%
src/lektor_ng/videotools.py Dimensions._infer_dimensions   7 1 0   86%
src/lektor_ng/videotools.py Dimensions.contains   1 0 0   100%
src/lektor_ng/videotools.py Dimensions.fit_within   8 1 0   88%
src/lektor_ng/videotools.py Dimensions.cover   8 0 0   100%
src/lektor_ng/videotools.py Dimensions.stretch   6 0 0   100%
src/lektor_ng/videotools.py Dimensions.resize   7 3 0   57%
src/lektor_ng/videotools.py get_timecode   10 0 0   100%
src/lektor_ng/videotools.py get_ffmpeg_quality   6 0 0   100%
src/lektor_ng/videotools.py get_suffix   10 10 0   0%
src/lektor_ng/videotools.py get_video_info   20 20 0   0%
src/lektor_ng/videotools.py make_video_thumbnail   26 26 0   0%
src/lektor_ng/videotools.py make_video_thumbnail.build_thumbnail_artifact   10 10 0   0%
src/lektor_ng/videotools.py (no function)   28 0 0   100%
src/lektor_ng/watcher.py watch_project   4 0 0   100%
src/lektor_ng/watcher.py WatchFilter.__init__   2 0 0   100%
src/lektor_ng/watcher.py WatchFilter.__call__   3 0 0   100%
src/lektor_ng/watcher.py (no function)   10 0 3   100%
Total     8641 1407 115   84%

No items found using the specified filter.