| src/prosemark/__init__.py |
(no function) |
3 |
0 |
6 |
0 |
0 |
100% |
| src/prosemark/adapters/__init__.py |
(no function) |
11 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
BinderRepoFs.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
BinderRepoFs.load |
17 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
BinderRepoFs.save |
10 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
BinderRepoFs._extract_managed_block |
9 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
BinderRepoFs._update_managed_block |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
BinderRepoFs._create_new_content |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/binder_repo_fs.py |
(no function) |
15 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/binder_scaffold.py |
generate_binder_scaffold |
28 |
0 |
3 |
8 |
0 |
100% |
| src/prosemark/adapters/binder_scaffold.py |
_generate_scaffold_content |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/binder_scaffold.py |
(no function) |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/clock_system.py |
ClockSystem.now_iso |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/clock_system.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/console_pretty.py |
ConsolePretty.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/console_pretty.py |
ConsolePretty.print |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/console_pretty.py |
ConsolePretty.print_tree |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/console_pretty.py |
ConsolePretty._print_tree_item |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/console_pretty.py |
ConsolePretty._detect_color_support |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/adapters/console_pretty.py |
(no function) |
10 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/daily_repo_fs.py |
DailyRepoFs.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/daily_repo_fs.py |
DailyRepoFs.write_freeform |
18 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/daily_repo_fs.py |
(no function) |
10 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
EditorLauncherSystem.open |
15 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
EditorLauncherSystem._find_editor |
11 |
0 |
0 |
10 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
EditorLauncherSystem._command_exists |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
EditorLauncherSystem._build_command |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
EditorLauncherSystem._supports_cursor_hint |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
EditorLauncherSystem._add_cursor_hint |
11 |
0 |
0 |
10 |
0 |
100% |
| src/prosemark/adapters/editor_launcher_system.py |
(no function) |
18 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_clock.py |
FakeClock.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_clock.py |
FakeClock.now_iso |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_clock.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_config.py |
FakeConfigPort.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_config.py |
FakeConfigPort.create_default_config |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_config.py |
FakeConfigPort.config_exists |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_config.py |
FakeConfigPort.get_default_config_values |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_config.py |
(no function) |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.print |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.print_tree |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.get_output |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.last_output |
0 |
0 |
4 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.output_contains |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.get_tree_calls |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
FakeConsolePort.tree_call_count |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_console.py |
(no function) |
11 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
FakeIdGenerator.__init__ |
2 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
FakeIdGenerator.new |
4 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
FakeIdGenerator.reset |
0 |
0 |
6 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
FakeIdGenerator.remaining_count |
0 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
FakeIdGenerator.generated_count |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
FakeIdGenerator.peek_next |
0 |
0 |
14 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_id_generator.py |
(no function) |
6 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.debug |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.info |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.warning |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.error |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.exception |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.get_logs |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.get_logs_by_level |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.has_logged |
10 |
0 |
2 |
8 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.get_logged_messages |
10 |
0 |
2 |
6 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.clear_logs |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.last_log |
0 |
0 |
4 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.log_count |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.log_count_by_level |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.info_messages |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.error_messages |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.debug_messages |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.exception_messages |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
FakeLogger.clear |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_logger.py |
(no function) |
25 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.__init__ |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.create |
4 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.read_frontmatter |
5 |
0 |
3 |
2 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.write_frontmatter |
0 |
0 |
17 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.open_in_editor |
6 |
0 |
6 |
2 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.delete |
3 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.node_exists |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.get_editor_calls |
0 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.clear_editor_calls |
0 |
0 |
6 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.get_delete_calls |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.delete_called_with |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.clear_delete_calls |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.get_node_count |
0 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.set_open_in_editor_exception |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.open_in_editor_calls |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.open_in_editor_calls |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.set_existing_files |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.set_existing_notes_files |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.get_existing_files |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.get_existing_notes_files |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.file_exists |
7 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
FakeNodeRepo.set_frontmatter_mismatch |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_node_repo.py |
(no function) |
24 |
0 |
4 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_storage.py |
FakeBinderRepo.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_storage.py |
FakeBinderRepo.load |
1 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_storage.py |
FakeBinderRepo.save |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_storage.py |
FakeBinderRepo.set_binder |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/fake_storage.py |
(no function) |
8 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec.parse |
10 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec.generate |
8 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec.update_frontmatter |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec._validate_frontmatter_format |
6 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec._check_misplaced_frontmatter |
10 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec._parse_yaml_content |
11 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
FrontmatterCodec._convert_datetimes_to_strings |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/frontmatter_codec.py |
(no function) |
18 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/id_generator.py |
SimpleIdGenerator.new |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/id_generator.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/id_generator_uuid7.py |
IdGeneratorUuid7.new |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/id_generator_uuid7.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
LoggerStdout.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
LoggerStdout.debug |
1 |
0 |
1 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
LoggerStdout.info |
1 |
0 |
1 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
LoggerStdout.warning |
1 |
0 |
1 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
LoggerStdout.error |
1 |
0 |
1 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
LoggerStdout.exception |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/adapters/logger_stdout.py |
(no function) |
10 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser.parse_to_binder |
11 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser.render_from_binder |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._validate_markdown_format |
5 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._check_bracket_patterns |
4 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._handle_no_matches |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._build_binder_tree |
13 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._raise_malformed_error |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._raise_parse_error |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._render_item |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._extract_node_id |
7 |
0 |
2 |
4 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
MarkdownBinderParser._find_parent |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/markdown_binder_parser.py |
(no function) |
24 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.create |
15 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.read_frontmatter |
15 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.write_frontmatter |
13 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.open_in_editor |
15 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.delete |
12 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.get_existing_files |
14 |
0 |
2 |
2 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs._is_valid_node_id |
5 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs._is_uuid7_format |
14 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs._is_reasonable_node_id |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
NodeRepoFs.file_exists |
7 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/adapters/node_repo_fs.py |
(no function) |
24 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/__init__.py |
(no function) |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/add_node.py |
AddNode.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/add_node.py |
AddNode.execute |
21 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/app/add_node.py |
AddNode._find_item |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/add_node.py |
(no function) |
7 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditReport.has_issues |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditProject.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditProject.execute |
11 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditProject._check_items |
16 |
0 |
3 |
10 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditProject._find_orphans |
12 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditProject._collect_ids |
4 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/audit_project.py |
AuditProject._display_report |
25 |
0 |
0 |
18 |
0 |
100% |
| src/prosemark/app/audit_project.py |
(no function) |
37 |
0 |
5 |
0 |
0 |
100% |
| src/prosemark/app/init_project.py |
InitProject.__init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/init_project.py |
InitProject.execute |
11 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/init_project.py |
(no function) |
6 |
0 |
4 |
0 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders.execute |
35 |
0 |
0 |
14 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders._discover_placeholders |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders._collect_placeholders_recursive |
8 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders._materialize_single_placeholder |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders._create_failure_record |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
MaterializeAllPlaceholders._categorize_error |
12 |
0 |
0 |
10 |
0 |
100% |
| src/prosemark/app/materialize_all_placeholders.py |
(no function) |
19 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/app/materialize_node.py |
MaterializeNode.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/materialize_node.py |
MaterializeNode.execute |
15 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/app/materialize_node.py |
MaterializeNode._find_placeholder |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/materialize_node.py |
(no function) |
8 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/app/move_node.py |
MoveNode.__init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/move_node.py |
MoveNode.execute |
25 |
0 |
5 |
10 |
0 |
100% |
| src/prosemark/app/move_node.py |
MoveNode._find_item |
5 |
0 |
2 |
4 |
0 |
100% |
| src/prosemark/app/move_node.py |
MoveNode._remove_item |
8 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/move_node.py |
MoveNode._would_create_cycle |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/move_node.py |
(no function) |
10 |
0 |
4 |
0 |
0 |
100% |
| src/prosemark/app/remove_node.py |
RemoveNode.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/remove_node.py |
RemoveNode.execute |
25 |
0 |
0 |
12 |
0 |
100% |
| src/prosemark/app/remove_node.py |
RemoveNode._find_parent_and_position |
9 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/app/remove_node.py |
(no function) |
8 |
0 |
5 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditReport.is_clean |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditReport.format_report |
20 |
0 |
0 |
10 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditReport.to_json |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
InitProject.__init__ |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
InitProject.execute |
13 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
InitProject._create_initial_binder |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
InitProject._create_default_config |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AddNode.__init__ |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AddNode.execute |
12 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AddNode._add_node_to_binder |
16 |
0 |
1 |
8 |
0 |
100% |
| src/prosemark/app/use_cases.py |
EditPart.__init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
EditPart.execute |
16 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode.execute |
23 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode._would_create_circular_dependency |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode._is_ancestor |
8 |
0 |
1 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode._find_parent_of_node |
7 |
0 |
1 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode._find_parent_of_node._search_for_parent |
8 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode._remove_node_from_current_location |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MoveNode._add_node_to_new_location |
12 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/use_cases.py |
RemoveNode.__init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
RemoveNode.execute |
18 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/use_cases.py |
RemoveNode._find_parent_of_node |
7 |
0 |
1 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
RemoveNode._find_parent_of_node._search_for_parent |
8 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/app/use_cases.py |
RemoveNode._promote_children_to_parent_level |
10 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/use_cases.py |
RemoveNode._remove_node_from_binder |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
WriteFreeform.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
WriteFreeform.execute |
16 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure.execute |
7 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._format_full_structure |
13 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._format_subtree_structure |
9 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._format_items |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._format_items_with_root_connectors |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._format_single_item |
14 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._count_all_items |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
ShowStructure._count_placeholders |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MaterializeNode.__init__ |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MaterializeNode.execute |
22 |
0 |
4 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
MaterializeNode._find_item_by_title_recursive |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder.__init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder.execute |
17 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_placeholders |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_placeholders._scan_item_recursive |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._get_existing_node_files |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_missing_files |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_missing_notes_files |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_orphaned_files |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_orphaned_invalid_files |
29 |
1 |
5 |
12 |
1 |
95% |
| src/prosemark/app/use_cases.py |
AuditBinder._scan_id_mismatches |
21 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/app/use_cases.py |
(no function) |
89 |
0 |
10 |
0 |
0 |
100% |
| src/prosemark/cli/__init__.py |
(no function) |
11 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/add.py |
add_command |
42 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/add.py |
(no function) |
18 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/audit.py |
_report_placeholders |
4 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/audit.py |
_report_missing_nodes |
4 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/audit.py |
_report_orphans |
4 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/audit.py |
_report_mismatches |
4 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/audit.py |
audit_command |
33 |
0 |
0 |
12 |
0 |
100% |
| src/prosemark/cli/audit.py |
(no function) |
17 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/edit.py |
edit_command |
26 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/edit.py |
(no function) |
15 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/init.py |
FileSystemConfigPort.create_default_config |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/init.py |
FileSystemConfigPort.config_exists |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/init.py |
FileSystemConfigPort.get_default_config_values |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/init.py |
FileSystemConfigPort.load_config |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/init.py |
init_command |
20 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/init.py |
(no function) |
22 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
FileSystemConfigPort.create_default_config |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
FileSystemConfigPort.config_exists |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
FileSystemConfigPort.get_default_config_values |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
FileSystemConfigPort.load_config |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
_get_project_root |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
init |
20 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
add |
23 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
edit |
26 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/main.py |
structure |
28 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/cli/main.py |
write |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
_validate_materialize_args |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/main.py |
_create_shared_dependencies |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
_generate_json_result |
17 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/cli/main.py |
_check_result_failure_status |
6 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/main.py |
_report_materialization_progress |
10 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/cli/main.py |
_materialize_all_placeholders |
23 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/cli/main.py |
_materialize_all_placeholders.progress_callback |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
_describe_materialization_result |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/cli/main.py |
_get_safe_attribute |
8 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/cli/main.py |
_get_summary_message |
9 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/main.py |
_materialize_single_placeholder |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
materialize |
25 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/main.py |
move |
20 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
remove |
27 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/main.py |
_validate_materialize_all_options |
15 |
0 |
0 |
10 |
0 |
100% |
| src/prosemark/cli/main.py |
_execute_dry_run_materialize |
9 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/main.py |
_execute_materialize_all |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
materialize_all |
30 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/cli/main.py |
audit |
40 |
0 |
0 |
26 |
0 |
100% |
| src/prosemark/cli/main.py |
main |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/main.py |
(no function) |
76 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/cli/materialize.py |
materialize_command |
22 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/materialize.py |
(no function) |
15 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/move.py |
move_command |
24 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/move.py |
(no function) |
13 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/remove.py |
remove_command |
25 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/cli/remove.py |
(no function) |
16 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/structure.py |
structure_command |
25 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/cli/structure.py |
(no function) |
13 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/cli/write.py |
write_command |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/cli/write.py |
(no function) |
10 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/__init__.py |
(no function) |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
BatchMaterializeResult.__post_init__ |
7 |
0 |
3 |
2 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
BatchMaterializeResult.success_rate |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
BatchMaterializeResult.has_failures |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
BatchMaterializeResult.is_complete_success |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
BatchMaterializeResult.is_complete_failure |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
BatchMaterializeResult.summary_message |
9 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/batch_materialize_result.py |
(no function) |
21 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/binder.py |
(no function) |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.__init__ |
21 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.get_expected_draft_path |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.get_expected_notes_path |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.touch |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.update_metadata |
6 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.from_metadata |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.to_metadata |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.__str__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.__eq__ |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
Node.__hash__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.__post_init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_required_fields |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_uuid_format |
9 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_filename_pattern |
8 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._extract_filename_parts |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_uuid_match |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_timestamp_format |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_timestamp_components |
10 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_time_ranges |
12 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._validate_timestamp_consistency |
10 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent._raise_uuid_version_error |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.get_expected_filename |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.parse_filename |
10 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.update_title |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.__eq__ |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.__hash__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
FreeformContent.get_filename_pattern |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/entities.py |
(no function) |
63 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
MaterializeFailure.__post_init__ |
12 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
MaterializeFailure.is_retryable |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
MaterializeFailure.is_critical |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
MaterializeFailure.should_stop_batch |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
MaterializeFailure.formatted_error |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
MaterializeFailure.__str__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_failure.py |
(no function) |
18 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
MaterializeResult.__post_init__ |
17 |
0 |
0 |
10 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
MaterializeResult._is_valid_uuid7 |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
MaterializeResult._is_valid_position |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
MaterializeResult.main_file_path |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
MaterializeResult.notes_file_path |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
MaterializeResult.__str__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/materialize_result.py |
(no function) |
20 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeId.__post_init__ |
13 |
0 |
3 |
4 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeId.__str__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeId.__repr__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeId.__hash__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeId.__eq__ |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeId.generate |
13 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.__init__ |
12 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.id |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.is_root |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.is_leaf |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.is_placeholder |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.is_materialized |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.materialize |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.get_depth |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.get_path_to_root |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.get_siblings |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.add_child |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
BinderItem.remove_child |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.children |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.__post_init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.validate_integrity |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.find_by_id |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.find_by_id._search_item |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.find_item_by_node_id |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.get_all_node_ids |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.get_all_node_ids._collect_node_ids |
4 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.find_placeholder_by_display_title |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.find_placeholder_by_display_title._search_item |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.add_root_item |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.remove_root_item |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.depth_first_traversal |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
Binder.depth_first_traversal._traverse |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeMetadata.to_dict |
7 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/models.py |
NodeMetadata.from_dict |
16 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/models.py |
(no function) |
61 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary.__post_init__ |
12 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary._is_valid_position |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary.is_root_level |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary.hierarchy_path |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary.position_indices |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary.with_updated_position |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
PlaceholderSummary.__str__ |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/placeholder_summary.py |
(no function) |
18 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/domain/policies.py |
validate_no_duplicate_ids |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/policies.py |
validate_no_duplicate_ids._collect_node_ids |
7 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/domain/policies.py |
validate_tree_structure |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/policies.py |
validate_tree_structure._validate_item_structure |
2 |
0 |
6 |
2 |
0 |
100% |
| src/prosemark/domain/policies.py |
validate_placeholder_handling |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/domain/policies.py |
validate_placeholder_handling._validate_placeholder_item |
5 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/domain/policies.py |
(no function) |
5 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/exceptions.py |
(no function) |
18 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/__init__.py |
(no function) |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/__init__.py |
(no function) |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.tui_adapter |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.parse_arguments |
15 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.parse_arguments._validate_directory |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.parse_arguments._validate_theme |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.validate_node_argument |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.validate_node_argument._validate_uuid |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.create_tui_config |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.launch_tui |
11 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.handle_cli_error |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.validate_write_command_args |
24 |
0 |
0 |
16 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.get_available_themes |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.get_current_working_directory |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.check_directory_writable |
9 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.check_directory_writable._check_create_directory |
7 |
0 |
0 |
2 |
1 |
89% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
TyperCLIAdapter.check_directory_writable._check_write_permission |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
create_freewrite_command |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
create_freewrite_command.write |
13 |
13 |
0 |
0 |
0 |
0% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
main |
7 |
3 |
0 |
0 |
0 |
57% |
| src/prosemark/freewriting/adapters/cli_adapter.py |
(no function) |
33 |
1 |
3 |
2 |
1 |
94% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.write_file |
5 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.read_file |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.file_exists |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.create_directory |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.get_current_directory |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.is_writable |
20 |
0 |
1 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.get_absolute_path |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.join_paths |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.get_file_size |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.backup_file |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.ensure_parent_directory |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
FileSystemAdapter.sanitize_title |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/file_system_adapter.py |
(no function) |
28 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter.create_session |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter.append_content |
10 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter.validate_node_uuid |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter.create_daily_filename |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter.get_session_stats |
12 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._validate_session_config |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._determine_output_path |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._ensure_writable_target |
11 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._initialize_output_file |
22 |
0 |
0 |
12 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._initialize_output_file._verify_file_created |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._append_to_daily_file |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
FreewriteServiceAdapter._append_to_node_file |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/freewrite_service_adapter.py |
(no function) |
25 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.__init__ |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.node_exists |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.create_node |
16 |
1 |
0 |
6 |
1 |
91% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.append_to_node |
30 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.get_node_path |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.get_node_path._validate_node_format |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.validate_node_uuid |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.validate_node_uuid._validate |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
NodeServiceAdapter.add_to_binder |
18 |
4 |
0 |
4 |
0 |
82% |
| src/prosemark/freewriting/adapters/node_service_adapter.py |
(no function) |
17 |
0 |
5 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/title_handler.py |
process_title |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/title_handler.py |
sanitize_title_for_filename |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/title_handler.py |
(no function) |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.__init__ |
10 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.compose |
6 |
6 |
0 |
0 |
0 |
0% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.on_mount |
13 |
0 |
0 |
2 |
1 |
93% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.on_input_submitted |
18 |
2 |
0 |
6 |
2 |
83% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.on_input_changed |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.action_pause |
11 |
0 |
0 |
8 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp.action_quit |
3 |
3 |
0 |
2 |
0 |
0% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp._update_timer |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp._update_display |
8 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp._update_stats_display |
21 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
FreewritingApp._show_completion_message |
8 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.__init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.freewrite_service |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.initialize_session |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.handle_input_submission |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.get_display_content |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.calculate_progress |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.handle_error |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.on_input_change |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.on_input_submit |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.on_session_pause |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.on_session_resume |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.on_session_exit |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.update_content_area |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.update_stats_display |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.clear_input_area |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.show_error_message |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.hide_error_message |
2 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.set_theme |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
TextualTUIAdapter.run_tui |
10 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/adapters/tui_adapter.py |
(no function) |
50 |
0 |
5 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
create_file_system_adapter |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
create_node_service_adapter |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
create_freewrite_service_adapter |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
create_cli_adapter |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/container.py |
create_tui_adapter |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
create_prosemark_dependencies |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
wire_freewriting_adapters |
7 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/container.py |
run_freewriting_session |
23 |
0 |
0 |
6 |
0 |
100% |
| src/prosemark/freewriting/container.py |
(no function) |
20 |
0 |
6 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/__init__.py |
(no function) |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
FreewriteError.__init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
FreewriteError.__str__ |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
ValidationError.__init__ |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
FileSystemError.__init__ |
7 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
NodeError.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
SessionError.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
TUIError.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
CLIError.__init__ |
8 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
CLIError.__str__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
ConfigurationError.__init__ |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
ContentError.__init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
ArgumentValidationError.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
ThemeNotFoundError.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
DirectoryNotWritableError.__init__ |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/exceptions.py |
(no function) |
28 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession.__post_init__ |
6 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession._validate_session_id |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession._validate_target_node |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession._validate_start_time |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession._validate_goals |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession._validate_counters |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession._validate_file_path |
2 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession.calculate_word_count |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession.add_content_line |
5 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession.update_elapsed_time |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession.change_state |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteSession.is_goal_reached |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
SessionConfig.__post_init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
SessionConfig._validate_target_node |
6 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
SessionConfig._validate_goals |
6 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
SessionConfig._validate_directory |
2 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
SessionConfig.has_goals |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
SessionConfig.is_node_targeted |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteContent.__post_init__ |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteContent._validate_line_number |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteContent._validate_word_count |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FreewriteContent.from_content |
4 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FileTarget.__post_init__ |
3 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FileTarget._validate_file_path |
2 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FileTarget._validate_node_consistency |
9 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FileTarget._validate_file_format |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FileTarget.for_daily_file |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
FileTarget.for_node |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/domain/models.py |
(no function) |
77 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/__init__.py |
(no function) |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CLIAdapterPort.tui_adapter |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CLIAdapterPort.parse_arguments |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CLIAdapterPort.validate_node_argument |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CLIAdapterPort.create_tui_config |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CLIAdapterPort.launch_tui |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CLIAdapterPort.handle_cli_error |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CommandValidationPort.validate_write_command_args |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CommandValidationPort.get_available_themes |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CommandValidationPort.get_current_working_directory |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
CommandValidationPort.check_directory_writable |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/cli_adapter.py |
(no function) |
45 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.write_file |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.read_file |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.file_exists |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.create_directory |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.get_current_directory |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.is_writable |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.get_absolute_path |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.join_paths |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.get_file_size |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.backup_file |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.ensure_parent_directory |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
FileSystemPort.resolve_path |
0 |
0 |
10 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/file_system.py |
(no function) |
26 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FreewriteServicePort.create_session |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FreewriteServicePort.append_content |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FreewriteServicePort.validate_node_uuid |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FreewriteServicePort.create_daily_filename |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FreewriteServicePort.get_session_stats |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
NodeServicePort.node_exists |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
NodeServicePort.create_node |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
NodeServicePort.append_to_node |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FileSystemPort.write_file |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FileSystemPort.file_exists |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FileSystemPort.get_current_directory |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
FileSystemPort.is_writable |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/freewrite_service.py |
(no function) |
31 |
0 |
3 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
NodeServicePort.node_exists |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
NodeServicePort.create_node |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
NodeServicePort.append_to_node |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
NodeServicePort.get_node_path |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
NodeServicePort.validate_node_uuid |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
NodeServicePort.add_to_binder |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/node_service.py |
(no function) |
16 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIAdapterPort.freewrite_service |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIAdapterPort.initialize_session |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIAdapterPort.handle_input_submission |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIAdapterPort.get_display_content |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIAdapterPort.calculate_progress |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIAdapterPort.handle_error |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIEventPort.on_input_change |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIEventPort.on_input_submit |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIEventPort.on_session_pause |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIEventPort.on_session_resume |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIEventPort.on_session_exit |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIDisplayPort.update_content_area |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIDisplayPort.update_stats_display |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIDisplayPort.clear_input_area |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIDisplayPort.show_error_message |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIDisplayPort.hide_error_message |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
TUIDisplayPort.set_theme |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/ports/tui_adapter.py |
(no function) |
81 |
0 |
4 |
0 |
0 |
100% |
| src/prosemark/freewriting/test_helpers.py |
create_title_processing_mock |
5 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/freewriting/test_helpers.py |
create_title_processing_mock.side_effect |
9 |
0 |
0 |
6 |
2 |
87% |
| src/prosemark/freewriting/test_helpers.py |
create_integration_tui_mock |
2 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/test_helpers.py |
create_integration_tui_mock.mock_tui_constructor |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/freewriting/test_helpers.py |
(no function) |
9 |
2 |
0 |
2 |
1 |
73% |
| src/prosemark/ports/__init__.py |
(no function) |
10 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/binder_repo.py |
BinderRepo.load |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/binder_repo.py |
BinderRepo.save |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/binder_repo.py |
(no function) |
7 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/cli_adapter.py |
CLIAdapterPort.some_method |
0 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/ports/cli_adapter.py |
(no function) |
0 |
0 |
6 |
0 |
0 |
100% |
| src/prosemark/ports/clock.py |
Clock.now_iso |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/clock.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/config_port.py |
ConfigPort.create_default_config |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/config_port.py |
ConfigPort.config_exists |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/config_port.py |
ConfigPort.get_default_config_values |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/config_port.py |
(no function) |
14 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort.print |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort.print_info |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort.print_success |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort.print_warning |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort.print_error |
1 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort.print_tree |
3 |
0 |
0 |
2 |
0 |
100% |
| src/prosemark/ports/console_port.py |
ConsolePort._print_item |
7 |
0 |
0 |
4 |
0 |
100% |
| src/prosemark/ports/console_port.py |
(no function) |
11 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/daily_repo.py |
DailyRepo.write_freeform |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/daily_repo.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/editor_port.py |
EditorPort.open |
0 |
0 |
1 |
0 |
0 |
100% |
| src/prosemark/ports/editor_port.py |
(no function) |
4 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/freewrite_service.py |
FreewriteServicePort.some_method |
0 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/ports/freewrite_service.py |
(no function) |
0 |
0 |
6 |
0 |
0 |
100% |
| src/prosemark/ports/id_generator.py |
IdGenerator.new |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/id_generator.py |
(no function) |
5 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/logger.py |
Logger.debug |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/logger.py |
Logger.info |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/logger.py |
Logger.warning |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/logger.py |
Logger.error |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/logger.py |
Logger.exception |
0 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/logger.py |
(no function) |
12 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.create |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.read_frontmatter |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.write_frontmatter |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.open_in_editor |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.delete |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.get_existing_files |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
NodeRepo.file_exists |
0 |
0 |
0 |
0 |
0 |
100% |
| src/prosemark/ports/node_repo.py |
(no function) |
17 |
0 |
2 |
0 |
0 |
100% |
| src/prosemark/ports/tui_adapter.py |
TUIAdapterPort.some_method |
0 |
0 |
7 |
0 |
0 |
100% |
| src/prosemark/ports/tui_adapter.py |
(no function) |
0 |
0 |
6 |
0 |
0 |
100% |