Coverage report: 77%

Files Functions Classes

coverage.py v7.15.4, created at 2026-08-21 17:12 +0800

File function   statements missing excluded   coverage
src/lexigram/admin/__init__.py __getattr__   7 1 0   86%
src/lexigram/admin/__init__.py __dir__   1 1 0   0%
src/lexigram/admin/__init__.py (no function)   9 0 9   100%
src/lexigram/admin/actions/__init__.py __getattr__   6 1 0   83%
src/lexigram/admin/actions/__init__.py __dir__   1 1 0   0%
src/lexigram/admin/actions/__init__.py (no function)   7 0 7   100%
src/lexigram/admin/actions/audited.py AuditedAction.execute_audited   0 0 1   100%
src/lexigram/admin/actions/audited.py AuditedAction.capture_before   1 0 0   100%
src/lexigram/admin/actions/audited.py AuditedAction.capture_after   1 0 0   100%
src/lexigram/admin/actions/audited.py AuditedAction.resource_id_of   5 2 0   60%
src/lexigram/admin/actions/audited.py AuditedAction.execute   19 0 0   100%
src/lexigram/admin/actions/audited.py (no function)   19 0 5   100%
src/lexigram/admin/actions/base.py Action.execute   0 0 1   100%
src/lexigram/admin/actions/base.py Action.visible_for   1 0 0   100%
src/lexigram/admin/actions/base.py Action.is_visible   1 0 0   100%
src/lexigram/admin/actions/base.py Action.authorize   1 0 0   100%
src/lexigram/admin/actions/base.py Action.form   1 0 0   100%
src/lexigram/admin/actions/base.py Action.confirm   1 0 0   100%
src/lexigram/admin/actions/base.py Action._color_to_variant   2 0 0   100%
src/lexigram/admin/actions/base.py Action._get_url   1 1 0   0%
src/lexigram/admin/actions/base.py Action.get_url   1 1 0   0%
src/lexigram/admin/actions/base.py Action._get_htmx_attrs   1 0 0   100%
src/lexigram/admin/actions/base.py Action.render_button   11 1 0   91%
src/lexigram/admin/actions/base.py RowAction._get_record_id   7 0 0   100%
src/lexigram/admin/actions/base.py RowAction._get_url   5 0 0   100%
src/lexigram/admin/actions/base.py BulkAction._get_url   2 0 0   100%
src/lexigram/admin/actions/base.py HeaderAction._get_url   2 0 0   100%
src/lexigram/admin/actions/base.py (no function)   39 0 1   100%
src/lexigram/admin/actions/bulk_manager.py IBulkDataSource.bulk_update   0 0 1   100%
src/lexigram/admin/actions/bulk_manager.py IBulkDataSource.fetch_by_ids   0 0 1   100%
src/lexigram/admin/actions/bulk_manager.py IBulkDataSource.create_snapshot   0 0 1   100%
src/lexigram/admin/actions/bulk_manager.py IBulkDataSource.restore_snapshot   0 0 1   100%
src/lexigram/admin/actions/bulk_manager.py BulkActionProgress.__init__   4 0 0   100%
src/lexigram/admin/actions/bulk_manager.py BulkActionProgress.percentage   3 3 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionProgress.elapsed_ms   2 2 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionProgress.increment   1 1 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionProgress.add_error   1 1 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionProgress.to_dict   1 1 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.__init__   4 0 0   100%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.bulk_edit   15 5 0   67%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.bulk_assign   1 1 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.register_action   1 1 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.execute_action   4 4 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.get_preview   2 2 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.get_confirmation_message   6 6 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.execute_with_progress   22 22 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.get_progress   4 4 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.undo   5 5 0   0%
src/lexigram/admin/actions/bulk_manager.py BulkActionManager.get_recent_snapshots   2 2 0   0%
src/lexigram/admin/actions/bulk_manager.py bulk_action   2 2 0   0%
src/lexigram/admin/actions/bulk_manager.py bulk_action.decorator   2 2 0   0%
src/lexigram/admin/actions/bulk_manager.py (no function)   70 0 5   100%
src/lexigram/admin/actions/decorators.py requires_confirmation   3 0 0   100%
src/lexigram/admin/actions/decorators.py requires_confirmation.decorator   2 0 0   100%
src/lexigram/admin/actions/decorators.py requires_confirmation.decorator.wrapper   1 0 0   100%
src/lexigram/admin/actions/decorators.py with_loading_indicator   3 0 0   100%
src/lexigram/admin/actions/decorators.py with_loading_indicator.decorator   2 0 0   100%
src/lexigram/admin/actions/decorators.py with_loading_indicator.decorator.wrapper   3 0 0   100%
src/lexigram/admin/actions/decorators.py with_error_handling   3 0 0   100%
src/lexigram/admin/actions/decorators.py with_error_handling.decorator   2 0 0   100%
src/lexigram/admin/actions/decorators.py with_error_handling.decorator.wrapper   1 0 0   100%
src/lexigram/admin/actions/decorators.py debounce   2 0 0   100%
src/lexigram/admin/actions/decorators.py debounce.decorator   4 0 0   100%
src/lexigram/admin/actions/decorators.py debounce.decorator.wrapper   8 4 0   50%
src/lexigram/admin/actions/decorators.py (no function)   9 0 2   100%
src/lexigram/admin/actions/exceptions.py (no function)   7 0 0   100%
src/lexigram/admin/actions/header_manager/__init__.py (no function)   9 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_refresh_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_create_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_import_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_export_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_bulk_delete_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_bulk_edit_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_settings_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py create_help_action   1 0 0   100%
src/lexigram/admin/actions/header_manager/actions.py (no function)   15 0 0   100%
src/lexigram/admin/actions/header_manager/decorators.py requires_selection   3 3 0   0%
src/lexigram/admin/actions/header_manager/decorators.py requires_selection.decorator   2 2 0   0%
src/lexigram/admin/actions/header_manager/decorators.py requires_selection.decorator.wrapper   1 1 0   0%
src/lexigram/admin/actions/header_manager/decorators.py header_action   2 2 0   0%
src/lexigram/admin/actions/header_manager/decorators.py header_action.decorator   2 2 0   0%
src/lexigram/admin/actions/header_manager/decorators.py (no function)   10 0 0   100%
src/lexigram/admin/actions/header_manager/density.py DensityManager.__init__   11 11 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.current_density   1 1 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.available_options   1 1 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.set_density   3 3 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.cycle_density   5 5 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.reset_to_default   2 2 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager._save_preferences   2 2 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.get_css_class   1 1 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.get_row_height   2 2 0   0%
src/lexigram/admin/actions/header_manager/density.py DensityManager.get_font_size   2 2 0   0%
src/lexigram/admin/actions/header_manager/density.py (no function)   16 0 0   100%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.__init__   9 9 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager._initialize_default_actions   8 8 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.add_action   2 2 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.remove_action   5 5 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_action   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_all_actions   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_visible_actions   4 4 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.execute_action   7 7 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.handle_keyboard_shortcut   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.show_column   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.hide_column   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.toggle_column_visibility   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_visible_columns   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.is_column_visible   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.set_table_density   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.cycle_table_density   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_current_density   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_density_css_class   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.update_bulk_actions_visibility   5 5 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.refresh_data   3 3 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.create_record   3 3 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.import_data   3 3 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.export_data   3 3 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.configure_visibility   2 2 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.configure_density   2 2 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.add_create_action   3 3 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.add_import_action   3 3 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.add_export_action   5 5 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.add_refresh_action   5 5 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.add_custom_action   2 2 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_action_groups   6 6 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.get_registered_shortcuts   1 1 0   0%
src/lexigram/admin/actions/header_manager/manager.py HeaderActionManager.clear_all_actions   2 2 0   0%
src/lexigram/admin/actions/header_manager/manager.py (no function)   42 0 0   100%
src/lexigram/admin/actions/header_manager/shortcuts.py KeyboardShortcutManager.__init__   2 2 0   0%
src/lexigram/admin/actions/header_manager/shortcuts.py KeyboardShortcutManager.register_action   3 3 0   0%
src/lexigram/admin/actions/header_manager/shortcuts.py KeyboardShortcutManager.unregister_action   2 2 0   0%
src/lexigram/admin/actions/header_manager/shortcuts.py KeyboardShortcutManager.execute_shortcut   4 4 0   0%
src/lexigram/admin/actions/header_manager/shortcuts.py KeyboardShortcutManager.clear_all_shortcuts   2 2 0   0%
src/lexigram/admin/actions/header_manager/shortcuts.py (no function)   10 0 2   100%
src/lexigram/admin/actions/header_manager/types.py IHeaderDataSource.create   0 0 1   100%
src/lexigram/admin/actions/header_manager/types.py IHeaderDataSource.import_data   0 0 1   100%
src/lexigram/admin/actions/header_manager/types.py IHeaderDataSource.export_all   0 0 1   100%
src/lexigram/admin/actions/header_manager/types.py IHeaderDataSource.refresh   0 0 1   100%
src/lexigram/admin/actions/header_manager/types.py (no function)   78 0 3   100%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.__init__   13 13 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.visible_columns   1 1 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.is_column_visible   3 3 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.show_column   3 3 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.hide_column   3 3 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.toggle_column   3 3 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.show_all_columns   4 4 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.hide_all_columns   2 2 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.reset_to_defaults   4 4 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager._save_preferences   3 3 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.get_hidden_columns   1 1 0   0%
src/lexigram/admin/actions/header_manager/visibility.py ColumnVisibilityManager.get_visible_columns_list   1 1 0   0%
src/lexigram/admin/actions/header_manager/visibility.py (no function)   18 0 0   100%
src/lexigram/admin/actions/polymorphic.py PolymorphicBulkAction.execute   14 0 0   100%
src/lexigram/admin/actions/polymorphic.py (no function)   10 0 0   100%
src/lexigram/admin/actions/relation.py _RelationAction.__init__   2 0 0   100%
src/lexigram/admin/actions/relation.py _RelationAction._resolve_manager   4 0 0   100%
src/lexigram/admin/actions/relation.py AssociateAction.__init__   3 0 0   100%
src/lexigram/admin/actions/relation.py AssociateAction.execute   14 0 0   100%
src/lexigram/admin/actions/relation.py AttachAction.__init__   1 0 0   100%
src/lexigram/admin/actions/relation.py DetachAction.__init__   2 0 0   100%
src/lexigram/admin/actions/relation.py DetachAction.execute   13 2 0   85%
src/lexigram/admin/actions/relation.py DissociateAction.__init__   2 0 0   100%
src/lexigram/admin/actions/relation.py DissociateAction.execute   14 1 0   93%
src/lexigram/admin/actions/relation.py (no function)   22 0 0   100%
src/lexigram/admin/actions/row_manager/__init__.py (no function)   8 0 0   100%
src/lexigram/admin/actions/row_manager/actions.py create_view_action   1 0 0   100%
src/lexigram/admin/actions/row_manager/actions.py create_edit_action   1 0 0   100%
src/lexigram/admin/actions/row_manager/actions.py create_delete_action   1 0 0   100%
src/lexigram/admin/actions/row_manager/actions.py create_duplicate_action   1 0 0   100%
src/lexigram/admin/actions/row_manager/actions.py (no function)   8 0 0   100%
src/lexigram/admin/actions/row_manager/decorators.py requires_permission   3 3 0   0%
src/lexigram/admin/actions/row_manager/decorators.py requires_permission.decorator   2 2 0   0%
src/lexigram/admin/actions/row_manager/decorators.py requires_permission.decorator.wrapper   1 1 0   0%
src/lexigram/admin/actions/row_manager/decorators.py row_action   2 0 0   100%
src/lexigram/admin/actions/row_manager/decorators.py row_action.decorator   2 0 0   100%
src/lexigram/admin/actions/row_manager/decorators.py (no function)   10 0 0   100%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.__init__   1 0 0   100%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.add_group   1 0 0   100%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.get_group   1 1 0   0%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.get_all_groups   1 1 0   0%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.get_visible_groups   9 1 0   89%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.create_group   5 0 0   100%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.create_group.visible   1 0 0   100%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.remove_group   2 2 0   0%
src/lexigram/admin/actions/row_manager/groups.py ActionGroupManager.clear_groups   1 0 0   100%
src/lexigram/admin/actions/row_manager/groups.py (no function)   13 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.__init__   5 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager._initialize_default_actions   2 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.add_action   2 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.remove_action   1 1 0   0%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_action   8 5 0   38%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_all_actions   1 1 0   0%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_visible_actions   7 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_all_visible_actions   4 4 0   0%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.execute_action   6 2 0   67%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.handle_keyboard_shortcut   1 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_keyboard_shortcuts   1 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.create_action_group   1 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_visible_groups   1 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.add_view_action   2 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.add_edit_action   2 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.add_delete_action   4 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.add_duplicate_action   4 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.add_custom_action   2 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_record   3 3 0   0%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.delete_record   3 1 0   67%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.duplicate_record   3 1 0   67%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.clear_all_actions   3 0 0   100%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_action_count   3 3 0   0%
src/lexigram/admin/actions/row_manager/manager.py RowActionManager.get_group_count   1 1 0   0%
src/lexigram/admin/actions/row_manager/manager.py (no function)   32 0 0   100%
src/lexigram/admin/actions/row_manager/shortcuts.py KeyboardShortcutManager.execute_shortcut   4 0 0   100%
src/lexigram/admin/actions/row_manager/shortcuts.py KeyboardShortcutManager.get_registered_shortcuts_with_labels   1 0 0   100%
src/lexigram/admin/actions/row_manager/shortcuts.py (no function)   7 0 0   100%
src/lexigram/admin/actions/row_manager/types.py IRowDataSource.get_by_id   0 0 1   100%
src/lexigram/admin/actions/row_manager/types.py IRowDataSource.delete   0 0 1   100%
src/lexigram/admin/actions/row_manager/types.py IRowDataSource.duplicate   0 0 1   100%
src/lexigram/admin/actions/row_manager/types.py (no function)   73 0 2   100%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.__init__   1 0 0   100%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.register_action   2 0 0   100%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.unregister_action   1 1 0   0%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.get_action_for_shortcut   1 1 0   0%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.get_registered_shortcuts   1 1 0   0%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.is_shortcut_registered   1 1 0   0%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.clear_all_shortcuts   1 0 0   100%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.normalize_shortcut   1 1 0   0%
src/lexigram/admin/actions/shortcuts.py KeyboardShortcutManager.format_shortcut   3 3 0   0%
src/lexigram/admin/actions/shortcuts.py (no function)   18 0 0   100%
src/lexigram/admin/actions/standard/__init__.py (no function)   7 0 0   100%
src/lexigram/admin/actions/standard/bulk.py DeleteBulkAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/bulk.py DeleteBulkAction._get_htmx_attrs   3 0 0   100%
src/lexigram/admin/actions/standard/bulk.py DeleteBulkAction.confirm   1 0 0   100%
src/lexigram/admin/actions/standard/bulk.py DeleteBulkAction.execute   2 0 0   100%
src/lexigram/admin/actions/standard/bulk.py PurgeBulkAction.__init__   3 0 0   100%
src/lexigram/admin/actions/standard/bulk.py PurgeBulkAction._get_htmx_attrs   3 0 0   100%
src/lexigram/admin/actions/standard/bulk.py PurgeBulkAction.confirm   1 0 0   100%
src/lexigram/admin/actions/standard/bulk.py PurgeBulkAction.execute   9 0 0   100%
src/lexigram/admin/actions/standard/bulk.py RestoreBulkAction.__init__   2 0 0   100%
src/lexigram/admin/actions/standard/bulk.py RestoreBulkAction._get_htmx_attrs   3 0 0   100%
src/lexigram/admin/actions/standard/bulk.py RestoreBulkAction.confirm   1 0 0   100%
src/lexigram/admin/actions/standard/bulk.py RestoreBulkAction.execute   10 0 0   100%
src/lexigram/admin/actions/standard/bulk.py (no function)   22 0 0   100%
src/lexigram/admin/actions/standard/export.py _resolve_export_service   10 3 0   70%
src/lexigram/admin/actions/standard/export.py _run_export   7 1 0   86%
src/lexigram/admin/actions/standard/export.py ExportAction.__init__   7 0 0   100%
src/lexigram/admin/actions/standard/export.py ExportAction.execute   12 0 0   100%
src/lexigram/admin/actions/standard/export.py ExportBulkAction.__init__   7 0 0   100%
src/lexigram/admin/actions/standard/export.py ExportBulkAction.execute   12 0 0   100%
src/lexigram/admin/actions/standard/export.py (no function)   15 0 2   100%
src/lexigram/admin/actions/standard/header.py CreateAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/header.py CreateAction._get_htmx_attrs   1 0 0   100%
src/lexigram/admin/actions/standard/header.py CreateAction.execute   1 0 0   100%
src/lexigram/admin/actions/standard/header.py (no function)   11 0 0   100%
src/lexigram/admin/actions/standard/imports.py _run_import   16 2 0   88%
src/lexigram/admin/actions/standard/imports.py _ImportReportMixin.report_csv   7 0 0   100%
src/lexigram/admin/actions/standard/imports.py _ImportReportMixin.report_filename   8 1 0   88%
src/lexigram/admin/actions/standard/imports.py ImportAction.__init__   7 0 0   100%
src/lexigram/admin/actions/standard/imports.py ImportAction.example_csv   6 0 0   100%
src/lexigram/admin/actions/standard/imports.py ImportAction.example_filename   1 0 0   100%
src/lexigram/admin/actions/standard/imports.py ImportAction.execute   12 0 0   100%
src/lexigram/admin/actions/standard/imports.py ImportBulkAction.__init__   5 0 0   100%
src/lexigram/admin/actions/standard/imports.py ImportBulkAction.execute   12 5 0   58%
src/lexigram/admin/actions/standard/imports.py (no function)   23 0 2   100%
src/lexigram/admin/actions/standard/row.py EditAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/row.py EditAction._get_url   5 0 0   100%
src/lexigram/admin/actions/standard/row.py EditAction._get_htmx_attrs   1 0 0   100%
src/lexigram/admin/actions/standard/row.py EditAction.execute   1 0 0   100%
src/lexigram/admin/actions/standard/row.py ViewAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/row.py ViewAction._get_url   5 0 0   100%
src/lexigram/admin/actions/standard/row.py ViewAction.execute   1 0 0   100%
src/lexigram/admin/actions/standard/row.py DeleteAction.__init__   3 0 0   100%
src/lexigram/admin/actions/standard/row.py DeleteAction._get_url   5 0 0   100%
src/lexigram/admin/actions/standard/row.py DeleteAction._get_htmx_attrs   1 0 0   100%
src/lexigram/admin/actions/standard/row.py DeleteAction.confirm   1 0 0   100%
src/lexigram/admin/actions/standard/row.py DeleteAction.execute   1 0 0   100%
src/lexigram/admin/actions/standard/row.py PermissionsAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/row.py PermissionsAction._get_url   5 1 0   80%
src/lexigram/admin/actions/standard/row.py PermissionsAction.execute   1 1 0   0%
src/lexigram/admin/actions/standard/row.py ImpersonateAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/row.py ImpersonateAction.visible_for   5 0 0   100%
src/lexigram/admin/actions/standard/row.py ImpersonateAction._get_url   4 0 0   100%
src/lexigram/admin/actions/standard/row.py ImpersonateAction._get_htmx_attrs   2 0 0   100%
src/lexigram/admin/actions/standard/row.py ImpersonateAction.execute   1 1 0   0%
src/lexigram/admin/actions/standard/row.py CloneAction.__init__   5 0 0   100%
src/lexigram/admin/actions/standard/row.py CloneAction._get_url   5 1 0   80%
src/lexigram/admin/actions/standard/row.py CloneAction.execute   26 2 0   92%
src/lexigram/admin/actions/standard/row.py RestoreAction.__init__   1 0 0   100%
src/lexigram/admin/actions/standard/row.py RestoreAction._get_url   5 1 0   80%
src/lexigram/admin/actions/standard/row.py RestoreAction.execute   1 0 0   100%
src/lexigram/admin/actions/standard/row.py PurgeAction.__init__   3 0 0   100%
src/lexigram/admin/actions/standard/row.py PurgeAction._get_url   5 1 0   80%
src/lexigram/admin/actions/standard/row.py PurgeAction._get_htmx_attrs   5 0 0   100%
src/lexigram/admin/actions/standard/row.py PurgeAction.confirm   1 0 0   100%
src/lexigram/admin/actions/standard/row.py PurgeAction.execute   1 0 0   100%
src/lexigram/admin/actions/standard/row.py (no function)   48 0 0   100%
src/lexigram/admin/actions/standard/utils.py _extract_id   3 0 0   100%
src/lexigram/admin/actions/standard/utils.py _resolve_data_source   5 0 0   100%
src/lexigram/admin/actions/standard/utils.py (no function)   5 0 0   100%
src/lexigram/admin/actions/types.py (no function)   32 0 0   100%
src/lexigram/admin/audit/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/audit/correlation.py get_correlation_id   1 0 0   100%
src/lexigram/admin/audit/correlation.py set_correlation_id   1 0 0   100%
src/lexigram/admin/audit/correlation.py new_correlation_id   1 0 0   100%
src/lexigram/admin/audit/correlation.py (no function)   8 0 0   100%
src/lexigram/admin/audit/uow_writer.py UoWProtocol.on_commit   0 0 1   100%
src/lexigram/admin/audit/uow_writer.py UoWProtocol.on_rollback   0 0 1   100%
src/lexigram/admin/audit/uow_writer.py UowAuditWriter.__init__   2 0 0   100%
src/lexigram/admin/audit/uow_writer.py UowAuditWriter.write   5 0 0   100%
src/lexigram/admin/audit/uow_writer.py (no function)   10 0 3   100%
src/lexigram/admin/auth/__init__.py __getattr__   7 7 0   0%
src/lexigram/admin/auth/__init__.py __dir__   1 1 0   0%
src/lexigram/admin/auth/__init__.py (no function)   11 0 2   100%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter.__init__   2 0 0   100%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter.sync   53 11 0   79%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter._is_duplicate_key_error   2 0 0   100%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter._find_user   5 3 0   40%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter._log_audit_event   10 2 0   80%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter.create_user   33 11 0   67%
src/lexigram/admin/auth/adapter.py AdminAuthAdapter.delete_user   20 11 0   45%
src/lexigram/admin/auth/adapter.py AdminAuthServiceAdapter.__init__   1 1 0   0%
src/lexigram/admin/auth/adapter.py AdminAuthServiceAdapter.verify_token   8 8 0   0%
src/lexigram/admin/auth/adapter.py AdminAuthServiceAdapter.get_user   4 4 0   0%
src/lexigram/admin/auth/adapter.py AdminAuthServiceAdapter.validate_session   7 7 0   0%
src/lexigram/admin/auth/adapter.py _NoOpAuthProvider.verify_token   1 1 0   0%
src/lexigram/admin/auth/adapter.py _NoOpAuthProvider.get_user   1 1 0   0%
src/lexigram/admin/auth/adapter.py _NoOpAuthProvider.validate_session   1 1 0   0%
src/lexigram/admin/auth/adapter.py (no function)   35 4 2   89%
src/lexigram/admin/auth/entity.py _utc_now   1 0 0   100%
src/lexigram/admin/auth/entity.py AdminUserEntity.to_user   1 0 0   100%
src/lexigram/admin/auth/entity.py AdminUserEntity.from_user   1 0 0   100%
src/lexigram/admin/auth/entity.py (no function)   22 0 0   100%
src/lexigram/admin/auth/errors.py AccountLockedError.__init__   4 0 0   100%
src/lexigram/admin/auth/errors.py AccountLockedError.to_payload   6 0 0   100%
src/lexigram/admin/auth/errors.py RateLimitExceededError.__init__   3 0 0   100%
src/lexigram/admin/auth/errors.py RateLimitExceededError.to_payload   4 0 0   100%
src/lexigram/admin/auth/errors.py (no function)   45 0 0   100%
src/lexigram/admin/auth/guard_chain.py AdminGuardChain.__init__   1 1 0   0%
src/lexigram/admin/auth/guard_chain.py AdminGuardChain.add   2 2 0   0%
src/lexigram/admin/auth/guard_chain.py AdminGuardChain.execute   6 6 0   0%
src/lexigram/admin/auth/guard_chain.py (no function)   12 0 2   100%
src/lexigram/admin/auth/guards.py AuthGuardMiddleware.__init__   4 0 0   100%
src/lexigram/admin/auth/guards.py AuthGuardMiddleware.dispatch   21 6 0   71%
src/lexigram/admin/auth/guards.py AuthGuardMiddleware._is_authenticated   6 1 0   83%
src/lexigram/admin/auth/guards.py AuthGuardMiddleware._is_exempt   1 0 0   100%
src/lexigram/admin/auth/guards.py AuthGuardMiddleware._get_authenticated_user   46 16 0   65%
src/lexigram/admin/auth/guards.py AuthGuardMiddleware._redirect_to_login   9 9 0   0%
src/lexigram/admin/auth/guards.py PermissionGuard.__init__   4 0 0   100%
src/lexigram/admin/auth/guards.py PermissionGuard.__call__   16 4 0   75%
src/lexigram/admin/auth/guards.py PermissionGuard.__matmul__   1 1 0   0%
src/lexigram/admin/auth/guards.py PermissionGuard.wrap   3 3 0   0%
src/lexigram/admin/auth/guards.py PermissionGuard.wrap.wrapper   4 4 0   0%
src/lexigram/admin/auth/guards.py RoleGuard.__init__   3 0 0   100%
src/lexigram/admin/auth/guards.py RoleGuard.__call__   11 0 0   100%
src/lexigram/admin/auth/guards.py require_auth   3 3 0   0%
src/lexigram/admin/auth/guards.py require_auth.wrapper   4 4 0   0%
src/lexigram/admin/auth/guards.py csrf_protect   3 3 0   0%
src/lexigram/admin/auth/guards.py csrf_protect.wrapper   19 19 0   0%
src/lexigram/admin/auth/guards.py CompositeGuard.__init__   2 0 0   100%
src/lexigram/admin/auth/guards.py CompositeGuard.__call__   13 0 0   100%
src/lexigram/admin/auth/guards.py (no function)   45 0 3   100%
src/lexigram/admin/auth/integration.py AdminUser.user_id   3 1 0   67%
src/lexigram/admin/auth/integration.py AdminUser.username   3 3 0   0%
src/lexigram/admin/auth/integration.py AdminUser.is_verified   3 3 0   0%
src/lexigram/admin/auth/integration.py AdminUser.is_authenticated   3 3 0   0%
src/lexigram/admin/auth/integration.py AdminUser.is_admin   3 3 0   0%
src/lexigram/admin/auth/integration.py AdminUser.has_role   3 1 0   67%
src/lexigram/admin/auth/integration.py AdminUser.has_permission   12 10 0   17%
src/lexigram/admin/auth/integration.py AdminUser.has_any_permission   1 1 0   0%
src/lexigram/admin/auth/integration.py AdminUser.has_all_permissions   1 1 0   0%
src/lexigram/admin/auth/integration.py (no function)   32 0 0   100%
src/lexigram/admin/auth/models.py (no function)   5 0 0   100%
src/lexigram/admin/auth/permissions.py Action.all_actions   1 0 0   100%
src/lexigram/admin/auth/permissions.py Action.read_only   1 0 0   100%
src/lexigram/admin/auth/permissions.py Action.write   1 0 0   100%
src/lexigram/admin/auth/permissions.py Permission.__str__   1 0 0   100%
src/lexigram/admin/auth/permissions.py Permission.from_string   4 0 0   100%
src/lexigram/admin/auth/permissions.py Permission.for_resource   2 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.add   3 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.remove   3 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.has   7 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.has_any   1 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.has_all   1 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.__contains__   1 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.__iter__   1 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.__len__   1 0 0   100%
src/lexigram/admin/auth/permissions.py PermissionSet.from_roles   5 5 0   0%
src/lexigram/admin/auth/permissions.py HasPermissions.permissions   0 0 1   100%
src/lexigram/admin/auth/permissions.py HasPermissions.roles   0 0 1   100%
src/lexigram/admin/auth/permissions.py get_user_permissions   8 0 0   100%
src/lexigram/admin/auth/permissions.py _get_permission_set   7 1 0   86%
src/lexigram/admin/auth/permissions.py require_permission   4 0 1   100%
src/lexigram/admin/auth/permissions.py require_permission.decorator   3 0 0   100%
src/lexigram/admin/auth/permissions.py require_permission.decorator.wrapper   11 1 0   91%
src/lexigram/admin/auth/permissions.py require_all_permissions   4 0 1   100%
src/lexigram/admin/auth/permissions.py require_all_permissions.decorator   4 0 0   100%
src/lexigram/admin/auth/permissions.py require_all_permissions.decorator.wrapper   11 3 0   73%
src/lexigram/admin/auth/permissions.py require_role   3 0 1   100%
src/lexigram/admin/auth/permissions.py require_role.decorator   3 0 0   100%
src/lexigram/admin/auth/permissions.py require_role.decorator.wrapper   12 3 0   75%
src/lexigram/admin/auth/permissions.py create_permission_context   3 0 0   100%
src/lexigram/admin/auth/permissions.py (no function)   57 0 5   100%
src/lexigram/admin/auth/protocols.py AdminAuthServiceProtocol.authenticate   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuthServiceProtocol.invalidate_session   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuthServiceProtocol.invalidate_all_user_sessions   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuthServiceProtocol.complete_mfa_login   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptStoreProtocol.insert   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptStoreProtocol.count_recent_failures   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptStoreProtocol.count_recent_failures_by_ip   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptStoreProtocol.clear_failures   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAccountLockoutStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAccountLockoutStoreProtocol.get_active_lockout   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAccountLockoutStoreProtocol.create_lockout   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAccountLockoutStoreProtocol.clear_lockout   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptServiceProtocol.check_ip_rate_limit   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptServiceProtocol.check_account_lockout   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptServiceProtocol.record_attempt   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminLoginAttemptServiceProtocol.clear_lockout   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuditLogStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuditLogStoreProtocol.insert   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuditLogStoreProtocol.query_recent   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuditLogServiceProtocol.log_event   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminAuditLogServiceProtocol.get_recent_events   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordPolicyServiceProtocol.validate   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminCsrfServiceProtocol.generate_token   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminCsrfServiceProtocol.validate_token   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminSessionServiceProtocol.create_session   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminSessionServiceProtocol.get_session   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminSessionServiceProtocol.touch_session   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminSessionServiceProtocol.revoke_session   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminSessionServiceProtocol.revoke_all_user_sessions   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordResetTokenStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordResetTokenStoreProtocol.create   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordResetTokenStoreProtocol.find_by_hash   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordResetTokenStoreProtocol.mark_consumed   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaStoreProtocol.is_enabled   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaStoreProtocol.get_secret   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaStoreProtocol.save_secret   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaStoreProtocol.disable   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaServiceProtocol.is_enabled   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaServiceProtocol.start_setup   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaServiceProtocol.confirm_setup   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaServiceProtocol.verify_code   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaServiceProtocol.disable   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminMfaServiceProtocol.get_factor   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationStoreProtocol.is_verified   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationStoreProtocol.find_user_by_token_hash   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationStoreProtocol.save_token   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationStoreProtocol.consume_token   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationStoreProtocol.clear_token   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailOtpStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailOtpStoreProtocol.save   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailOtpStoreProtocol.consume   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailOtpStoreProtocol.last_sent_at   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailOtpServiceProtocol.send_otp   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailOtpServiceProtocol.verify_otp   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationServiceProtocol.is_verified   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationServiceProtocol.is_required   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationServiceProtocol.send_verification   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationServiceProtocol.verify_token   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminEmailVerificationServiceProtocol.resend_verification   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordResetServiceProtocol.request_reset   0 0 1   100%
src/lexigram/admin/auth/protocols.py AdminPasswordResetServiceProtocol.confirm_reset   0 0 1   100%
src/lexigram/admin/auth/protocols.py (no function)   102 0 86   100%
src/lexigram/admin/auth/services/__init__.py (no function)   2 0 0   100%
src/lexigram/admin/auth/services/_cookie_config.py build_session_cookie_kwargs   2 0 0   100%
src/lexigram/admin/auth/services/_cookie_config.py (no function)   10 0 0   100%
src/lexigram/admin/auth/services/audit_log_service.py AdminAuditLogService.__init__   2 0 0   100%
src/lexigram/admin/auth/services/audit_log_service.py AdminAuditLogService.log_event   17 17 0   0%
src/lexigram/admin/auth/services/audit_log_service.py AdminAuditLogService.record   6 6 0   0%
src/lexigram/admin/auth/services/audit_log_service.py AdminAuditLogService.log   10 10 0   0%
src/lexigram/admin/auth/services/audit_log_service.py AdminAuditLogService.query   1 1 0   0%
src/lexigram/admin/auth/services/audit_log_service.py AdminAuditLogService.get_recent_events   5 5 0   0%
src/lexigram/admin/auth/services/audit_log_service.py (no function)   20 0 0   100%
src/lexigram/admin/auth/services/auth_service.py AdminAuthService.__init__   9 0 0   100%
src/lexigram/admin/auth/services/auth_service.py AdminAuthService.authenticate   43 13 0   70%
src/lexigram/admin/auth/services/auth_service.py AdminAuthService.complete_mfa_login   36 1 0   97%
src/lexigram/admin/auth/services/auth_service.py AdminAuthService.invalidate_session   3 3 0   0%
src/lexigram/admin/auth/services/auth_service.py AdminAuthService.invalidate_all_user_sessions   3 3 0   0%
src/lexigram/admin/auth/services/auth_service.py (no function)   19 0 0   100%
src/lexigram/admin/auth/services/csrf_service.py AdminCsrfService.__init__   2 0 0   100%
src/lexigram/admin/auth/services/csrf_service.py AdminCsrfService.token_lifetime_seconds   1 0 0   100%
src/lexigram/admin/auth/services/csrf_service.py AdminCsrfService.generate_token   8 0 0   100%
src/lexigram/admin/auth/services/csrf_service.py AdminCsrfService.validate_token   20 8 0   60%
src/lexigram/admin/auth/services/csrf_service.py (no function)   19 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminRateLimiterProtocol.check_ip_rate_limit   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminRateLimiterProtocol.record_attempt   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminLockoutProtocol.check_account_lockout   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminLockoutProtocol.clear_lockout   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminAuditProtocol.log_login_success   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminAuditProtocol.log_login_failure   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py AdminAuditProtocol.log_logout   0 0 1   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter.__init__   6 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter.authenticate_admin   33 4 0   88%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter.login   1 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter.logout   4 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter.resolve_admin_user   4 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter.resolve_admin_user_from_scope   4 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py DelegatingAuthAdapter._wrap_framework_user   1 0 0   100%
src/lexigram/admin/auth/services/delegating_auth_adapter.py (no function)   30 0 15   100%
src/lexigram/admin/auth/services/email_otp_service.py AdminEmailOtpService.__init__   4 0 0   100%
src/lexigram/admin/auth/services/email_otp_service.py AdminEmailOtpService.send_otp   23 0 0   100%
src/lexigram/admin/auth/services/email_otp_service.py AdminEmailOtpService.verify_otp   8 0 0   100%
src/lexigram/admin/auth/services/email_otp_service.py AdminEmailOtpService._audit_failure   3 1 0   67%
src/lexigram/admin/auth/services/email_otp_service.py (no function)   19 0 4   100%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService.__init__   7 0 0   100%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService.is_verified   1 0 0   100%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService.is_required   3 0 0   100%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService.send_verification   24 5 0   79%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService.verify_token   12 0 0   100%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService.resend_verification   1 0 0   100%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService._is_rate_limited   16 1 0   94%
src/lexigram/admin/auth/services/email_verification_service.py AdminEmailVerificationService._audit_failure   3 0 0   100%
src/lexigram/admin/auth/services/email_verification_service.py (no function)   24 0 3   100%
src/lexigram/admin/auth/services/login_attempt_service.py AdminLoginAttemptService.__init__   10 0 0   100%
src/lexigram/admin/auth/services/login_attempt_service.py AdminLoginAttemptService.check_ip_rate_limit   28 28 0   0%
src/lexigram/admin/auth/services/login_attempt_service.py AdminLoginAttemptService.check_account_lockout   10 10 0   0%
src/lexigram/admin/auth/services/login_attempt_service.py AdminLoginAttemptService.record_attempt   20 20 0   0%
src/lexigram/admin/auth/services/login_attempt_service.py AdminLoginAttemptService.clear_lockout   6 0 0   100%
src/lexigram/admin/auth/services/login_attempt_service.py (no function)   18 0 0   100%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.__init__   3 0 0   100%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.get_factor   1 1 0   0%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.is_enabled   1 1 0   0%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.start_setup   6 0 0   100%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.confirm_setup   9 0 0   100%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.verify_code   4 0 0   100%
src/lexigram/admin/auth/services/mfa_service.py AdminMfaService.disable   10 0 0   100%
src/lexigram/admin/auth/services/mfa_service.py (no function)   19 0 0   100%
src/lexigram/admin/auth/services/password_policy_service.py _default_policy   1 0 0   100%
src/lexigram/admin/auth/services/password_policy_service.py AdminPasswordPolicyService.__init__   2 0 0   100%
src/lexigram/admin/auth/services/password_policy_service.py AdminPasswordPolicyService.validate   11 0 0   100%
src/lexigram/admin/auth/services/password_policy_service.py AdminPasswordPolicyService.is_valid   1 0 0   100%
src/lexigram/admin/auth/services/password_policy_service.py AdminPasswordPolicyService._map_failures   8 2 0   75%
src/lexigram/admin/auth/services/password_policy_service.py AdminPasswordPolicyService._message_for   15 3 0   80%
src/lexigram/admin/auth/services/password_policy_service.py AdminPasswordPolicyService._email_violation   7 1 0   86%
src/lexigram/admin/auth/services/password_policy_service.py (no function)   20 0 0   100%
src/lexigram/admin/auth/services/password_reset_service.py AdminPasswordResetService.__init__   11 0 0   100%
src/lexigram/admin/auth/services/password_reset_service.py AdminPasswordResetService.request_reset   20 1 0   95%
src/lexigram/admin/auth/services/password_reset_service.py AdminPasswordResetService._is_rate_limited   16 1 0   94%
src/lexigram/admin/auth/services/password_reset_service.py AdminPasswordResetService.confirm_reset   28 3 0   89%
src/lexigram/admin/auth/services/password_reset_service.py (no function)   22 0 0   100%
src/lexigram/admin/auth/services/session_service.py AdminSessionService.__init__   5 0 0   100%
src/lexigram/admin/auth/services/session_service.py AdminSessionService.create_session   10 0 0   100%
src/lexigram/admin/auth/services/session_service.py AdminSessionService.get_session   30 11 0   63%
src/lexigram/admin/auth/services/session_service.py AdminSessionService._sign_fingerprint   2 0 0   100%
src/lexigram/admin/auth/services/session_service.py AdminSessionService._verify_fingerprint   2 0 0   100%
src/lexigram/admin/auth/services/session_service.py AdminSessionService.touch_session   3 3 0   0%
src/lexigram/admin/auth/services/session_service.py AdminSessionService.revoke_session   2 2 0   0%
src/lexigram/admin/auth/services/session_service.py AdminSessionService.revoke_all_user_sessions   2 2 0   0%
src/lexigram/admin/auth/services/session_service.py _parse_dt   15 11 0   27%
src/lexigram/admin/auth/services/session_service.py (no function)   26 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.__init__   1 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.create_session   14 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.validate_session   10 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.get_session   8 1 0   88%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.get_active_sessions   2 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.revoke_session   3 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.revoke_all_sessions   3 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager.update_activity   2 0 0   100%
src/lexigram/admin/auth/session_manager.py AdminSessionManager._row_to_session   1 0 0   100%
src/lexigram/admin/auth/session_manager.py (no function)   24 0 0   100%
src/lexigram/admin/auth/store/__init__.py (no function)   9 0 0   100%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.__init__   1 0 0   100%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.get_admin_count   1 0 0   100%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.ensure_schema   1 1 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.list_users   1 1 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.create_user   3 0 0   100%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.get_user_by_email   4 1 0   75%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.claim_first_admin   4 4 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.get_user_by_id   2 2 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.get_by_id   1 1 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.update_user   4 0 0   100%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.delete_user   1 1 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter.authenticate   2 2 0   0%
src/lexigram/admin/auth/store/app_principal.py AppPrincipalUserStoreAdapter._to_record   1 0 0   100%
src/lexigram/admin/auth/store/app_principal.py (no function)   22 0 0   100%
src/lexigram/admin/auth/store/audit_log_sql.py AdminAuditLogSqlStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/audit_log_sql.py AdminAuditLogSqlStore.ensure_schema   16 3 0   81%
src/lexigram/admin/auth/store/audit_log_sql.py AdminAuditLogSqlStore.insert   8 8 0   0%
src/lexigram/admin/auth/store/audit_log_sql.py AdminAuditLogSqlStore.query_recent   18 18 0   0%
src/lexigram/admin/auth/store/audit_log_sql.py _is_uuid_string   5 5 0   0%
src/lexigram/admin/auth/store/audit_log_sql.py _extract_rows   5 5 0   0%
src/lexigram/admin/auth/store/audit_log_sql.py _row_to_event   7 7 0   0%
src/lexigram/admin/auth/store/audit_log_sql.py (no function)   28 0 0   100%
src/lexigram/admin/auth/store/auth_provider.py AuthProviderAdminUserStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/auth_provider.py AuthProviderAdminUserStore.get_by_id   6 3 0   50%
src/lexigram/admin/auth/store/auth_provider.py AuthProviderAdminUserStore.get_by_email   4 1 0   75%
src/lexigram/admin/auth/store/auth_provider.py AuthProviderAdminUserStore.get_by_username   4 1 0   75%
src/lexigram/admin/auth/store/auth_provider.py AuthProviderAdminUserStore.authenticate   18 13 0   28%
src/lexigram/admin/auth/store/auth_provider.py AuthProviderAdminUserStore.count   7 3 0   57%
src/lexigram/admin/auth/store/auth_provider.py (no function)   14 0 3   100%
src/lexigram/admin/auth/store/base.py AbstractAdminUserStore.get_by_id   0 0 1   100%
src/lexigram/admin/auth/store/base.py AbstractAdminUserStore.get_by_email   0 0 1   100%
src/lexigram/admin/auth/store/base.py AbstractAdminUserStore.get_by_username   0 0 1   100%
src/lexigram/admin/auth/store/base.py AbstractAdminUserStore.authenticate   0 0 1   100%
src/lexigram/admin/auth/store/base.py AbstractAdminUserStore.count   0 0 1   100%
src/lexigram/admin/auth/store/base.py (no function)   15 0 8   100%
src/lexigram/admin/auth/store/database.py DatabaseAdminUserStore.__init__   2 2 0   0%
src/lexigram/admin/auth/store/database.py DatabaseAdminUserStore.get_by_id   9 9 0   0%
src/lexigram/admin/auth/store/database.py DatabaseAdminUserStore.get_by_email   9 9 0   0%
src/lexigram/admin/auth/store/database.py DatabaseAdminUserStore.get_by_username   9 9 0   0%
src/lexigram/admin/auth/store/database.py DatabaseAdminUserStore.authenticate   18 18 0   0%
src/lexigram/admin/auth/store/database.py DatabaseAdminUserStore.count   4 4 0   0%
src/lexigram/admin/auth/store/database.py (no function)   15 0 4   100%
src/lexigram/admin/auth/store/direct_sql.py _parse_list   15 8 0   47%
src/lexigram/admin/auth/store/direct_sql.py _row_to_user   4 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py _row_to_user._UserObj.__init__   7 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py _row_to_user._UserObj.record_login   0 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py _CreatedUser.__init__   4 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.__init__   3 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.ensure_schema   32 5 0   84%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.list_users   9 2 0   78%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.get_admin_count   10 10 0   0%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.create_user   71 14 0   80%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.create_user._CreatedUser.__init__   4 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.create_user._CreatedUser.__init__   4 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.claim_first_admin   24 6 0   75%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.get_user_by_email   21 5 0   76%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.get_user_by_id   19 19 0   0%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.update_user   4 0 0   100%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.authenticate   15 15 0   0%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.delete_user   2 2 0   0%
src/lexigram/admin/auth/store/direct_sql.py DirectSQLAdminUserStore.get_by_id   1 1 0   0%
src/lexigram/admin/auth/store/direct_sql.py (no function)   32 0 0   100%
src/lexigram/admin/auth/store/email_otp_sql.py _parse_dt   8 3 0   62%
src/lexigram/admin/auth/store/email_otp_sql.py AdminEmailOtpSqlStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/email_otp_sql.py AdminEmailOtpSqlStore.ensure_schema   7 1 0   86%
src/lexigram/admin/auth/store/email_otp_sql.py AdminEmailOtpSqlStore.save   1 0 0   100%
src/lexigram/admin/auth/store/email_otp_sql.py AdminEmailOtpSqlStore.consume   5 1 0   80%
src/lexigram/admin/auth/store/email_otp_sql.py AdminEmailOtpSqlStore.last_sent_at   11 2 0   82%
src/lexigram/admin/auth/store/email_otp_sql.py (no function)   19 0 0   100%
src/lexigram/admin/auth/store/email_verification_sql.py _parse_dt   8 3 0   62%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.ensure_schema   8 1 0   88%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.is_verified   11 2 0   82%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.find_user_by_token_hash   11 2 0   82%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.save_token   1 0 0   100%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.consume_token   5 1 0   80%
src/lexigram/admin/auth/store/email_verification_sql.py AdminEmailVerificationSqlStore.clear_token   1 0 0   100%
src/lexigram/admin/auth/store/email_verification_sql.py (no function)   20 0 0   100%
src/lexigram/admin/auth/store/lockout_sql.py AdminAccountLockoutSqlStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/lockout_sql.py AdminAccountLockoutSqlStore.ensure_schema   14 1 0   93%
src/lexigram/admin/auth/store/lockout_sql.py AdminAccountLockoutSqlStore.get_active_lockout   25 25 0   0%
src/lexigram/admin/auth/store/lockout_sql.py AdminAccountLockoutSqlStore.create_lockout   7 7 0   0%
src/lexigram/admin/auth/store/lockout_sql.py AdminAccountLockoutSqlStore.clear_lockout   4 4 0   0%
src/lexigram/admin/auth/store/lockout_sql.py AdminAccountLockoutSqlStore._extract_rows   5 5 0   0%
src/lexigram/admin/auth/store/lockout_sql.py (no function)   20 0 3   100%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore.ensure_schema   14 1 0   93%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore.insert   5 5 0   0%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore.count_recent_failures   6 0 0   100%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore.count_recent_failures_by_ip   6 6 0   0%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore.clear_failures   4 4 0   0%
src/lexigram/admin/auth/store/login_attempt_sql.py AdminLoginAttemptSqlStore._extract_count   7 4 0   43%
src/lexigram/admin/auth/store/login_attempt_sql.py (no function)   20 0 2   100%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.__init__   23 16 0   30%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.ensure_schema   1 1 0   0%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.get_by_id   1 1 0   0%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.get_by_email   1 1 0   0%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.get_by_username   1 1 0   0%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.authenticate   14 14 0   0%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.count   1 0 0   100%
src/lexigram/admin/auth/store/memory.py MemoryAdminUserStore.claim_first_admin   8 0 0   100%
src/lexigram/admin/auth/store/memory.py (no function)   21 0 3   100%
src/lexigram/admin/auth/store/mfa_sql.py AdminMfaSqlStore.__init__   3 0 0   100%
src/lexigram/admin/auth/store/mfa_sql.py AdminMfaSqlStore.ensure_schema   9 1 0   89%
src/lexigram/admin/auth/store/mfa_sql.py AdminMfaSqlStore.is_enabled   1 0 0   100%
src/lexigram/admin/auth/store/mfa_sql.py AdminMfaSqlStore.get_secret   17 2 0   88%
src/lexigram/admin/auth/store/mfa_sql.py AdminMfaSqlStore.save_secret   2 0 0   100%
src/lexigram/admin/auth/store/mfa_sql.py AdminMfaSqlStore.disable   1 0 0   100%
src/lexigram/admin/auth/store/mfa_sql.py (no function)   18 0 0   100%
src/lexigram/admin/auth/store/password_reset_token_sql.py _parse_dt   8 2 0   75%
src/lexigram/admin/auth/store/password_reset_token_sql.py AdminPasswordResetTokenSqlStore.__init__   2 0 0   100%
src/lexigram/admin/auth/store/password_reset_token_sql.py AdminPasswordResetTokenSqlStore.ensure_schema   7 1 0   86%
src/lexigram/admin/auth/store/password_reset_token_sql.py AdminPasswordResetTokenSqlStore.create   1 0 0   100%
src/lexigram/admin/auth/store/password_reset_token_sql.py AdminPasswordResetTokenSqlStore.find_by_hash   11 2 0   82%
src/lexigram/admin/auth/store/password_reset_token_sql.py AdminPasswordResetTokenSqlStore.mark_consumed   5 1 0   80%
src/lexigram/admin/auth/store/password_reset_token_sql.py (no function)   19 0 0   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.get_admin_count   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.list_users   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.create_user   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.claim_first_admin   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.get_user_by_email   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.get_user_by_id   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.get_by_id   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.update_user   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.delete_user   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py AdminUserStoreProtocol.authenticate   0 0 1   100%
src/lexigram/admin/auth/store/protocols.py (no function)   18 0 12   100%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.__init__   2 0 0   100%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.ensure_schema   14 4 0   71%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository._table_exists   15 4 0   73%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository._create_table_sql   3 1 0   67%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository._create_indexes   7 2 0   71%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.insert   8 3 0   62%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.find_active   7 1 0   86%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.find_active_by_user   4 4 0   0%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.revoke   3 3 0   0%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.revoke_all   3 3 0   0%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository.update_activity   3 3 0   0%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository._extract_rows   5 2 0   60%
src/lexigram/admin/auth/store/session_sql.py AdminSessionSqlRepository._decode_fingerprint   7 7 0   0%
src/lexigram/admin/auth/store/session_sql.py (no function)   26 0 2   100%
src/lexigram/admin/auth/types.py (no function)   105 0 0   100%
src/lexigram/admin/auth/user.py AdminUserRecord.has_role   1 1 0   0%
src/lexigram/admin/auth/user.py AdminUserRecord.has_permission   1 1 0   0%
src/lexigram/admin/auth/user.py (no function)   15 0 0   100%
src/lexigram/admin/bootstrap/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/bootstrap/factory.py create_app   17 17 0   0%
src/lexigram/admin/bootstrap/factory.py create_admin_provider   14 14 0   0%
src/lexigram/admin/bootstrap/factory.py (no function)   15 0 4   100%
src/lexigram/admin/builders/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.__init__   14 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.create   1 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.from_config   13 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.title   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.prefix   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.require_auth   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.theme   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.debug   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.features   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.feature   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.extension   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.resources   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.resource   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.controllers   2 2 0   0%
src/lexigram/admin/builders/builder.py AdminBuilder.controller   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.navigation_groups   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.navigation_group   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.commands   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.command   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.service   2 0 0   100%
src/lexigram/admin/builders/builder.py AdminBuilder.build   26 26 0   0%
src/lexigram/admin/builders/builder.py (no function)   29 0 2   100%
src/lexigram/admin/cache/__init__.py (no function)   0 0 0   100%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.__init__   1 0 0   100%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.get   6 2 0   67%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.set   7 2 0   71%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.delete   7 2 0   71%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.delete_pattern   6 2 0   67%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.get_or_set   6 2 0   67%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.exists   6 2 0   67%
src/lexigram/admin/cache/adapter.py AdminCacheServiceAdapter.clear   7 2 0   71%
src/lexigram/admin/cache/adapter.py (no function)   20 4 0   80%
src/lexigram/admin/cli/__init__.py (no function)   9 0 0   100%
src/lexigram/admin/cli/commands/__init__.py (no function)   0 0 0   100%
src/lexigram/admin/cli/commands/search.py create_app   4 0 0   100%
src/lexigram/admin/cli/commands/search.py create_app.reindex   1 1 0   0%
src/lexigram/admin/cli/commands/search.py _run_reindex   67 67 0   0%
src/lexigram/admin/cli/commands/search.py _collect_searchable   17 0 0   100%
src/lexigram/admin/cli/commands/search.py _build_documents   13 0 0   100%
src/lexigram/admin/cli/commands/search.py _log_banner   4 4 0   0%
src/lexigram/admin/cli/commands/search.py _log_warn   2 2 0   0%
src/lexigram/admin/cli/commands/search.py (no function)   12 0 0   100%
src/lexigram/admin/cli/contributor.py AdminCliContributor.contributor_id   1 1 0   0%
src/lexigram/admin/cli/contributor.py AdminCliContributor.get_generators   1 1 0   0%
src/lexigram/admin/cli/contributor.py AdminCliContributor.get_commands   1 0 0   100%
src/lexigram/admin/cli/contributor.py AdminCliContributor.get_schema_setup   1 1 0   0%
src/lexigram/admin/cli/contributor.py (no function)   10 0 0   100%
src/lexigram/admin/cli/generators/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/cli/generators/admin_action.py AdminActionGenerator.__init__   1 1 0   0%
src/lexigram/admin/cli/generators/admin_action.py AdminActionGenerator.generate   16 16 0   0%
src/lexigram/admin/cli/generators/admin_action.py (no function)   10 0 0   100%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator.__init__   1 1 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator.generate   22 22 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._build_context   10 10 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._to_snake   3 3 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._to_pydantic_type   7 7 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._get_form_field_kwargs   16 16 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._generate_columns   13 13 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._generate_filters   12 12 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._label   1 1 0   0%
src/lexigram/admin/cli/generators/admin_resource.py AdminResourceGenerator._get_default_icon   3 3 0   0%
src/lexigram/admin/cli/generators/admin_resource.py (no function)   20 0 0   100%
src/lexigram/admin/cli/schema_setup.py ensure_tenant_configs   7 0 0   100%
src/lexigram/admin/cli/schema_setup.py (no function)   4 0 0   100%
src/lexigram/admin/clusters/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/clusters/base.py Cluster.__hash__   1 1 0   0%
src/lexigram/admin/clusters/base.py (no function)   18 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.__init__   2 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.with_defaults   3 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.register   5 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.all   1 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.by_slug   1 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.by_group   1 0 0   100%
src/lexigram/admin/clusters/registry.py ClusterRegistry.for_path   7 0 0   100%
src/lexigram/admin/clusters/registry.py (no function)   13 0 0   100%
src/lexigram/admin/config.py AdminSecurityConfig._map_legacy_setup_token   9 2 0   78%
src/lexigram/admin/config.py AdminAuthConfig.validate_security   10 2 0   80%
src/lexigram/admin/config.py AdminConfig.get_resource_config   1 1 0   0%
src/lexigram/admin/config.py AdminConfig.get_navigation_group   1 1 0   0%
src/lexigram/admin/config.py AdminConfig.is_feature_enabled   1 1 0   0%
src/lexigram/admin/config.py make_admin_config   1 1 0   0%
src/lexigram/admin/config.py default_admin_config   1 1 0   0%
src/lexigram/admin/config.py (no function)   313 0 0   100%
src/lexigram/admin/constants.py (no function)   25 2 0   92%
src/lexigram/admin/contributors/__init__.py (no function)   1 0 0   100%
src/lexigram/admin/contributors/base.py (no function)   3 0 0   100%
src/lexigram/admin/contributors/core.py _status_from_value   4 1 0   75%
src/lexigram/admin/contributors/core.py _framework_version   4 2 0   50%
src/lexigram/admin/contributors/core.py _SystemInfoPageHandler.__init__   1 0 0   100%
src/lexigram/admin/contributors/core.py _SystemInfoPageHandler.handle   6 0 0   100%
src/lexigram/admin/contributors/core.py CoreAdminContributor.__init__   7 0 0   100%
src/lexigram/admin/contributors/core.py CoreAdminContributor.on_admin_boot   14 1 0   93%
src/lexigram/admin/contributors/core.py CoreAdminContributor.on_admin_shutdown   3 1 0   67%
src/lexigram/admin/contributors/core.py CoreAdminContributor._start_activity_tail   9 2 0   78%
src/lexigram/admin/contributors/core.py CoreAdminContributor._drain_activity   4 1 0   75%
src/lexigram/admin/contributors/core.py CoreAdminContributor.get_dashboard_widgets   1 0 0   100%
src/lexigram/admin/contributors/core.py CoreAdminContributor.get_navigation_items   1 0 0   100%
src/lexigram/admin/contributors/core.py CoreAdminContributor.get_health_definitions   1 1 0   0%
src/lexigram/admin/contributors/core.py CoreAdminContributor.get_settings_panels   1 0 0   100%
src/lexigram/admin/contributors/core.py CoreAdminContributor.render_widget   26 4 0   85%
src/lexigram/admin/contributors/core.py CoreAdminContributor._chart_metrics_content   11 3 0   73%
src/lexigram/admin/contributors/core.py CoreAdminContributor._empty   1 0 0   100%
src/lexigram/admin/contributors/core.py CoreAdminContributor.render_health_check   11 1 0   91%
src/lexigram/admin/contributors/core.py (no function)   44 0 2   100%
src/lexigram/admin/contributors/exceptions.py ContributorPermissionError.__init__   4 0 0   100%
src/lexigram/admin/contributors/exceptions.py ContributorNotFoundError.__init__   2 0 0   100%
src/lexigram/admin/contributors/exceptions.py (no function)   9 0 0   100%
src/lexigram/admin/contributors/registry.py ContributorRegistry.__init__   1 0 0   100%
src/lexigram/admin/contributors/registry.py ContributorRegistry.with_defaults   1 0 0   100%
src/lexigram/admin/contributors/registry.py ContributorRegistry.register   1 0 0   100%
src/lexigram/admin/contributors/registry.py ContributorRegistry.get   1 0 0   100%
src/lexigram/admin/contributors/registry.py ContributorRegistry.get_all   1 0 0   100%
src/lexigram/admin/contributors/registry.py ContributorRegistry.get_by_group   1 0 0   100%
src/lexigram/admin/contributors/registry.py _priority_or_default   7 0 0   100%
src/lexigram/admin/contributors/registry.py (no function)   13 0 0   100%
src/lexigram/admin/contributors/resource_collector.py ResourceCollector.__init__   1 0 0   100%
src/lexigram/admin/contributors/resource_collector.py ResourceCollector.collect   12 0 0   100%
src/lexigram/admin/contributors/resource_collector.py (no function)   10 0 2   100%
src/lexigram/admin/controllers/__init__.py (no function)   10 0 0   100%
src/lexigram/admin/controllers/auth/__init__.py (no function)   10 0 0   100%
src/lexigram/admin/controllers/auth/core.py _humanize_error   3 0 0   100%
src/lexigram/admin/controllers/auth/core.py AuthCoreMixin.__init__   12 0 0   100%
src/lexigram/admin/controllers/auth/core.py AuthCoreMixin._fresh_csrf   3 0 0   100%
src/lexigram/admin/controllers/auth/core.py AuthCoreMixin._safe_next_url   3 0 0   100%
src/lexigram/admin/controllers/auth/core.py AuthCoreMixin._get_client_ip   4 1 0   75%
src/lexigram/admin/controllers/auth/core.py (no function)   23 0 0   100%
src/lexigram/admin/controllers/auth/login.py AuthLoginMixin.login_form   13 0 0   100%
src/lexigram/admin/controllers/auth/login.py AuthLoginMixin.login_submit   70 12 0   83%
src/lexigram/admin/controllers/auth/login.py AuthLoginMixin.logout   6 0 0   100%
src/lexigram/admin/controllers/auth/login.py (no function)   23 0 3   100%
src/lexigram/admin/controllers/auth/mfa.py AuthMfaMixin.mfa_challenge_form   14 1 0   93%
src/lexigram/admin/controllers/auth/mfa.py AuthMfaMixin.mfa_challenge_submit   32 4 0   88%
src/lexigram/admin/controllers/auth/mfa.py AuthMfaMixin.mfa_challenge_resend   18 4 0   78%
src/lexigram/admin/controllers/auth/mfa.py AuthMfaMixin.mfa_profile_form   30 5 0   83%
src/lexigram/admin/controllers/auth/mfa.py AuthMfaMixin.mfa_setup_submit   19 5 0   74%
src/lexigram/admin/controllers/auth/mfa.py AuthMfaMixin.mfa_disable_submit   19 5 0   74%
src/lexigram/admin/controllers/auth/mfa.py (no function)   27 0 3   100%
src/lexigram/admin/controllers/auth/password_reset.py AuthPasswordResetMixin.password_reset_request_form   10 1 0   90%
src/lexigram/admin/controllers/auth/password_reset.py AuthPasswordResetMixin.password_reset_request_submit   13 1 0   92%
src/lexigram/admin/controllers/auth/password_reset.py AuthPasswordResetMixin.password_reset_confirm_form   10 1 0   90%
src/lexigram/admin/controllers/auth/password_reset.py AuthPasswordResetMixin.password_reset_confirm_submit   22 5 0   77%
src/lexigram/admin/controllers/auth/password_reset.py (no function)   20 0 2   100%
src/lexigram/admin/controllers/auth/registration.py AuthRegistrationMixin.register_form   12 0 0   100%
src/lexigram/admin/controllers/auth/registration.py AuthRegistrationMixin.register_submit   57 8 0   86%
src/lexigram/admin/controllers/auth/registration.py AuthRegistrationMixin._audit_registration   10 4 0   60%
src/lexigram/admin/controllers/auth/registration.py AuthRegistrationMixin.verify_email_form   10 1 0   90%
src/lexigram/admin/controllers/auth/registration.py AuthRegistrationMixin.verify_email_resend   16 4 0   75%
src/lexigram/admin/controllers/auth/registration.py AuthRegistrationMixin.verify_email_token   11 1 0   91%
src/lexigram/admin/controllers/auth/registration.py (no function)   26 0 3   100%
src/lexigram/admin/controllers/base.py AdminController.__init__   4 0 0   100%
src/lexigram/admin/controllers/base.py AdminController.collect_routes   14 14 0   0%
src/lexigram/admin/controllers/base.py AdminController.current_user   1 0 0   100%
src/lexigram/admin/controllers/base.py AdminController._apply_theme_overrides   20 12 0   40%
src/lexigram/admin/controllers/base.py AdminController._apply_tenant_context   31 1 0   97%
src/lexigram/admin/controllers/base.py AdminController._apply_impersonation_context   18 0 0   100%
src/lexigram/admin/controllers/base.py AdminController.render_admin   10 2 0   80%
src/lexigram/admin/controllers/base.py AdminController.flash   1 0 0   100%
src/lexigram/admin/controllers/base.py AdminController.get_flash_messages   3 3 0   0%
src/lexigram/admin/controllers/base.py AdminController.generate_breadcrumbs   6 0 0   100%
src/lexigram/admin/controllers/base.py AdminController.build_specification   10 10 0   0%
src/lexigram/admin/controllers/base.py AdminController.parallel_fetch   2 2 0   0%
src/lexigram/admin/controllers/base.py AdminController.background_task   1 1 0   0%
src/lexigram/admin/controllers/base.py AdminController.get_routes   20 2 0   90%
src/lexigram/admin/controllers/base.py AdminController.get_routes.starlette_handler   4 4 0   0%
src/lexigram/admin/controllers/base.py AdminController.get_routes.index_handler   1 1 0   0%
src/lexigram/admin/controllers/base.py (no function)   30 0 0   100%
src/lexigram/admin/controllers/clusters.py ClusterCenterController.__init__   3 0 0   100%
src/lexigram/admin/controllers/clusters.py ClusterCenterController.index   14 0 0   100%
src/lexigram/admin/controllers/clusters.py ClusterCenterController._render_header   1 0 0   100%
src/lexigram/admin/controllers/clusters.py ClusterCenterController._render_overview   4 0 0   100%
src/lexigram/admin/controllers/clusters.py ClusterCenterController._render_card   4 0 0   100%
src/lexigram/admin/controllers/clusters.py ClusterCenterController._render_icon   5 2 0   60%
src/lexigram/admin/controllers/clusters.py (no function)   23 0 3   100%
src/lexigram/admin/controllers/command_palette.py CommandPaletteController.__init__   1 0 0   100%
src/lexigram/admin/controllers/command_palette.py CommandPaletteController.search   15 2 0   87%
src/lexigram/admin/controllers/command_palette.py (no function)   14 0 0   100%
src/lexigram/admin/controllers/dashboard.py _get_request_cache   2 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController.__init__   4 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController._size_to_grid_cols   2 2 0   0%
src/lexigram/admin/controllers/dashboard.py DashboardController.index   38 3 0   92%
src/lexigram/admin/controllers/dashboard.py DashboardController._render_with_flash   3 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController._get_resource_list   5 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController.get_request_cache   1 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController.aggregate_metric   7 1 0   86%
src/lexigram/admin/controllers/dashboard.py DashboardController.format_time_series   1 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController._format_timestamp_label   9 1 0   89%
src/lexigram/admin/controllers/dashboard.py DashboardController.aggregate_time_series   10 0 0   100%
src/lexigram/admin/controllers/dashboard.py DashboardController._get_bucket_key   10 1 0   90%
src/lexigram/admin/controllers/dashboard.py DashboardController._parse_bucket_key   10 1 0   90%
src/lexigram/admin/controllers/dashboard.py (no function)   35 0 0   100%
src/lexigram/admin/controllers/error.py ErrorController.__init__   1 0 0   100%
src/lexigram/admin/controllers/error.py ErrorController._render_error_page   2 2 0   0%
src/lexigram/admin/controllers/error.py ErrorController.error_401   2 2 0   0%
src/lexigram/admin/controllers/error.py ErrorController.error_403   1 1 0   0%
src/lexigram/admin/controllers/error.py ErrorController.error_404   1 1 0   0%
src/lexigram/admin/controllers/error.py ErrorController.error_500   1 1 0   0%
src/lexigram/admin/controllers/error.py (no function)   21 0 0   100%
src/lexigram/admin/controllers/impersonation.py ImpersonationController.__init__   2 0 0   100%
src/lexigram/admin/controllers/impersonation.py ImpersonationController.get_routes   1 0 0   100%
src/lexigram/admin/controllers/impersonation.py ImpersonationController.start_impersonation   18 2 0   89%
src/lexigram/admin/controllers/impersonation.py ImpersonationController.stop_impersonation   8 0 0   100%
src/lexigram/admin/controllers/impersonation.py ImpersonationController._toast_error   3 0 0   100%
src/lexigram/admin/controllers/impersonation.py (no function)   19 0 0   100%
src/lexigram/admin/controllers/infrastructure.py InfrastructureController.__init__   1 0 0   100%
src/lexigram/admin/controllers/infrastructure.py (no function)   9 0 0   100%
src/lexigram/admin/controllers/plugins.py _load_toolbox   6 3 0   50%
src/lexigram/admin/controllers/plugins.py PluginsController.__init__   4 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController.index   10 1 0   90%
src/lexigram/admin/controllers/plugins.py PluginsController.toggle   30 2 0   93%
src/lexigram/admin/controllers/plugins.py PluginsController.toggle.flip   4 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._render_empty   1 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._render_list   2 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._render_row   4 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._is_known   1 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._user_permissions   2 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._user_is_superadmin   3 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._user_can_manage   1 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._get_csrf_token   7 3 0   57%
src/lexigram/admin/controllers/plugins.py PluginsController._csrf_ok   2 0 0   100%
src/lexigram/admin/controllers/plugins.py PluginsController._audit   8 2 0   75%
src/lexigram/admin/controllers/plugins.py PluginsController._error_redirect   1 0 0   100%
src/lexigram/admin/controllers/plugins.py (no function)   36 0 4   100%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.__init__   7 0 0   100%
src/lexigram/admin/controllers/pool_health.py PoolHealthController._require_pool_manager   3 0 0   100%
src/lexigram/admin/controllers/pool_health.py PoolHealthController._user_permissions   2 0 0   100%
src/lexigram/admin/controllers/pool_health.py PoolHealthController._user_is_superadmin   3 0 0   100%
src/lexigram/admin/controllers/pool_health.py PoolHealthController._audit   7 1 0   86%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.get_all_health   17 0 0   100%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.get_pool_health   18 3 0   83%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.reconnect_pool   17 4 0   76%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.get_pool_stats_summary   19 4 0   79%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.get_prometheus_metrics   17 3 0   82%
src/lexigram/admin/controllers/pool_health.py PoolHealthController.get_json_metrics   12 3 0   75%
src/lexigram/admin/controllers/pool_health.py (no function)   27 0 5   100%
src/lexigram/admin/controllers/profile.py ProfileController.__init__   4 0 0   100%
src/lexigram/admin/controllers/profile.py ProfileController._csrf_token   7 1 0   86%
src/lexigram/admin/controllers/profile.py ProfileController._csrf_ok   4 4 0   0%
src/lexigram/admin/controllers/profile.py ProfileController._redirect   2 2 0   0%
src/lexigram/admin/controllers/profile.py ProfileController._audit   9 9 0   0%
src/lexigram/admin/controllers/profile.py ProfileController.profile_page   19 4 0   79%
src/lexigram/admin/controllers/profile.py ProfileController.password_submit   32 32 0   0%
src/lexigram/admin/controllers/profile.py (no function)   29 0 0   100%
src/lexigram/admin/controllers/progress.py _snap_to_dict   1 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker.__init__   2 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker.update   1 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker.complete   2 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker.fail   2 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker.get   1 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker.subscribe   13 0 0   100%
src/lexigram/admin/controllers/progress.py LocalProgressTracker._publish   3 0 0   100%
src/lexigram/admin/controllers/progress.py ProgressController.__init__   5 0 0   100%
src/lexigram/admin/controllers/progress.py ProgressController.stream_progress   2 0 0   100%
src/lexigram/admin/controllers/progress.py ProgressController.stream_progress.event_generator   12 4 0   67%
src/lexigram/admin/controllers/progress.py ProgressController.get_task_status   5 0 0   100%
src/lexigram/admin/controllers/progress.py (no function)   27 0 2   100%
src/lexigram/admin/controllers/resource/__init__.py (no function)   16 0 0   100%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin.bulk_delete_confirm   5 5 0   0%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin.bulk_purge_confirm   5 0 0   100%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin.bulk_restore_confirm   5 0 0   100%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin.bulk_action   15 0 0   100%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin.execute_bulk_action   17 1 0   94%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin._should_dispatch_via_tasks   7 2 0   71%
src/lexigram/admin/controllers/resource/bulk.py ResourceBulkMixin._dispatch_via_tasks   6 6 0   0%
src/lexigram/admin/controllers/resource/bulk.py (no function)   15 0 2   100%
src/lexigram/admin/controllers/resource/core.py ResourceCoreMixin.__init__   5 1 0   80%
src/lexigram/admin/controllers/resource/core.py ResourceCoreMixin.set_audit_logger   1 0 0   100%
src/lexigram/admin/controllers/resource/core.py ResourceCoreMixin.set_revision_service   1 1 0   0%
src/lexigram/admin/controllers/resource/core.py ResourceCoreMixin._record_revision   9 7 0   22%
src/lexigram/admin/controllers/resource/core.py ResourceCoreMixin._emit_audit   11 0 0   100%
src/lexigram/admin/controllers/resource/core.py ResourceCoreMixin.get_data_source   3 3 0   0%
src/lexigram/admin/controllers/resource/core.py (no function)   15 0 2   100%
src/lexigram/admin/controllers/resource/detail.py ResourceDetailMixin.detail   11 1 0   91%
src/lexigram/admin/controllers/resource/detail.py ResourceDetailMixin.render_detail   1 0 0   100%
src/lexigram/admin/controllers/resource/detail.py ResourceDetailMixin.render_detail_partial   1 0 0   100%
src/lexigram/admin/controllers/resource/detail.py (no function)   12 0 2   100%
src/lexigram/admin/controllers/resource/imports.py ResourceImportMixin._find_import_action   1 1 0   0%
src/lexigram/admin/controllers/resource/imports.py ResourceImportMixin.import_example   4 4 0   0%
src/lexigram/admin/controllers/resource/imports.py ResourceImportMixin.import_report   7 7 0   0%
src/lexigram/admin/controllers/resource/imports.py (no function)   8 0 2   100%
src/lexigram/admin/controllers/resource/list.py ResourceListMixin.list_view   8 1 0   88%
src/lexigram/admin/controllers/resource/list.py ResourceListMixin._build_query   14 4 0   71%
src/lexigram/admin/controllers/resource/list.py ResourceListMixin.render_list   1 0 0   100%
src/lexigram/admin/controllers/resource/list.py ResourceListMixin.render_list_partial   5 0 0   100%
src/lexigram/admin/controllers/resource/list.py (no function)   16 0 2   100%
src/lexigram/admin/controllers/resource/meta.py ResourceMeta.from_dict   1 0 0   100%
src/lexigram/admin/controllers/resource/meta.py (no function)   23 0 0   100%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.create_form   4 1 0   75%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.create   25 4 0   84%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.validate_create   1 0 0   100%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.edit_form   9 1 0   89%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.update   30 8 0   73%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.validate_update   1 0 0   100%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.delete_confirm   17 17 0   0%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.delete   18 0 0   100%
src/lexigram/admin/controllers/resource/mutation.py ResourceMutationMixin.restore   15 15 0   0%
src/lexigram/admin/controllers/resource/mutation.py (no function)   19 0 2   100%
src/lexigram/admin/controllers/resource/render.py ResourceRenderMixin.render_form   2 0 0   100%
src/lexigram/admin/controllers/resource/render.py ResourceRenderMixin.render_form_partial   5 0 0   100%
src/lexigram/admin/controllers/resource/render.py (no function)   10 0 2   100%
src/lexigram/admin/controllers/resource/routes.py ResourceRouteMixin.get_routes   3 0 0   100%
src/lexigram/admin/controllers/resource/routes.py (no function)   4 0 2   100%
src/lexigram/admin/controllers/search.py SearchController.__init__   1 0 0   100%
src/lexigram/admin/controllers/search.py SearchController.search   9 0 0   100%
src/lexigram/admin/controllers/search.py SearchController._render_page   6 0 0   100%
src/lexigram/admin/controllers/search.py SearchController._render_results   22 0 0   100%
src/lexigram/admin/controllers/search.py (no function)   10 0 3   100%
src/lexigram/admin/controllers/settings.py SettingsController.__init__   5 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController._store_name   1 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController._user_permissions   2 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController._user_is_superadmin   3 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController._build_categories   10 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController._build_categories._is_visible   1 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController._get_csrf_token   9 3 0   67%
src/lexigram/admin/controllers/settings.py SettingsController._audit   7 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController.index   5 2 0   60%
src/lexigram/admin/controllers/settings.py SettingsController.spec_view   17 0 0   100%
src/lexigram/admin/controllers/settings.py SettingsController.save_spec   46 4 0   91%
src/lexigram/admin/controllers/settings.py SettingsController._render_toast   1 0 0   100%
src/lexigram/admin/controllers/settings.py (no function)   36 0 4   100%
src/lexigram/admin/controllers/setup.py SetupController.__init__   8 0 0   100%
src/lexigram/admin/controllers/setup.py SetupController._fresh_csrf   3 0 0   100%
src/lexigram/admin/controllers/setup.py SetupController.setup_form   13 0 0   100%
src/lexigram/admin/controllers/setup.py SetupController.setup_submit   65 6 0   91%
src/lexigram/admin/controllers/setup.py SetupController._get_client_ip   4 0 0   100%
src/lexigram/admin/controllers/setup.py _hash_password   2 0 0   100%
src/lexigram/admin/controllers/setup.py (no function)   29 0 0   100%
src/lexigram/admin/controllers/tenancy.py TenancyController.__init__   3 0 0   100%
src/lexigram/admin/controllers/tenancy.py TenancyController.get_routes   1 0 0   100%
src/lexigram/admin/controllers/tenancy.py TenancyController.set_tenant   18 0 0   100%
src/lexigram/admin/controllers/tenancy.py TenancyController._audit   7 2 0   71%
src/lexigram/admin/controllers/tenancy.py (no function)   20 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController.__init__   6 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController._get_csrf_token   8 6 0   25%
src/lexigram/admin/controllers/widgets.py WidgetController._user_has_edit_permission   5 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController._user_permissions   2 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController._user_is_superadmin   3 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController._has_required_permission   5 1 0   80%
src/lexigram/admin/controllers/widgets.py WidgetController._audit   7 1 0   86%
src/lexigram/admin/controllers/widgets.py WidgetController.get_routes   15 2 0   87%
src/lexigram/admin/controllers/widgets.py WidgetController.get_routes.starlette_handler   7 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController.render_widget   24 2 0   92%
src/lexigram/admin/controllers/widgets.py WidgetController._wrap_widget_body   9 2 0   78%
src/lexigram/admin/controllers/widgets.py WidgetController._render_error_card   7 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController.render_health_check   12 2 0   83%
src/lexigram/admin/controllers/widgets.py WidgetController.widget_config_popup   25 0 0   100%
src/lexigram/admin/controllers/widgets.py WidgetController.save_widget_config   29 6 0   79%
src/lexigram/admin/controllers/widgets.py WidgetController.reorder_widgets   14 10 0   29%
src/lexigram/admin/controllers/widgets.py WidgetController.customize_all_widgets   30 2 0   93%
src/lexigram/admin/controllers/widgets.py WidgetController.save_all_widget_configs   30 26 0   13%
src/lexigram/admin/controllers/widgets.py (no function)   51 0 0   100%
src/lexigram/admin/core/__init__.py __getattr__   7 7 0   0%
src/lexigram/admin/core/__init__.py __dir__   1 1 0   0%
src/lexigram/admin/core/__init__.py (no function)   6 0 10   100%
src/lexigram/admin/core/cache.py default_key_builder   13 13 0   0%
src/lexigram/admin/core/cache.py AdminCacheService.__init__   1 1 0   0%
src/lexigram/admin/core/cache.py AdminCacheService.get   2 2 0   0%
src/lexigram/admin/core/cache.py AdminCacheService.set   2 2 0   0%
src/lexigram/admin/core/cache.py AdminCacheService.delete   2 2 0   0%
src/lexigram/admin/core/cache.py AdminCacheService.delete_pattern   2 2 0   0%
src/lexigram/admin/core/cache.py AdminCacheService.get_or_set   8 8 0   0%
src/lexigram/admin/core/cache.py UserRoleProviderProtocol.get_roles   0 0 1   100%
src/lexigram/admin/core/cache.py UserRoleProviderProtocol.get_role_permissions   0 0 1   100%
src/lexigram/admin/core/cache.py CachedPermissionService.__init__   4 4 0   0%
src/lexigram/admin/core/cache.py CachedPermissionService.get_permissions   23 23 0   0%
src/lexigram/admin/core/cache.py CachedPermissionService.invalidate_user   4 4 0   0%
src/lexigram/admin/core/cache.py CachedPermissionService.invalidate_all   3 3 0   0%
src/lexigram/admin/core/cache.py CachedPermissionService.has_permission   6 6 0   0%
src/lexigram/admin/core/cache.py (no function)   27 27 4   0%
src/lexigram/admin/core/decorators.py _fallback_singleton   3 3 0   0%
src/lexigram/admin/core/decorators.py _fallback_singleton.new_method   4 4 0   0%
src/lexigram/admin/core/decorators.py _fallback_scoped   1 1 0   0%
src/lexigram/admin/core/decorators.py _fallback_transient   1 1 0   0%
src/lexigram/admin/core/decorators.py singleton   3 1 0   67%
src/lexigram/admin/core/decorators.py scoped   3 1 0   67%
src/lexigram/admin/core/decorators.py transient   3 1 0   67%
src/lexigram/admin/core/decorators.py injectable   2 0 0   100%
src/lexigram/admin/core/decorators.py injectable.decorator   8 0 0   100%
src/lexigram/admin/core/decorators.py ScopeContext.__init__   1 0 0   100%
src/lexigram/admin/core/decorators.py ScopeContext.__enter__   1 0 0   100%
src/lexigram/admin/core/decorators.py ScopeContext.__exit__   1 0 0   100%
src/lexigram/admin/core/decorators.py ScopeContext.__aenter__   1 0 0   100%
src/lexigram/admin/core/decorators.py ScopeContext.__aexit__   8 0 0   100%
src/lexigram/admin/core/decorators.py ScopeContext.resolve   10 3 0   70%
src/lexigram/admin/core/decorators.py clear_singletons   1 0 0   100%
src/lexigram/admin/core/decorators.py (no function)   37 5 1   86%
src/lexigram/admin/core/distributed_lock.py LockError.__init__   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py LockAcquisitionError.__init__   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py LockTimeoutError.__init__   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py AdminLockContext.__init__   6 0 0   100%
src/lexigram/admin/core/distributed_lock.py AdminLockContext.__aenter__   7 0 0   100%
src/lexigram/admin/core/distributed_lock.py AdminLockContext.__aexit__   2 0 0   100%
src/lexigram/admin/core/distributed_lock.py AdminLockManager.__init__   2 0 0   100%
src/lexigram/admin/core/distributed_lock.py AdminLockManager._full_key   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py AdminLockManager.acquire   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py distributed_lock   3 0 1   100%
src/lexigram/admin/core/distributed_lock.py distributed_lock.decorator   2 0 0   100%
src/lexigram/admin/core/distributed_lock.py distributed_lock.decorator.wrapper   11 1 0   91%
src/lexigram/admin/core/distributed_lock.py ResourceLock.__init__   6 0 0   100%
src/lexigram/admin/core/distributed_lock.py ResourceLock.key   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py ResourceLock.__aenter__   3 0 0   100%
src/lexigram/admin/core/distributed_lock.py ResourceLock.__aexit__   2 0 0   100%
src/lexigram/admin/core/distributed_lock.py BulkOperationLock.__init__   5 0 0   100%
src/lexigram/admin/core/distributed_lock.py BulkOperationLock.key   1 0 0   100%
src/lexigram/admin/core/distributed_lock.py BulkOperationLock.__aenter__   3 0 0   100%
src/lexigram/admin/core/distributed_lock.py BulkOperationLock.__aexit__   2 0 0   100%
src/lexigram/admin/core/distributed_lock.py (no function)   45 0 3   100%
src/lexigram/admin/core/middleware.py AdminErrorHandler.__init__   2 2 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.with_defaults   1 1 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.register   1 1 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.handle   4 4 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler._handle_default   1 1 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.handle_validation   2 2 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.handle_not_found   1 1 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.handle_permission   1 1 0   0%
src/lexigram/admin/core/middleware.py AdminErrorHandler.handle_authentication   1 1 0   0%
src/lexigram/admin/core/middleware.py with_admin_error_handling   5 5 0   0%
src/lexigram/admin/core/middleware.py with_admin_error_handling.decorator   2 2 0   0%
src/lexigram/admin/core/middleware.py with_admin_error_handling.decorator.wrapper   6 6 0   0%
src/lexigram/admin/core/middleware.py AdminError.__init__   2 2 0   0%
src/lexigram/admin/core/middleware.py AdminEntity.__post_init__   4 4 0   0%
src/lexigram/admin/core/middleware.py AdminEntity.mark_updated   1 1 0   0%
src/lexigram/admin/core/middleware.py AdminEntity.to_dict   7 7 0   0%
src/lexigram/admin/core/middleware.py AdminEntity.from_dict   6 6 0   0%
src/lexigram/admin/core/middleware.py SoftDeleteEntity.is_deleted   1 1 0   0%
src/lexigram/admin/core/middleware.py SoftDeleteEntity.soft_delete   2 2 0   0%
src/lexigram/admin/core/middleware.py SoftDeleteEntity.restore   2 2 0   0%
src/lexigram/admin/core/middleware.py AuditedEntity.update   3 3 0   0%
src/lexigram/admin/core/middleware.py (no function)   61 61 2   0%
src/lexigram/admin/core/registry.py AdminRegistry.__init__   6 0 0   100%
src/lexigram/admin/core/registry.py AdminRegistry.resources   1 1 0   0%
src/lexigram/admin/core/registry.py AdminRegistry.controllers   1 0 0   100%
src/lexigram/admin/core/registry.py AdminRegistry.commands   1 1 0   0%
src/lexigram/admin/core/registry.py AdminRegistry.register_resource   13 4 0   69%
src/lexigram/admin/core/registry.py AdminRegistry._extract_resource_name   9 5 0   44%
src/lexigram/admin/core/registry.py AdminRegistry._extract_resource_group   6 1 0   83%
src/lexigram/admin/core/registry.py AdminRegistry._assign_resource_to_group   16 16 0   0%
src/lexigram/admin/core/registry.py AdminRegistry.register_many   3 3 0   0%
src/lexigram/admin/core/registry.py AdminRegistry.register_command   7 7 0   0%
src/lexigram/admin/core/registry.py AdminRegistry.register_controller   5 1 0   80%
src/lexigram/admin/core/registry.py AdminRegistry.discover_resources   8 8 0   0%
src/lexigram/admin/core/registry.py AdminRegistry.discover_controllers   7 7 0   0%
src/lexigram/admin/core/registry.py AdminRegistry._scan_package   18 18 0   0%
src/lexigram/admin/core/registry.py (no function)   31 0 3   100%
src/lexigram/admin/core/rendering.py AdminRenderer.__init__   2 2 0   0%
src/lexigram/admin/core/rendering.py AdminRenderer.render_template   4 4 0   0%
src/lexigram/admin/core/rendering.py AdminRenderer.render_html_shell   1 1 0   0%
src/lexigram/admin/core/rendering.py (no function)   9 0 4   100%
src/lexigram/admin/core/resilience_config.py transaction   2 2 0   0%
src/lexigram/admin/core/resilience_config.py InMemoryAuditLogger.__init__   1 0 0   100%
src/lexigram/admin/core/resilience_config.py InMemoryAuditLogger.log   2 0 0   100%
src/lexigram/admin/core/resilience_config.py InMemoryAuditLogger.get_entries   8 0 0   100%
src/lexigram/admin/core/resilience_config.py AuditRepositoryMixin.set_audit_logger   1 0 0   100%
src/lexigram/admin/core/resilience_config.py AuditRepositoryMixin._audit_create   4 0 0   100%
src/lexigram/admin/core/resilience_config.py AuditRepositoryMixin._audit_update   4 0 0   100%
src/lexigram/admin/core/resilience_config.py AuditRepositoryMixin._audit_delete   3 0 0   100%
src/lexigram/admin/core/resilience_config.py AuditRepositoryMixin._audit_bulk_action   3 0 0   100%
src/lexigram/admin/core/resilience_config.py (no function)   33 0 3   100%
src/lexigram/admin/core/routing.py _ResourceManager.__init__   1 0 0   100%
src/lexigram/admin/core/routing.py _ResourceManager.get_all_resources   1 1 0   0%
src/lexigram/admin/core/routing.py AdminRouter.__init__   7 0 0   100%
src/lexigram/admin/core/routing.py AdminRouter.add_route   1 0 0   100%
src/lexigram/admin/core/routing.py AdminRouter.alias_route   5 1 0   80%
src/lexigram/admin/core/routing.py AdminRouter.mount   25 12 0   52%
src/lexigram/admin/core/routing.py AdminRouter._build_routes   18 0 0   100%
src/lexigram/admin/core/routing.py AdminRouter._build_resource_routes   8 3 0   62%
src/lexigram/admin/core/routing.py AdminRouter._resolve_static_dir   7 2 0   71%
src/lexigram/admin/core/routing.py (no function)   31 0 0   100%
src/lexigram/admin/cqrs/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/cqrs/commands.py AdminCommand.name   1 0 0   100%
src/lexigram/admin/cqrs/commands.py CreateResource.name   1 1 0   0%
src/lexigram/admin/cqrs/commands.py UpdateResource.name   1 1 0   0%
src/lexigram/admin/cqrs/commands.py DeleteResource.name   1 1 0   0%
src/lexigram/admin/cqrs/commands.py (no function)   99 0 0   100%
src/lexigram/admin/cqrs/queries.py AdminQuery.name   1 0 0   100%
src/lexigram/admin/cqrs/queries.py (no function)   48 0 0   100%
src/lexigram/admin/dashboard/__init__.py (no function)   7 0 0   100%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.__init__   5 0 0   100%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.get_all_widgets   10 0 0   100%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.get_all_navigation   9 1 0   89%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.get_framework_health   5 0 0   100%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.get_all_actions   4 0 0   100%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.get_management_pages   3 3 0   0%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.get_settings_panels   3 3 0   0%
src/lexigram/admin/dashboard/assembler.py DashboardAssembler.execute_action   7 0 0   100%
src/lexigram/admin/dashboard/assembler.py (no function)   20 0 4   100%
src/lexigram/admin/dashboard/chart_widget.py ChartWidget.__init__   14 0 0   100%
src/lexigram/admin/dashboard/chart_widget.py ChartWidget._render_filters   25 1 0   96%
src/lexigram/admin/dashboard/chart_widget.py ChartWidget.render   28 1 0   96%
src/lexigram/admin/dashboard/chart_widget.py (no function)   11 0 0   100%
src/lexigram/admin/dashboard/content_renderer.py render_content   13 0 0   100%
src/lexigram/admin/dashboard/content_renderer.py _render_stat_content   8 0 0   100%
src/lexigram/admin/dashboard/content_renderer.py _render_table_content   11 1 0   91%
src/lexigram/admin/dashboard/content_renderer.py _render_health_content   7 1 0   86%
src/lexigram/admin/dashboard/content_renderer.py _render_chart_content   3 0 0   100%
src/lexigram/admin/dashboard/content_renderer.py (no function)   33 0 2   100%
src/lexigram/admin/dashboard/naming_policy.py NamingPolicy.__init__   2 0 0   100%
src/lexigram/admin/dashboard/naming_policy.py NamingPolicy.namespaced   4 0 0   100%
src/lexigram/admin/dashboard/naming_policy.py NamingPolicy.register   5 0 0   100%
src/lexigram/admin/dashboard/naming_policy.py (no function)   9 0 0   100%
src/lexigram/admin/dashboard/page_assembler.py PageAssembler.__init__   2 0 0   100%
src/lexigram/admin/dashboard/page_assembler.py PageAssembler.assemble   8 0 0   100%
src/lexigram/admin/dashboard/page_assembler.py (no function)   9 0 0   100%
src/lexigram/admin/dashboard/page_filters.py _session   1 0 0   100%
src/lexigram/admin/dashboard/page_filters.py _coerce   8 0 0   100%
src/lexigram/admin/dashboard/page_filters.py read_page_filters   18 0 0   100%
src/lexigram/admin/dashboard/page_filters.py save_page_filters   3 0 0   100%
src/lexigram/admin/dashboard/page_filters.py clear_page_filters   3 0 0   100%
src/lexigram/admin/dashboard/page_filters.py applied_from_query   1 0 0   100%
src/lexigram/admin/dashboard/page_filters.py widget_fetch_url   8 1 0   88%
src/lexigram/admin/dashboard/page_filters.py render_page_filter_form   24 2 0   92%
src/lexigram/admin/dashboard/page_filters.py _with_reset_param   2 0 0   100%
src/lexigram/admin/dashboard/page_filters.py (no function)   17 0 0   100%
src/lexigram/admin/dashboard/page_renderer.py _render_pagination   7 1 0   86%
src/lexigram/admin/dashboard/page_renderer.py render_page_content   4 0 0   100%
src/lexigram/admin/dashboard/page_renderer.py (no function)   7 0 0   100%
src/lexigram/admin/dashboard/permission_filter.py PermissionFilter.filter   6 0 0   100%
src/lexigram/admin/dashboard/permission_filter.py (no function)   7 0 0   100%
src/lexigram/admin/dashboard/route_integrator.py _strip_optional   7 4 0   43%
src/lexigram/admin/dashboard/route_integrator.py _cluster_header_html   2 2 0   0%
src/lexigram/admin/dashboard/route_integrator.py _resolve_primary_color   10 0 0   100%
src/lexigram/admin/dashboard/route_integrator.py AdminPageHandler.__init__   2 0 0   100%
src/lexigram/admin/dashboard/route_integrator.py AdminPageHandler.__call__   23 5 0   78%
src/lexigram/admin/dashboard/route_integrator.py AdminPageHandler._apply_cluster_header   6 2 0   67%
src/lexigram/admin/dashboard/route_integrator.py AdminPageHandler._wrap_in_shell   65 31 0   52%
src/lexigram/admin/dashboard/route_integrator.py AdminPageHandler._resolve_page   23 1 0   96%
src/lexigram/admin/dashboard/route_integrator.py _placeholder_page   35 10 0   71%
src/lexigram/admin/dashboard/route_integrator.py _resolve_handler   12 1 0   92%
src/lexigram/admin/dashboard/route_integrator.py StructuredPageHandler.__init__   1 0 0   100%
src/lexigram/admin/dashboard/route_integrator.py StructuredPageHandler.__call__   10 0 0   100%
src/lexigram/admin/dashboard/route_integrator.py _register_pages   13 1 0   92%
src/lexigram/admin/dashboard/route_integrator.py _register_settings   13 2 0   85%
src/lexigram/admin/dashboard/route_integrator.py RouteIntegrator.__init__   4 0 0   100%
src/lexigram/admin/dashboard/route_integrator.py RouteIntegrator.register   38 3 0   92%
src/lexigram/admin/dashboard/route_integrator.py RouteIntegrator._ensure_nav_route   13 2 0   85%
src/lexigram/admin/dashboard/route_integrator.py RouteIntegrator._register_cluster_alias   19 4 0   79%
src/lexigram/admin/dashboard/route_integrator.py (no function)   41 0 5   100%
src/lexigram/admin/dashboard/settings_assembler.py SettingsPanelAssembler.__init__   2 0 0   100%
src/lexigram/admin/dashboard/settings_assembler.py SettingsPanelAssembler.assemble   8 0 0   100%
src/lexigram/admin/dashboard/settings_assembler.py (no function)   9 0 0   100%
src/lexigram/admin/dashboard/stats_widget.py _sparkline_points   12 0 0   100%
src/lexigram/admin/dashboard/stats_widget.py StatsOverviewWidget.__init__   9 0 0   100%
src/lexigram/admin/dashboard/stats_widget.py StatsOverviewWidget.render   19 0 0   100%
src/lexigram/admin/dashboard/stats_widget.py (no function)   17 0 0   100%
src/lexigram/admin/dashboard/widget_stream.py authorized_resources   5 0 0   100%
src/lexigram/admin/dashboard/widget_stream.py build_widget_event_stream_handler   3 0 0   100%
src/lexigram/admin/dashboard/widget_stream.py build_widget_event_stream_handler._require_bridge   3 1 0   67%
src/lexigram/admin/dashboard/widget_stream.py build_widget_event_stream_handler.widget_event_stream   6 0 0   100%
src/lexigram/admin/dashboard/widget_stream.py build_widget_event_stream_handler.widget_event_stream.serialize   1 1 0   0%
src/lexigram/admin/dashboard/widget_stream.py (no function)   9 0 5   100%
src/lexigram/admin/dashboard/widget_types.py (no function)   10 0 0   100%
src/lexigram/admin/dashboard/widgets.py _render_live_widget_script   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py WidgetConfig.to_dict   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py WidgetConfig.from_dict   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py DashboardConfig.to_dict   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py DashboardConfig.from_dict   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py IWidget.render   0 0 1   100%
src/lexigram/admin/dashboard/widgets.py IWidget.get_default_config   0 0 1   100%
src/lexigram/admin/dashboard/widgets.py IDashboardStore.save   0 0 1   100%
src/lexigram/admin/dashboard/widgets.py IDashboardStore.load   0 0 1   100%
src/lexigram/admin/dashboard/widgets.py IDashboardStore.list   0 0 1   100%
src/lexigram/admin/dashboard/widgets.py IDashboardStore.delete   0 0 1   100%
src/lexigram/admin/dashboard/widgets.py InMemoryDashboardStore.__init__   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py InMemoryDashboardStore.save   3 0 0   100%
src/lexigram/admin/dashboard/widgets.py InMemoryDashboardStore.load   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py InMemoryDashboardStore.list   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py InMemoryDashboardStore.delete   4 1 0   75%
src/lexigram/admin/dashboard/widgets.py WidgetRegistry.__init__   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py WidgetRegistry.register   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py WidgetRegistry.get   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py WidgetRegistry.list_types   1 0 0   100%
src/lexigram/admin/dashboard/widgets.py WidgetRegistry.create_widget   4 1 0   75%
src/lexigram/admin/dashboard/widgets.py WidgetRegistry.render_contributor_widgets   43 1 0   98%
src/lexigram/admin/dashboard/widgets.py render_dashboard_widgets   1 1 0   0%
src/lexigram/admin/dashboard/widgets.py render_widget_config_popup   9 4 0   56%
src/lexigram/admin/dashboard/widgets.py _render_field_input   9 9 0   0%
src/lexigram/admin/dashboard/widgets.py (no function)   65 0 8   100%
src/lexigram/admin/data/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/data/adapters/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.__init__   6 1 0   83%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource._get_client   3 0 0   100%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.find_one   7 7 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.find_many   11 0 0   100%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.count   9 9 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.create   4 4 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.update   5 5 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.delete   4 4 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.bulk_create   5 5 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.bulk_update   5 5 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource.bulk_delete   5 5 0   0%
src/lexigram/admin/data/adapters/api_adapter.py APIDataSource._transform_query   18 8 0   56%
src/lexigram/admin/data/adapters/api_adapter.py (no function)   24 2 2   92%
src/lexigram/admin/data/adapters/export_adapter.py ExportDataSourceAdapter.__init__   1 0 0   100%
src/lexigram/admin/data/adapters/export_adapter.py ExportDataSourceAdapter.get_export_data   14 2 0   86%
src/lexigram/admin/data/adapters/export_adapter.py ExportDataSourceAdapter.get_export_count   6 1 0   83%
src/lexigram/admin/data/adapters/export_adapter.py ExportDataSourceAdapter.get_column_definitions   1 1 0   0%
src/lexigram/admin/data/adapters/export_adapter.py (no function)   11 0 2   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.__init__   1 0 0   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.find_one   5 1 0   80%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.find_many   24 0 0   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.find_many.get_val   2 0 0   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.count   2 0 0   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.create   6 2 0   67%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.update   11 4 0   64%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.delete   3 0 0   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.bulk_create   4 4 0   0%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.bulk_update   8 8 0   0%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource.bulk_delete   10 10 0   0%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource._apply_filters   10 0 0   100%
src/lexigram/admin/data/adapters/memory_adapter.py InMemoryDataSource._matches   27 24 0   11%
src/lexigram/admin/data/adapters/memory_adapter.py (no function)   21 0 0   100%
src/lexigram/admin/data/adapters/repository/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.__init__   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.find_one   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.find_many   5 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.count   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.create   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.update   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.delete   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.bulk_create   1 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.bulk_update   8 2 0   75%
src/lexigram/admin/data/adapters/repository/data_source.py RepositoryDataSource.bulk_delete   5 0 0   100%
src/lexigram/admin/data/adapters/repository/data_source.py (no function)   21 0 0   100%
src/lexigram/admin/data/adapters/repository/types.py (no function)   12 0 0   100%
src/lexigram/admin/data/admin_repository.py AdminUserRepository.__init__   2 0 0   100%
src/lexigram/admin/data/admin_repository.py AdminUserRepository._fetch_by_id   1 0 0   100%
src/lexigram/admin/data/admin_repository.py AdminUserRepository._fetch_many   4 0 0   100%
src/lexigram/admin/data/admin_repository.py AdminUserRepository._count   4 1 0   75%
src/lexigram/admin/data/admin_repository.py AdminUserRepository.find_by_spec   1 0 0   100%
src/lexigram/admin/data/admin_repository.py AdminUserRepository._save   2 0 0   100%
src/lexigram/admin/data/admin_repository.py AdminUserRepository._delete   5 0 0   100%
src/lexigram/admin/data/admin_repository.py (no function)   12 0 2   100%
src/lexigram/admin/data/cache.py (no function)   1 0 0   100%
src/lexigram/admin/data/data_loader.py DataLoaderProtocol.__init__   6 6 0   0%
src/lexigram/admin/data/data_loader.py DataLoaderProtocol.load   9 9 0   0%
src/lexigram/admin/data/data_loader.py DataLoaderProtocol.load_many   1 1 0   0%
src/lexigram/admin/data/data_loader.py DataLoaderProtocol._execute_batch   19 19 0   0%
src/lexigram/admin/data/data_loader.py DataLoaderProtocol.clear   3 3 0   0%
src/lexigram/admin/data/data_loader.py (no function)   16 16 0   0%
src/lexigram/admin/data/data_source.py IDataSource.find_one   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.find_many   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.count   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.create   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.update   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.delete   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.bulk_create   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.bulk_update   0 0 1   100%
src/lexigram/admin/data/data_source.py IDataSource.bulk_delete   0 0 1   100%
src/lexigram/admin/data/data_source.py _quote_identifier   3 0 0   100%
src/lexigram/admin/data/data_source.py DataSourceBase.find_one   0 0 1   100%
src/lexigram/admin/data/data_source.py DataSourceBase.update   0 0 1   100%
src/lexigram/admin/data/data_source.py DataSourceBase.delete   0 0 1   100%
src/lexigram/admin/data/data_source.py DataSourceBase.find_many   0 0 1   100%
src/lexigram/admin/data/data_source.py DataSourceBase.create   0 0 1   100%
src/lexigram/admin/data/data_source.py DataSourceBase.count   2 2 0   0%
src/lexigram/admin/data/data_source.py SqlDataSource.__init__   3 0 0   100%
src/lexigram/admin/data/data_source.py SqlDataSource.find_one   4 0 0   100%
src/lexigram/admin/data/data_source.py SqlDataSource.find_many   18 0 0   100%
src/lexigram/admin/data/data_source.py SqlDataSource.create   6 0 0   100%
src/lexigram/admin/data/data_source.py SqlDataSource.update   12 4 0   67%
src/lexigram/admin/data/data_source.py SqlDataSource.delete   9 9 0   0%
src/lexigram/admin/data/data_source.py (no function)   47 0 18   100%
src/lexigram/admin/data/lazy.py LazyField.__init__   3 0 0   100%
src/lexigram/admin/data/lazy.py LazyField.get   4 0 0   100%
src/lexigram/admin/data/lazy.py LazyField.is_loaded   1 0 0   100%
src/lexigram/admin/data/lazy.py DeferredField.__init__   1 0 0   100%
src/lexigram/admin/data/lazy.py (no function)   11 0 0   100%
src/lexigram/admin/data/optimizer.py QueryOptimizer.analyze   13 0 0   100%
src/lexigram/admin/data/optimizer.py QueryOptimizer.optimize   3 1 0   67%
src/lexigram/admin/data/optimizer.py (no function)   13 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.offset   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.limit   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.is_cursor_based   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.has_search   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.has_filters   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.has_sort   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.resolved_sort   3 0 0   100%
src/lexigram/admin/data/query.py QuerySpec._condition_to_repo_key   8 2 0   75%
src/lexigram/admin/data/query.py QuerySpec.to_repository_filters   6 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.filter_conditions   4 0 0   100%
src/lexigram/admin/data/query.py QuerySpec._copy   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_page   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_per_page   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_cursor   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.with_sort   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_search   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_filters   2 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_filter   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.without_filter   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.clear_filters   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.with_deleted   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_include   2 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_where   3 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_where_eq   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_where_in   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_where_contains   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.with_where_between   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.with_order_by   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.with_order_by_desc   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.with_select   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.with_group_by   1 1 0   0%
src/lexigram/admin/data/query.py QuerySpec.from_dict   1 0 0   100%
src/lexigram/admin/data/query.py QuerySpec.to_dict   21 9 0   57%
src/lexigram/admin/data/query.py PagedResult.has_next   3 3 0   0%
src/lexigram/admin/data/query.py PagedResult.has_prev   1 1 0   0%
src/lexigram/admin/data/query.py PagedResult.total_pages   3 3 0   0%
src/lexigram/admin/data/query.py PagedResult.is_empty   1 1 0   0%
src/lexigram/admin/data/query.py PagedResult.count   1 1 0   0%
src/lexigram/admin/data/query.py PagedResult.start_index   3 3 0   0%
src/lexigram/admin/data/query.py PagedResult.end_index   3 3 0   0%
src/lexigram/admin/data/query.py PagedResult.map   1 0 0   100%
src/lexigram/admin/data/query.py PagedResult.empty   1 1 0   0%
src/lexigram/admin/data/query.py EqualSpec.__init__   2 2 0   0%
src/lexigram/admin/data/query.py EqualSpec.__and__   1 1 0   0%
src/lexigram/admin/data/query.py InSpec.__init__   2 2 0   0%
src/lexigram/admin/data/query.py InSpec.__and__   1 1 0   0%
src/lexigram/admin/data/query.py GreaterThanOrEqualSpec.__init__   2 2 0   0%
src/lexigram/admin/data/query.py GreaterThanOrEqualSpec.__and__   1 1 0   0%
src/lexigram/admin/data/query.py LessThanOrEqualSpec.__init__   2 2 0   0%
src/lexigram/admin/data/query.py LessThanOrEqualSpec.__and__   1 1 0   0%
src/lexigram/admin/data/query.py CombinedSpec.__init__   1 1 0   0%
src/lexigram/admin/data/query.py CombinedSpec.__and__   1 1 0   0%
src/lexigram/admin/data/query.py (no function)   126 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.find_one   0 0 1   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.find_many   0 0 1   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.count   0 0 1   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource._read_only   1 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.create   1 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.update   1 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.delete   1 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.bulk_create   1 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.bulk_update   1 0 0   100%
src/lexigram/admin/data/read_only.py ReadOnlyDataSource.bulk_delete   1 0 0   100%
src/lexigram/admin/data/read_only.py (no function)   15 0 6   100%
src/lexigram/admin/data/subscriptions.py DataSubscription.__init__   4 4 0   0%
src/lexigram/admin/data/subscriptions.py DataSubscription.subscribe   6 6 0   0%
src/lexigram/admin/data/subscriptions.py DataSubscription.unsubscribe   6 6 0   0%
src/lexigram/admin/data/subscriptions.py DataSubscription.emit   10 10 0   0%
src/lexigram/admin/data/subscriptions.py (no function)   17 17 3   0%
src/lexigram/admin/data/timeout.py with_query_timeout   4 0 0   100%
src/lexigram/admin/data/timeout.py (no function)   7 0 0   100%
src/lexigram/admin/decorators.py (no function)   2 2 0   0%
src/lexigram/admin/di/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider.__init__   20 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider.config   1 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider.from_config   1 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider.register   46 4 0   91%
src/lexigram/admin/di/bundle_provider.py AdminProvider.mount_to_app   13 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider._mount_nav_builder   8 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider._mount_middleware   49 8 0   84%
src/lexigram/admin/di/bundle_provider.py AdminProvider._mount_tenant_scoping   11 9 0   18%
src/lexigram/admin/di/bundle_provider.py AdminProvider.boot   37 3 0   92%
src/lexigram/admin/di/bundle_provider.py AdminProvider._get_csrf_service   8 2 0   75%
src/lexigram/admin/di/bundle_provider.py AdminProvider.shutdown   2 0 0   100%
src/lexigram/admin/di/bundle_provider.py AdminProvider.health_check   17 2 0   88%
src/lexigram/admin/di/bundle_provider.py (no function)   28 0 3   100%
src/lexigram/admin/di/mount/__init__.py (no function)   6 0 0   100%
src/lexigram/admin/di/mount/context.py (no function)   15 0 0   100%
src/lexigram/admin/di/mount/contributors.py AdminMountContributorsMixin._mount_contributors   69 27 0   61%
src/lexigram/admin/di/mount/contributors.py AdminMountContributorsMixin._mount_integration   12 0 0   100%
src/lexigram/admin/di/mount/contributors.py AdminMountContributorsMixin._mount_sse_widgets   15 1 0   93%
src/lexigram/admin/di/mount/contributors.py AdminMountContributorsMixin._mount_app_state   32 3 0   91%
src/lexigram/admin/di/mount/contributors.py (no function)   9 0 3   100%
src/lexigram/admin/di/mount/controllers.py AdminMountControllersMixin._mount_controllers   215 83 0   61%
src/lexigram/admin/di/mount/controllers.py (no function)   6 0 3   100%
src/lexigram/admin/di/mount/core.py AdminMountCoreMixin._mount_resources   15 0 0   100%
src/lexigram/admin/di/mount/core.py AdminMountCoreMixin._mount_settings_service   24 5 0   79%
src/lexigram/admin/di/mount/core.py (no function)   7 0 3   100%
src/lexigram/admin/di/sub_providers/__init__.py (no function)   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py _resolve_admin_authorizer   5 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider.__init__   4 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider.config   1 1 0   0%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider.register   25 2 0   92%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services   81 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services._AdminSessionServiceConfigured.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services._AdminAuthServiceConfigured.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services._AdminMfaSqlStoreConfigured.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services._AdminMfaServiceConfigured.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services._AdminEmailVerificationServiceConfigured.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider._register_new_auth_services._AdminEmailOtpServiceConfigured.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider.boot   37 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider.shutdown   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py AdminAuthSubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/auth.py (no function)   22 0 3   100%
src/lexigram/admin/di/sub_providers/contributor.py _validate_widget_endpoints   10 3 0   70%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.__init__   12 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.config   1 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.registry   1 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.collected_resources   1 1 0   0%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.collected_routes   1 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.register   2 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.boot   8 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.boot_all   32 8 0   75%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.shutdown   5 2 0   60%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider.health_check   9 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider._discover_from_entry_points   13 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py AdminContributorSubProvider._is_enabled   9 0 0   100%
src/lexigram/admin/di/sub_providers/contributor.py (no function)   32 0 4   100%
src/lexigram/admin/di/sub_providers/core.py AdminCoreSubProvider.__init__   3 0 0   100%
src/lexigram/admin/di/sub_providers/core.py AdminCoreSubProvider.config   1 0 0   100%
src/lexigram/admin/di/sub_providers/core.py AdminCoreSubProvider.register   14 0 0   100%
src/lexigram/admin/di/sub_providers/core.py AdminCoreSubProvider.boot   1 0 0   100%
src/lexigram/admin/di/sub_providers/core.py AdminCoreSubProvider.shutdown   1 0 0   100%
src/lexigram/admin/di/sub_providers/core.py AdminCoreSubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/core.py (no function)   12 0 3   100%
src/lexigram/admin/di/sub_providers/dashboard.py AdminDashboardSubProvider.__init__   3 0 0   100%
src/lexigram/admin/di/sub_providers/dashboard.py AdminDashboardSubProvider.config   1 1 0   0%
src/lexigram/admin/di/sub_providers/dashboard.py AdminDashboardSubProvider.register   12 0 0   100%
src/lexigram/admin/di/sub_providers/dashboard.py AdminDashboardSubProvider.boot   0 0 0   100%
src/lexigram/admin/di/sub_providers/dashboard.py AdminDashboardSubProvider.shutdown   1 0 0   100%
src/lexigram/admin/di/sub_providers/dashboard.py AdminDashboardSubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/dashboard.py (no function)   20 0 3   100%
src/lexigram/admin/di/sub_providers/integrations.py AdminIntegrationsSubProvider.__init__   2 0 0   100%
src/lexigram/admin/di/sub_providers/integrations.py AdminIntegrationsSubProvider.register   11 0 0   100%
src/lexigram/admin/di/sub_providers/integrations.py AdminIntegrationsSubProvider.boot   4 0 0   100%
src/lexigram/admin/di/sub_providers/integrations.py AdminIntegrationsSubProvider.shutdown   2 0 0   100%
src/lexigram/admin/di/sub_providers/integrations.py AdminIntegrationsSubProvider.health_check   10 3 0   70%
src/lexigram/admin/di/sub_providers/integrations.py (no function)   11 0 2   100%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider.__init__   5 0 0   100%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider.config   1 1 0   0%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider.register   11 0 0   100%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider.boot   13 0 0   100%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider._publish_inbox_sent   6 1 0   83%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider.shutdown   1 0 0   100%
src/lexigram/admin/di/sub_providers/realtime.py AdminRealtimeSubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/realtime.py (no function)   15 0 3   100%
src/lexigram/admin/di/sub_providers/resource.py AdminResourceSubProvider.__init__   4 0 0   100%
src/lexigram/admin/di/sub_providers/resource.py AdminResourceSubProvider.config   1 1 0   0%
src/lexigram/admin/di/sub_providers/resource.py AdminResourceSubProvider.register   6 0 0   100%
src/lexigram/admin/di/sub_providers/resource.py AdminResourceSubProvider.boot   1 0 0   100%
src/lexigram/admin/di/sub_providers/resource.py AdminResourceSubProvider.shutdown   1 0 0   100%
src/lexigram/admin/di/sub_providers/resource.py AdminResourceSubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/resource.py (no function)   12 0 3   100%
src/lexigram/admin/di/sub_providers/tenancy.py AdminTenancySubProvider.__init__   1 0 0   100%
src/lexigram/admin/di/sub_providers/tenancy.py AdminTenancySubProvider.register   6 3 0   50%
src/lexigram/admin/di/sub_providers/tenancy.py AdminTenancySubProvider.boot   0 0 0   100%
src/lexigram/admin/di/sub_providers/tenancy.py AdminTenancySubProvider.shutdown   0 0 0   100%
src/lexigram/admin/di/sub_providers/tenancy.py AdminTenancySubProvider.get_middleware   4 4 0   0%
src/lexigram/admin/di/sub_providers/tenancy.py AdminTenancySubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/tenancy.py (no function)   13 0 3   100%
src/lexigram/admin/di/sub_providers/ui.py AdminUISubProvider.__init__   3 0 0   100%
src/lexigram/admin/di/sub_providers/ui.py AdminUISubProvider.config   1 1 0   0%
src/lexigram/admin/di/sub_providers/ui.py AdminUISubProvider.register   8 0 0   100%
src/lexigram/admin/di/sub_providers/ui.py AdminUISubProvider.boot   1 0 0   100%
src/lexigram/admin/di/sub_providers/ui.py AdminUISubProvider.shutdown   1 0 0   100%
src/lexigram/admin/di/sub_providers/ui.py AdminUISubProvider.health_check   1 0 0   100%
src/lexigram/admin/di/sub_providers/ui.py (no function)   12 0 3   100%
src/lexigram/admin/domain/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/domain/aggregate.py AdminUserAggregate.create   3 0 0   100%
src/lexigram/admin/domain/aggregate.py AdminUserAggregate.update   4 4 0   0%
src/lexigram/admin/domain/aggregate.py AdminUserAggregate.deactivate   2 2 0   0%
src/lexigram/admin/domain/aggregate.py AdminUserAggregate.soft_delete   3 3 0   0%
src/lexigram/admin/domain/aggregate.py (no function)   21 0 0   100%
src/lexigram/admin/domain/specifications.py SpecificationProtocol.is_satisfied_by   0 0 2   100%
src/lexigram/admin/domain/specifications.py SpecificationProtocol.__and__   1 1 0   0%
src/lexigram/admin/domain/specifications.py SpecificationProtocol.__or__   1 1 0   0%
src/lexigram/admin/domain/specifications.py SpecificationProtocol.__invert__   1 1 0   0%
src/lexigram/admin/domain/specifications.py ActiveUserSpec.is_satisfied_by   1 1 0   0%
src/lexigram/admin/domain/specifications.py HasRoleSpec.__init__   1 1 0   0%
src/lexigram/admin/domain/specifications.py HasRoleSpec.is_satisfied_by   2 2 0   0%
src/lexigram/admin/domain/specifications.py AndSpec.__init__   2 2 0   0%
src/lexigram/admin/domain/specifications.py AndSpec.is_satisfied_by   1 1 0   0%
src/lexigram/admin/domain/specifications.py OrSpec.__init__   2 2 0   0%
src/lexigram/admin/domain/specifications.py OrSpec.is_satisfied_by   1 1 0   0%
src/lexigram/admin/domain/specifications.py NotSpec.__init__   1 1 0   0%
src/lexigram/admin/domain/specifications.py NotSpec.is_satisfied_by   1 1 0   0%
src/lexigram/admin/domain/specifications.py (no function)   21 0 1   100%
src/lexigram/admin/engine/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/engine/renderer.py resolve_admin_nav   2 0 0   100%
src/lexigram/admin/engine/renderer.py AdminRenderer.__init__   2 0 0   100%
src/lexigram/admin/engine/renderer.py AdminRenderer.render_page   38 4 0   89%
src/lexigram/admin/engine/renderer.py AdminRenderer.render_partial   4 4 0   0%
src/lexigram/admin/engine/renderer.py (no function)   25 2 2   92%
src/lexigram/admin/events/__init__.py (no function)   137 0 0   100%
src/lexigram/admin/events/adapter.py _SimpleDispatcher.__init__   2 0 0   100%
src/lexigram/admin/events/adapter.py _SimpleDispatcher.subscribe   4 2 0   50%
src/lexigram/admin/events/adapter.py _SimpleDispatcher.publish   8 2 0   75%
src/lexigram/admin/events/adapter.py AdminEventBusAdapter.__init__   1 0 0   100%
src/lexigram/admin/events/adapter.py AdminEventBusAdapter.publish   6 1 0   83%
src/lexigram/admin/events/adapter.py AdminEventBusAdapter.subscribe   2 0 0   100%
src/lexigram/admin/events/adapter.py AdminEventBusAdapter.publish_many   7 1 0   86%
src/lexigram/admin/events/adapter.py AdminEventBusAdapter.stream   5 5 0   0%
src/lexigram/admin/events/adapter.py AdminEventBusAdapter.stream._handler   1 1 0   0%
src/lexigram/admin/events/adapter.py (no function)   14 0 2   100%
src/lexigram/admin/exceptions.py (no function)   29 0 0   100%
src/lexigram/admin/forms/__init__.py (no function)   9 0 0   100%
src/lexigram/admin/forms/async_validation.py AsyncValidatorProtocol.validate   0 0 1   100%
src/lexigram/admin/forms/async_validation.py ValidationResult.valid   1 1 0   0%
src/lexigram/admin/forms/async_validation.py ValidationResult.invalid   1 1 0   0%
src/lexigram/admin/forms/async_validation.py ValidationResult.add_error   4 4 0   0%
src/lexigram/admin/forms/async_validation.py ValidationResult.add_warning   3 3 0   0%
src/lexigram/admin/forms/async_validation.py ValidationResult.merge   11 11 0   0%
src/lexigram/admin/forms/async_validation.py AsyncValidator.validate   1 1 0   0%
src/lexigram/admin/forms/async_validation.py UniqueValidator.__init__   3 3 0   0%
src/lexigram/admin/forms/async_validation.py UniqueValidator.validate   9 9 0   0%
src/lexigram/admin/forms/async_validation.py RemoteValidator.__init__   2 2 0   0%
src/lexigram/admin/forms/async_validation.py RemoteValidator.validate   5 5 0   0%
src/lexigram/admin/forms/async_validation.py CompositeAsyncValidator.__init__   2 2 0   0%
src/lexigram/admin/forms/async_validation.py CompositeAsyncValidator.validate   11 11 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidator.__init__   2 2 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidator.add_validator   2 2 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidator.validate   5 5 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFormValidator.__init__   2 2 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFormValidator.field   3 3 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFormValidator.add_form_validator   2 2 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFormValidator.validate   16 16 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFormValidator.validate_field   3 3 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidatorBuilder.__init__   1 1 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidatorBuilder.unique   2 2 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidatorBuilder.remote   2 2 0   0%
src/lexigram/admin/forms/async_validation.py AsyncFieldValidatorBuilder.custom   2 2 0   0%
src/lexigram/admin/forms/async_validation.py async_validate   4 4 0   0%
src/lexigram/admin/forms/async_validation.py async_validate.decorator   2 2 0   0%
src/lexigram/admin/forms/async_validation.py async_validate.decorator.wrapper   6 6 0   0%
src/lexigram/admin/forms/async_validation.py AsyncValidationError.__init__   2 2 0   0%
src/lexigram/admin/forms/async_validation.py (no function)   61 2 9   97%
src/lexigram/admin/forms/builder.py FormBuilder.__init__   11 0 0   100%
src/lexigram/admin/forms/builder.py FormBuilder._init_from_model   8 0 0   100%
src/lexigram/admin/forms/builder.py FormBuilder.field   30 12 0   60%
src/lexigram/admin/forms/builder.py FormBuilder.exclude   2 0 0   100%
src/lexigram/admin/forms/builder.py FormBuilder.include_only   3 3 0   0%
src/lexigram/admin/forms/builder.py FormBuilder.group   5 5 0   0%
src/lexigram/admin/forms/builder.py FormBuilder.layout   3 3 0   0%
src/lexigram/admin/forms/builder.py FormBuilder.submit_label   2 2 0   0%
src/lexigram/admin/forms/builder.py FormBuilder.cancel_url   2 2 0   0%
src/lexigram/admin/forms/builder.py FormBuilder.create   12 0 0   100%
src/lexigram/admin/forms/builder.py FormBuilder.text   3 0 0   100%
src/lexigram/admin/forms/builder.py FormBuilder.build   10 0 0   100%
src/lexigram/admin/forms/builder.py FormBuilder._create_field   24 9 0   62%
src/lexigram/admin/forms/builder.py FormBuilder._create_field_by_widget   14 6 0   57%
src/lexigram/admin/forms/builder.py FormResult.is_valid   1 1 0   0%
src/lexigram/admin/forms/builder.py Form.__init__   10 0 0   100%
src/lexigram/admin/forms/builder.py Form.bind   4 0 0   100%
src/lexigram/admin/forms/builder.py Form.validate   33 13 0   61%
src/lexigram/admin/forms/builder.py Form._render_field_els   1 0 0   100%
src/lexigram/admin/forms/builder.py Form.render_html   5 1 0   80%
src/lexigram/admin/forms/builder.py Form.render_htmx   6 6 0   0%
src/lexigram/admin/forms/builder.py (no function)   58 0 2   100%
src/lexigram/admin/forms/components.py FormSchema.get_field   4 1 0   75%
src/lexigram/admin/forms/components.py FormSchema.filter_for_user   11 1 0   91%
src/lexigram/admin/forms/components.py FormMeta.__new__   9 0 0   100%
src/lexigram/admin/forms/components.py FormBase.__init__   13 0 0   100%
src/lexigram/admin/forms/components.py FormBase._initialize_fields   6 1 0   83%
src/lexigram/admin/forms/components.py FormBase.is_valid   17 4 0   76%
src/lexigram/admin/forms/components.py FormBase.validate   4 0 0   100%
src/lexigram/admin/forms/components.py FormBase.cleaned_data   1 0 0   100%
src/lexigram/admin/forms/components.py FormBase.render   19 8 0   58%
src/lexigram/admin/forms/components.py FormSchemaGenerator.__init__   1 0 0   100%
src/lexigram/admin/forms/components.py FormSchemaGenerator.from_pydantic   16 0 0   100%
src/lexigram/admin/forms/components.py FormSchemaGenerator._parse_pydantic_field   7 0 0   100%
src/lexigram/admin/forms/components.py FormSchemaGenerator._parse_dataclass_field   4 0 0   100%
src/lexigram/admin/forms/components.py FormSchemaGenerator._build_field   37 4 0   89%
src/lexigram/admin/forms/components.py FormSchemaGenerator._build_field.is_model   1 0 0   100%
src/lexigram/admin/forms/components.py build_form   5 5 0   0%
src/lexigram/admin/forms/components.py (no function)   40 0 3   100%
src/lexigram/admin/forms/layout.py AbstractLayoutNode.render   0 0 0   100%
src/lexigram/admin/forms/layout.py FieldNode.render   8 2 0   75%
src/lexigram/admin/forms/layout.py Section.render   11 2 0   82%
src/lexigram/admin/forms/layout.py Grid.render   2 2 0   0%
src/lexigram/admin/forms/layout.py Column.render   2 2 0   0%
src/lexigram/admin/forms/layout.py Tab.render   2 2 0   0%
src/lexigram/admin/forms/layout.py Tabs.render   3 3 0   0%
src/lexigram/admin/forms/layout.py FormLayoutBuilder.__init__   1 0 0   100%
src/lexigram/admin/forms/layout.py FormLayoutBuilder.create   1 0 0   100%
src/lexigram/admin/forms/layout.py FormLayoutBuilder.section   3 0 0   100%
src/lexigram/admin/forms/layout.py FormLayoutBuilder.grid   3 3 0   0%
src/lexigram/admin/forms/layout.py FormLayoutBuilder.tabs   6 0 0   100%
src/lexigram/admin/forms/layout.py FormLayoutBuilder.build   1 0 0   100%
src/lexigram/admin/forms/layout.py (no function)   57 0 2   100%
src/lexigram/admin/forms/state.py FormState.update_field   2 0 0   100%
src/lexigram/admin/forms/state.py FormState.set_error   3 0 0   100%
src/lexigram/admin/forms/state.py FormState.clear_errors   3 1 0   67%
src/lexigram/admin/forms/state.py FormState.has_errors   1 1 0   0%
src/lexigram/admin/forms/state.py FormState.to_dict   1 1 0   0%
src/lexigram/admin/forms/state.py FormState.from_dict   2 2 0   0%
src/lexigram/admin/forms/state.py FormStore.__init__   2 0 0   100%
src/lexigram/admin/forms/state.py FormStore.data   1 0 0   100%
src/lexigram/admin/forms/state.py FormStore.errors   1 0 0   100%
src/lexigram/admin/forms/state.py FormStore.is_dirty   1 0 0   100%
src/lexigram/admin/forms/state.py FormStore.get_value   1 0 0   100%
src/lexigram/admin/forms/state.py FormStore.set_value   1 0 0   100%
src/lexigram/admin/forms/state.py FormStore.validate   11 2 0   82%
src/lexigram/admin/forms/state.py FormStore.to_dict   1 1 0   0%
src/lexigram/admin/forms/state.py (no function)   31 0 0   100%
src/lexigram/admin/forms/validation.py Validator.__call__   0 0 1   100%
src/lexigram/admin/forms/validation.py FormValidationEngine.__init__   2 0 0   100%
src/lexigram/admin/forms/validation.py FormValidationEngine.add_field_validator   3 0 0   100%
src/lexigram/admin/forms/validation.py FormValidationEngine.add_form_validator   1 0 0   100%
src/lexigram/admin/forms/validation.py FormValidationEngine.validate_field   7 0 0   100%
src/lexigram/admin/forms/validation.py FormValidationEngine.validate_form   21 3 0   86%
src/lexigram/admin/forms/validation.py FormValidationEngine._run_validator   7 3 0   57%
src/lexigram/admin/forms/validation.py FormValidationEngine._normalize_errors   12 3 0   75%
src/lexigram/admin/forms/validation.py required   3 1 0   67%
src/lexigram/admin/forms/validation.py email   6 1 0   83%
src/lexigram/admin/forms/validation.py min_length   2 2 0   0%
src/lexigram/admin/forms/validation.py min_length.validator   3 3 0   0%
src/lexigram/admin/forms/validation.py max_length   2 2 0   0%
src/lexigram/admin/forms/validation.py max_length.validator   3 3 0   0%
src/lexigram/admin/forms/validation.py (no function)   24 0 8   100%
src/lexigram/admin/forms/wizard.py WizardDraft.from_dict   1 0 0   100%
src/lexigram/admin/forms/wizard.py WizardDraft.to_dict   1 0 0   100%
src/lexigram/admin/forms/wizard.py WizardStep.__init__   7 0 0   100%
src/lexigram/admin/forms/wizard.py WizardStep.is_visible   3 0 0   100%
src/lexigram/admin/forms/wizard.py WizardStep.validate   12 2 0   83%
src/lexigram/admin/forms/wizard.py FormWizard.__init__   10 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.get_current_step   1 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.get_visible_steps   1 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.get_progress   9 3 0   67%
src/lexigram/admin/forms/wizard.py FormWizard.jump_to_step   4 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.can_proceed_to_step   14 2 0   86%
src/lexigram/admin/forms/wizard.py FormWizard.next_step   17 2 0   88%
src/lexigram/admin/forms/wizard.py FormWizard.previous_step   11 2 0   82%
src/lexigram/admin/forms/wizard.py FormWizard.skip_step   15 5 0   67%
src/lexigram/admin/forms/wizard.py FormWizard.add_review_step   2 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.get_step_validation_summary   3 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.reset   5 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard._load_draft   8 1 0   88%
src/lexigram/admin/forms/wizard.py FormWizard._save_draft   3 0 0   100%
src/lexigram/admin/forms/wizard.py FormWizard.save_draft   1 1 0   0%
src/lexigram/admin/forms/wizard.py WizardRenderer.__init__   2 2 0   0%
src/lexigram/admin/forms/wizard.py WizardRenderer.render   1 1 0   0%
src/lexigram/admin/forms/wizard.py WizardRenderer.render_progress_bar   2 2 0   0%
src/lexigram/admin/forms/wizard.py WizardRenderer.render_step_navigation   7 7 0   0%
src/lexigram/admin/forms/wizard.py WizardRenderer.render_current_step   4 4 0   0%
src/lexigram/admin/forms/wizard.py (no function)   44 0 2   100%
src/lexigram/admin/gdpr/__init__.py (no function)   6 0 0   100%
src/lexigram/admin/gdpr/anonymizer.py _apply_strategy   16 2 0   88%
src/lexigram/admin/gdpr/anonymizer.py anonymize_record   7 0 0   100%
src/lexigram/admin/gdpr/anonymizer.py (no function)   7 0 0   100%
src/lexigram/admin/gdpr/export.py export_sar_json   3 0 0   100%
src/lexigram/admin/gdpr/export.py (no function)   5 0 2   100%
src/lexigram/admin/gdpr/models.py (no function)   41 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.__init__   5 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.add_rule   1 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.get_rule   1 1 0   0%
src/lexigram/admin/gdpr/service.py GDPRService.anonymize   4 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.erasure_plan   1 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.submit_sar   4 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.complete_sar   7 1 0   86%
src/lexigram/admin/gdpr/service.py GDPRService.reject_sar   7 1 0   86%
src/lexigram/admin/gdpr/service.py GDPRService.get_sar   1 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.list_sars   4 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.record_consent   4 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.has_consent   5 0 0   100%
src/lexigram/admin/gdpr/service.py GDPRService.consent_history   1 0 0   100%
src/lexigram/admin/gdpr/service.py (no function)   20 0 0   100%
src/lexigram/admin/handlers/__init__.py (no function)   3 3 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ResourceCommandHandler.__init__   2 2 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ResourceCommandHandler.get_data_source   3 3 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ResourceCommandHandler.handle_create   12 12 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ResourceCommandHandler.handle_update   19 19 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ResourceCommandHandler.handle_delete   13 13 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ResourceCommandHandler.handle_bulk_delete   11 11 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ExportCommandHandler.__init__   9 9 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py ExportCommandHandler.handle_export   47 47 0   0%
src/lexigram/admin/handlers/admin_command_handlers.py (no function)   22 22 3   0%
src/lexigram/admin/hooks.py (no function)   12 0 0   100%
src/lexigram/admin/i18n/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/i18n/locale.py convert_to_timezone   8 0 0   100%
src/lexigram/admin/i18n/locale.py get_user_timezone   7 0 0   100%
src/lexigram/admin/i18n/locale.py get_locale   13 0 0   100%
src/lexigram/admin/i18n/locale.py (no function)   9 0 0   100%
src/lexigram/admin/i18n/translator.py _interpolate   3 0 0   100%
src/lexigram/admin/i18n/translator.py _plural_form   4 0 0   100%
src/lexigram/admin/i18n/translator.py _parse_accept_language   12 1 0   92%
src/lexigram/admin/i18n/translator.py Translator.__init__   2 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.load_catalog   3 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.get_catalog   1 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.loaded_locales   1 0 0   100%
src/lexigram/admin/i18n/translator.py Translator._fallback_chain   6 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.t   17 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.format_number   5 1 0   80%
src/lexigram/admin/i18n/translator.py Translator.format_currency   4 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.format_date   1 0 0   100%
src/lexigram/admin/i18n/translator.py Translator.format_datetime   9 0 0   100%
src/lexigram/admin/i18n/translator.py (no function)   30 0 0   100%
src/lexigram/admin/integrations/__init__.py register   1 0 0   100%
src/lexigram/admin/integrations/__init__.py get   1 0 0   100%
src/lexigram/admin/integrations/__init__.py (no function)   6 0 0   100%
src/lexigram/admin/integrations/_optional.py is_installed   1 0 0   100%
src/lexigram/admin/integrations/_optional.py require_or_noop   4 0 0   100%
src/lexigram/admin/integrations/_optional.py (no function)   7 0 0   100%
src/lexigram/admin/integrations/cache.py _NoOpCache.get   1 1 0   0%
src/lexigram/admin/integrations/cache.py _NoOpCache.set   1 1 0   0%
src/lexigram/admin/integrations/cache.py _NoOpCache.delete   1 1 0   0%
src/lexigram/admin/integrations/cache.py _NoOpCache.get_or_set   1 1 0   0%
src/lexigram/admin/integrations/cache.py CacheIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/cache.py CacheIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/cache.py CacheIntegration.boot   7 1 0   86%
src/lexigram/admin/integrations/cache.py CacheIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/cache.py CacheIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/cache.py CacheIntegration.cache_key   2 2 0   0%
src/lexigram/admin/integrations/cache.py CacheIntegration.get_or_compute   2 2 0   0%
src/lexigram/admin/integrations/cache.py CacheIntegration.invalidate   2 2 0   0%
src/lexigram/admin/integrations/cache.py (no function)   24 0 2   100%
src/lexigram/admin/integrations/features.py _NoOpFeatures.is_enabled   1 1 0   0%
src/lexigram/admin/integrations/features.py FeaturesIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/features.py FeaturesIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/features.py FeaturesIntegration.boot   7 1 0   86%
src/lexigram/admin/integrations/features.py FeaturesIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/features.py FeaturesIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/features.py FeaturesIntegration.is_enabled   1 1 0   0%
src/lexigram/admin/integrations/features.py FeaturesIntegration.is_enabled_async   1 1 0   0%
src/lexigram/admin/integrations/features.py (no function)   13 0 2   100%
src/lexigram/admin/integrations/monitor.py _NoOpMonitor.increment   1 1 0   0%
src/lexigram/admin/integrations/monitor.py _NoOpMonitor.gauge   1 1 0   0%
src/lexigram/admin/integrations/monitor.py _NoOpMonitor.histogram   1 1 0   0%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.boot   7 1 0   86%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.increment   2 2 0   0%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.gauge   2 2 0   0%
src/lexigram/admin/integrations/monitor.py MonitorIntegration.histogram   2 2 0   0%
src/lexigram/admin/integrations/monitor.py (no function)   16 0 2   100%
src/lexigram/admin/integrations/resilience.py _NoOpResilience.execute   1 1 0   0%
src/lexigram/admin/integrations/resilience.py ResilienceIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/resilience.py ResilienceIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/resilience.py ResilienceIntegration.boot   7 1 0   86%
src/lexigram/admin/integrations/resilience.py ResilienceIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/resilience.py ResilienceIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/resilience.py ResilienceIntegration.execute   3 3 0   0%
src/lexigram/admin/integrations/resilience.py (no function)   18 0 2   100%
src/lexigram/admin/integrations/search.py _NoOpSearch.search   1 1 0   0%
src/lexigram/admin/integrations/search.py SearchIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/search.py SearchIntegration.boot   3 1 0   67%
src/lexigram/admin/integrations/search.py SearchIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration.query   5 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration._get_engine   7 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration._unwrap   7 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration.is_available   1 0 0   100%
src/lexigram/admin/integrations/search.py SearchIntegration.fallback_to_like   1 1 0   0%
src/lexigram/admin/integrations/search.py (no function)   20 0 2   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.__init__   4 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.find_one   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.find_many   24 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.count   9 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.create   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.update   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.delete   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.bulk_create   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.bulk_update   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper.bulk_delete   1 0 0   100%
src/lexigram/admin/integrations/search_query.py SearchQueryDataSourceWrapper._fetch_matching_ids   18 1 0   94%
src/lexigram/admin/integrations/search_query.py _empty_result   2 2 0   0%
src/lexigram/admin/integrations/search_query.py (no function)   20 0 2   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.__init__   4 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.find_one   1 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.find_many   1 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.count   1 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.create   3 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.update   3 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.delete   4 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.bulk_create   1 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.bulk_update   1 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper.bulk_delete   1 0 0   100%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper._index_entity   9 1 0   89%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper._remove_document   8 4 0   50%
src/lexigram/admin/integrations/search_sync.py SearchSyncDataSourceWrapper._to_document   9 1 0   89%
src/lexigram/admin/integrations/search_sync.py (no function)   18 0 3   100%
src/lexigram/admin/integrations/storage.py _NoOpStorage.put   1 1 0   0%
src/lexigram/admin/integrations/storage.py _NoOpStorage.get   1 1 0   0%
src/lexigram/admin/integrations/storage.py _NoOpStorage.delete   1 1 0   0%
src/lexigram/admin/integrations/storage.py _NoOpStorage.presigned_url   1 1 0   0%
src/lexigram/admin/integrations/storage.py StorageIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/storage.py StorageIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/storage.py StorageIntegration.boot   7 1 0   86%
src/lexigram/admin/integrations/storage.py StorageIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/storage.py StorageIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/storage.py StorageIntegration.put   1 1 0   0%
src/lexigram/admin/integrations/storage.py StorageIntegration.get   1 1 0   0%
src/lexigram/admin/integrations/storage.py StorageIntegration.delete   1 1 0   0%
src/lexigram/admin/integrations/storage.py StorageIntegration.presigned_url   2 2 0   0%
src/lexigram/admin/integrations/storage.py (no function)   18 0 2   100%
src/lexigram/admin/integrations/tasks.py _NoOpTasks.dispatch   1 1 0   0%
src/lexigram/admin/integrations/tasks.py TasksIntegration.__init__   3 0 0   100%
src/lexigram/admin/integrations/tasks.py TasksIntegration.register   12 5 0   58%
src/lexigram/admin/integrations/tasks.py TasksIntegration.boot   7 1 0   86%
src/lexigram/admin/integrations/tasks.py TasksIntegration.shutdown   1 0 0   100%
src/lexigram/admin/integrations/tasks.py TasksIntegration.health_check   1 0 0   100%
src/lexigram/admin/integrations/tasks.py TasksIntegration.dispatch   1 1 0   0%
src/lexigram/admin/integrations/tasks.py TasksIntegration.threshold   1 0 0   100%
src/lexigram/admin/integrations/tasks.py (no function)   14 0 2   100%
src/lexigram/admin/layout/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/layout/layout_manager.py LayoutConfig.with_option   2 2 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutViewConfig.add   2 2 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutViewConfig.set_default   2 2 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.__init__   3 0 0   100%
src/lexigram/admin/layout/layout_manager.py LayoutManager.register   4 4 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.set_default   2 2 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.get_config   1 1 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.get_available   1 1 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.get_current   1 1 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.set_current   2 2 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.get_default   1 1 0   0%
src/lexigram/admin/layout/layout_manager.py LayoutManager.has_multiple_layouts   1 1 0   0%
src/lexigram/admin/layout/layout_manager.py (no function)   45 0 2   100%
src/lexigram/admin/lib/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/lib/di.py get_admin_resolver   5 1 0   80%
src/lexigram/admin/lib/di.py resolve_admin_service   2 2 0   0%
src/lexigram/admin/lib/di.py (no function)   5 0 2   100%
src/lexigram/admin/lib/password.py hash_password   6 0 0   100%
src/lexigram/admin/lib/password.py (no function)   3 0 0   100%
src/lexigram/admin/lib/security.py mask_sensitive_data   15 0 0   100%
src/lexigram/admin/lib/security.py mask_string_secrets   3 0 0   100%
src/lexigram/admin/lib/security.py (no function)   6 0 0   100%
src/lexigram/admin/lib/specifications.py SpecificationBase.is_satisfied_by   1 1 0   0%
src/lexigram/admin/lib/specifications.py SpecificationBase.__and__   1 0 0   100%
src/lexigram/admin/lib/specifications.py FieldSpecification.__init__   3 0 0   100%
src/lexigram/admin/lib/specifications.py FieldSpecification.is_satisfied_by   21 21 0   0%
src/lexigram/admin/lib/specifications.py AndSpecification.__init__   2 0 0   100%
src/lexigram/admin/lib/specifications.py AndSpecification.is_satisfied_by   1 1 0   0%
src/lexigram/admin/lib/specifications.py AndSpecification.__invert__   1 1 0   0%
src/lexigram/admin/lib/specifications.py AndSpecification.__or__   1 1 0   0%
src/lexigram/admin/lib/specifications.py (no function)   27 0 0   100%
src/lexigram/admin/lib/template/__init__.py (no function)   7 0 0   100%
src/lexigram/admin/lib/template/auth.py render_login_page   7 0 0   100%
src/lexigram/admin/lib/template/auth.py render_password_reset_request_page   5 1 0   80%
src/lexigram/admin/lib/template/auth.py render_password_reset_confirm_page   3 0 0   100%
src/lexigram/admin/lib/template/auth.py render_mfa_challenge_page   10 0 0   100%
src/lexigram/admin/lib/template/auth.py render_verify_email_page   5 0 0   100%
src/lexigram/admin/lib/template/auth.py render_email_verified_page   12 0 0   100%
src/lexigram/admin/lib/template/auth.py render_mfa_setup_page   14 0 0   100%
src/lexigram/admin/lib/template/auth.py render_register_page   3 0 0   100%
src/lexigram/admin/lib/template/auth.py (no function)   11 0 0   100%
src/lexigram/admin/lib/template/error.py render_error_page   9 1 0   89%
src/lexigram/admin/lib/template/error.py (no function)   3 0 0   100%
src/lexigram/admin/lib/template/layout.py _flash_messages   6 1 0   83%
src/lexigram/admin/lib/template/layout.py _standalone_card   3 0 0   100%
src/lexigram/admin/lib/template/layout.py _auth_form   7 1 0   86%
src/lexigram/admin/lib/template/layout.py _code_input   1 0 0   100%
src/lexigram/admin/lib/template/layout.py _email_badge   3 0 0   100%
src/lexigram/admin/lib/template/layout.py _primary_link   1 0 0   100%
src/lexigram/admin/lib/template/layout.py _auth_footer   1 0 0   100%
src/lexigram/admin/lib/template/layout.py _flash   6 6 0   0%
src/lexigram/admin/lib/template/layout.py (no function)   12 0 0   100%
src/lexigram/admin/lib/template/profile.py render_profile_page   9 0 0   100%
src/lexigram/admin/lib/template/profile.py render_profile_page.field_error   1 0 0   100%
src/lexigram/admin/lib/template/profile.py (no function)   2 0 0   100%
src/lexigram/admin/lib/template/render.py render_template   16 16 0   0%
src/lexigram/admin/lib/template/render.py (no function)   4 0 0   100%
src/lexigram/admin/lib/template/setup.py render_setup_page   12 0 0   100%
src/lexigram/admin/lib/template/setup.py (no function)   4 0 0   100%
src/lexigram/admin/lib/transformation.py DataTransformer.__init__   2 0 0   100%
src/lexigram/admin/lib/transformation.py DataTransformer.register   2 0 0   100%
src/lexigram/admin/lib/transformation.py DataTransformer.transform_to_form   5 0 0   100%
src/lexigram/admin/lib/transformation.py DataTransformer.transform_from_form   5 0 0   100%
src/lexigram/admin/lib/transformation.py json_transformer   2 0 0   100%
src/lexigram/admin/lib/transformation.py comma_separated_list   1 1 0   0%
src/lexigram/admin/lib/transformation.py (no function)   10 0 2   100%
src/lexigram/admin/mapping/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/mapping/admin_mappings.py _entity_to_record   1 0 0   100%
src/lexigram/admin/mapping/admin_mappings.py _entity_to_dict   1 0 0   100%
src/lexigram/admin/mapping/admin_mappings.py _record_to_entity   1 0 0   100%
src/lexigram/admin/mapping/admin_mappings.py register_admin_mappings   3 0 0   100%
src/lexigram/admin/mapping/admin_mappings.py (no function)   9 0 2   100%
src/lexigram/admin/mapping/mapper.py AdminObjectMapper.__init__   1 0 0   100%
src/lexigram/admin/mapping/mapper.py AdminObjectMapper.register   2 0 0   100%
src/lexigram/admin/mapping/mapper.py AdminObjectMapper.map   8 0 0   100%
src/lexigram/admin/mapping/mapper.py (no function)   10 0 2   100%
src/lexigram/admin/media/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/media/library.py MediaLibrary.__init__   3 0 0   100%
src/lexigram/admin/media/library.py MediaLibrary.register   6 0 0   100%
src/lexigram/admin/media/library.py MediaLibrary.update   10 1 0   90%
src/lexigram/admin/media/library.py MediaLibrary.get   1 0 0   100%
src/lexigram/admin/media/library.py MediaLibrary.list_folder   6 0 0   100%
src/lexigram/admin/media/library.py MediaLibrary.search   14 1 0   93%
src/lexigram/admin/media/library.py MediaLibrary.list_folders   1 0 0   100%
src/lexigram/admin/media/library.py MediaLibrary.soft_delete   6 1 0   83%
src/lexigram/admin/media/library.py MediaLibrary.restore   6 1 0   83%
src/lexigram/admin/media/library.py MediaLibrary.purge   9 4 0   56%
src/lexigram/admin/media/library.py MediaLibrary.trash   1 0 0   100%
src/lexigram/admin/media/library.py (no function)   18 0 0   100%
src/lexigram/admin/media/models.py MediaItem.extension   3 0 0   100%
src/lexigram/admin/media/models.py MediaItem.is_image   1 0 0   100%
src/lexigram/admin/media/models.py MediaItem.is_video   1 0 0   100%
src/lexigram/admin/media/models.py MediaItem.is_document   1 0 0   100%
src/lexigram/admin/media/models.py MediaItem.to_dict   1 0 0   100%
src/lexigram/admin/media/models.py MediaPage.total_pages   4 1 0   75%
src/lexigram/admin/media/models.py MediaPage.has_next   1 0 0   100%
src/lexigram/admin/media/models.py MediaPage.has_prev   1 0 0   100%
src/lexigram/admin/media/models.py (no function)   45 0 0   100%
src/lexigram/admin/middleware/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/middleware/admin_auth_token.py DebugAdminAuthMiddleware.__init__   1 1 0   0%
src/lexigram/admin/middleware/admin_auth_token.py DebugAdminAuthMiddleware.__call__   12 12 0   0%
src/lexigram/admin/middleware/admin_auth_token.py (no function)   10 0 0   100%
src/lexigram/admin/middleware/auth.py AdminAuthMiddleware.__init__   5 0 0   100%
src/lexigram/admin/middleware/auth.py AdminAuthMiddleware._is_path_excluded   8 3 0   62%
src/lexigram/admin/middleware/auth.py AdminAuthMiddleware.__call__   21 4 0   81%
src/lexigram/admin/middleware/auth.py AdminAuthMiddleware._load_user   45 5 0   89%
src/lexigram/admin/middleware/auth.py current_user   3 0 0   100%
src/lexigram/admin/middleware/auth.py (no function)   20 0 2   100%
src/lexigram/admin/middleware/auth_guard.py AdminAuthGuardMiddleware.__init__   1 0 0   100%
src/lexigram/admin/middleware/auth_guard.py AdminAuthGuardMiddleware.__call__   20 6 0   70%
src/lexigram/admin/middleware/auth_guard.py AdminAuthGuardMiddleware._is_htmx   2 0 0   100%
src/lexigram/admin/middleware/auth_guard.py AdminAuthGuardMiddleware._is_bypass_path   6 0 0   100%
src/lexigram/admin/middleware/auth_guard.py (no function)   16 0 0   100%
src/lexigram/admin/middleware/authorization.py DefaultRequestAuthorizer.authorize_request   2 2 0   0%
src/lexigram/admin/middleware/authorization.py RequestAuthorizerProtocol.authorize_request   0 0 1   100%
src/lexigram/admin/middleware/authorization.py AdminAuthorizationMiddleware.__init__   3 0 0   100%
src/lexigram/admin/middleware/authorization.py AdminAuthorizationMiddleware.dispatch   13 0 0   100%
src/lexigram/admin/middleware/authorization.py AdminAuthorizationMiddleware._unauthenticated   6 0 0   100%
src/lexigram/admin/middleware/authorization.py AdminAuthorizationMiddleware._forbidden   1 0 0   100%
src/lexigram/admin/middleware/authorization.py (no function)   22 0 4   100%
src/lexigram/admin/middleware/cache.py AdminCacheMiddleware.__init__   18 8 0   56%
src/lexigram/admin/middleware/cache.py AdminCacheMiddleware._get_cache_key   10 0 0   100%
src/lexigram/admin/middleware/cache.py AdminCacheMiddleware.__call__   47 11 0   77%
src/lexigram/admin/middleware/cache.py AdminCacheMiddleware.__call__.send_with_caching   11 2 0   82%
src/lexigram/admin/middleware/cache.py AdminCacheMiddleware._cache_and_send_response   22 11 0   50%
src/lexigram/admin/middleware/cache.py (no function)   14 0 0   100%
src/lexigram/admin/middleware/correlation.py AdminCorrelationMiddleware.__init__   1 1 0   0%
src/lexigram/admin/middleware/correlation.py AdminCorrelationMiddleware.dispatch   5 5 0   0%
src/lexigram/admin/middleware/correlation.py (no function)   10 0 0   100%
src/lexigram/admin/middleware/csrf.py AdminCsrfMiddleware.__init__   3 0 0   100%
src/lexigram/admin/middleware/csrf.py AdminCsrfMiddleware._audit_violation   7 0 0   100%
src/lexigram/admin/middleware/csrf.py AdminCsrfMiddleware.__call__   16 0 0   100%
src/lexigram/admin/middleware/csrf.py AdminCsrfMiddleware._is_bypass_path   6 0 0   100%
src/lexigram/admin/middleware/csrf.py AdminCsrfMiddleware._validate_csrf   30 3 0   90%
src/lexigram/admin/middleware/csrf.py AdminCsrfMiddleware._send_403   3 0 0   100%
src/lexigram/admin/middleware/csrf.py (no function)   18 0 0   100%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware.__init__   3 0 0   100%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware.dispatch   5 0 0   100%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware._should_return_json   11 3 0   73%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware._is_htmx   1 0 0   100%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware.handle   13 3 0   77%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware._make_json_response   1 1 0   0%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware._make_htmx_response   31 6 0   81%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware._make_html_response   23 20 0   13%
src/lexigram/admin/middleware/error.py AdminErrorMiddleware._render_debug_error_html   24 24 0   0%
src/lexigram/admin/middleware/error.py (no function)   24 0 0   100%
src/lexigram/admin/middleware/input_sanitizer.py AdminInputSanitizer.sanitize   6 0 0   100%
src/lexigram/admin/middleware/input_sanitizer.py AdminInputSanitizer.sanitize_dict   10 0 0   100%
src/lexigram/admin/middleware/input_sanitizer.py AdminInputSanitizer.sanitize_header_value   1 1 0   0%
src/lexigram/admin/middleware/input_sanitizer.py AdminInputSanitizer.is_safe_url_for_request   2 0 0   100%
src/lexigram/admin/middleware/input_sanitizer.py (no function)   14 0 0   100%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware.__init__   1 1 0   0%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware.__call__   11 11 0   0%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware.__call__.send_with_push   6 6 0   0%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware._is_body_targeted_get   6 6 0   0%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware._get_header   4 4 0   0%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware._is_html   2 2 0   0%
src/lexigram/admin/middleware/nav_push.py AdminNavPushMiddleware._build_push_url   8 8 0   0%
src/lexigram/admin/middleware/nav_push.py (no function)   13 0 0   100%
src/lexigram/admin/middleware/read_audit.py AdminReadAuditMiddleware.__init__   4 0 0   100%
src/lexigram/admin/middleware/read_audit.py AdminReadAuditMiddleware.dispatch   14 1 0   93%
src/lexigram/admin/middleware/read_audit.py (no function)   12 0 0   100%
src/lexigram/admin/middleware/security_headers.py AdminSecurityHeaders.__init__   1 0 0   100%
src/lexigram/admin/middleware/security_headers.py AdminSecurityHeaders.apply   3 0 0   100%
src/lexigram/admin/middleware/security_headers.py SecurityHeadersMiddleware.__init__   4 0 0   100%
src/lexigram/admin/middleware/security_headers.py SecurityHeadersMiddleware._resolve_headers   13 3 0   77%
src/lexigram/admin/middleware/security_headers.py SecurityHeadersMiddleware.__call__   6 0 0   100%
src/lexigram/admin/middleware/security_headers.py SecurityHeadersMiddleware.__call__.send_with_headers   6 0 0   100%
src/lexigram/admin/middleware/security_headers.py (no function)   18 0 2   100%
src/lexigram/admin/middleware/setup.py SetupMiddleware.__init__   2 0 0   100%
src/lexigram/admin/middleware/setup.py SetupMiddleware.__call__   22 3 0   86%
src/lexigram/admin/middleware/setup.py (no function)   9 0 2   100%
src/lexigram/admin/middleware/tenant.py AdminTenantMiddleware.__init__   2 0 0   100%
src/lexigram/admin/middleware/tenant.py AdminTenantMiddleware.__call__   23 0 0   100%
src/lexigram/admin/middleware/tenant.py (no function)   9 0 3   100%
src/lexigram/admin/models/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/models/provider_models.py (no function)   22 0 2   100%
src/lexigram/admin/module.py AdminModule.configure   3 0 0   100%
src/lexigram/admin/module.py AdminModule.stub   3 3 0   0%
src/lexigram/admin/module.py (no function)   10 0 0   100%
src/lexigram/admin/multitenancy/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.__init__   3 0 0   100%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.add   9 1 0   89%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.remove   9 1 0   89%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.get   10 3 0   70%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.get_or_raise   4 0 0   100%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.get_by_domain   2 0 0   100%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.all   12 1 0   92%
src/lexigram/admin/multitenancy/adapter.py TenantProviderRegistry.exists   1 0 0   100%
src/lexigram/admin/multitenancy/adapter.py _to_tenant_config   1 0 0   100%
src/lexigram/admin/multitenancy/adapter.py resolve_tenant_id   23 0 0   100%
src/lexigram/admin/multitenancy/adapter.py (no function)   18 0 3   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.__init__   3 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource._inject_tenant   5 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.list   1 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.find_one   8 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.create   2 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.update   1 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.delete   1 0 0   100%
src/lexigram/admin/multitenancy/data_source.py TenantScopedDataSource.tenant_id   1 0 0   100%
src/lexigram/admin/multitenancy/data_source.py (no function)   15 0 0   100%
src/lexigram/admin/multitenancy/models.py TenantConfig.__post_init__   4 0 0   100%
src/lexigram/admin/multitenancy/models.py (no function)   16 0 0   100%
src/lexigram/admin/navigation/__init__.py (no function)   7 0 0   100%
src/lexigram/admin/navigation/assembler.py NavigationAssembler.__init__   2 0 0   100%
src/lexigram/admin/navigation/assembler.py NavigationAssembler.build   9 0 0   100%
src/lexigram/admin/navigation/assembler.py contributions_to_flat_nav   21 0 0   100%
src/lexigram/admin/navigation/assembler.py (no function)   10 0 0   100%
src/lexigram/admin/navigation/builder.py NavigationBuilder.__init__   4 4 0   0%
src/lexigram/admin/navigation/builder.py NavigationBuilder.prefix   2 2 0   0%
src/lexigram/admin/navigation/builder.py NavigationBuilder.default_icon   2 2 0   0%
src/lexigram/admin/navigation/builder.py NavigationBuilder.group   3 3 0   0%
src/lexigram/admin/navigation/builder.py NavigationBuilder.item   4 4 0   0%
src/lexigram/admin/navigation/builder.py NavigationBuilder.end_group   2 2 0   0%
src/lexigram/admin/navigation/builder.py NavigationBuilder.build   1 1 0   0%
src/lexigram/admin/navigation/builder.py (no function)   11 0 0   100%
src/lexigram/admin/navigation/clusters.py cluster_child_href   8 0 0   100%
src/lexigram/admin/navigation/clusters.py cluster_items   3 0 0   100%
src/lexigram/admin/navigation/clusters.py is_cluster_path   7 0 0   100%
src/lexigram/admin/navigation/clusters.py _is_active   3 1 0   67%
src/lexigram/admin/navigation/clusters.py build_secondary_nav   8 0 0   100%
src/lexigram/admin/navigation/clusters.py collapse_cluster_in_primary   15 2 0   87%
src/lexigram/admin/navigation/clusters.py (no function)   15 0 0   100%
src/lexigram/admin/navigation/manager.py NavigationManager.__init__   8 0 0   100%
src/lexigram/admin/navigation/manager.py NavigationManager.clusters   1 0 0   100%
src/lexigram/admin/navigation/manager.py NavigationManager.active_cluster   2 0 0   100%
src/lexigram/admin/navigation/manager.py NavigationManager._current_path   3 1 0   67%
src/lexigram/admin/navigation/manager.py NavigationManager.resolve_nav   76 20 0   74%
src/lexigram/admin/navigation/manager.py NavigationManager.user_menu_items   6 0 0   100%
src/lexigram/admin/navigation/manager.py (no function)   15 0 0   100%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder.__init__   3 0 0   100%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder.set_resources   1 0 0   100%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder.set_system_menu_items   1 0 0   100%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder.add_system_menu_item   1 1 0   0%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder.build_nav_items   27 7 0   74%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder.build_system_menu_items   1 0 0   100%
src/lexigram/admin/navigation/nav_item_builder.py NavItemBuilder._is_active   3 0 0   100%
src/lexigram/admin/navigation/nav_item_builder.py (no function)   15 0 0   100%
src/lexigram/admin/navigation/types.py SidebarNavItem.to_dict   8 1 0   88%
src/lexigram/admin/navigation/types.py MenuItem.to_dict   1 0 0   100%
src/lexigram/admin/navigation/types.py (no function)   51 0 0   100%
src/lexigram/admin/observability/admin_metrics.py AdminMetrics.__init__   2 0 0   100%
src/lexigram/admin/observability/admin_metrics.py AdminMetrics.record_operation   5 0 0   100%
src/lexigram/admin/observability/admin_metrics.py AdminMetrics.record_login   2 1 0   50%
src/lexigram/admin/observability/admin_metrics.py AdminMetrics.record_authz_denied   2 0 0   100%
src/lexigram/admin/observability/admin_metrics.py OperationTimer.__init__   1 0 0   100%
src/lexigram/admin/observability/admin_metrics.py OperationTimer.elapsed   1 0 0   100%
src/lexigram/admin/observability/admin_metrics.py (no function)   11 0 0   100%
src/lexigram/admin/openapi/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/openapi/controller.py OpenAPIController.__init__   1 0 0   100%
src/lexigram/admin/openapi/controller.py OpenAPIController.get_spec   2 0 0   100%
src/lexigram/admin/openapi/controller.py (no function)   8 0 2   100%
src/lexigram/admin/openapi/field_converter.py _register   2 0 0   100%
src/lexigram/admin/openapi/field_converter.py _register.decorator   2 0 0   100%
src/lexigram/admin/openapi/field_converter.py _string   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _email   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _password   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _url   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _integer   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _float   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _number   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _rating   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _boolean   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _date   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _datetime   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _time   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _select   3 0 0   100%
src/lexigram/admin/openapi/field_converter.py _enum   3 3 0   0%
src/lexigram/admin/openapi/field_converter.py _multi_select   4 0 0   100%
src/lexigram/admin/openapi/field_converter.py _tags   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _relation   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _json   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _key_value   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _file   1 0 0   100%
src/lexigram/admin/openapi/field_converter.py _add_enum_if_options   2 0 0   100%
src/lexigram/admin/openapi/field_converter.py _extract_validator_constraints   17 0 0   100%
src/lexigram/admin/openapi/field_converter.py field_to_openapi_property   15 1 0   93%
src/lexigram/admin/openapi/field_converter.py (no function)   64 0 0   100%
src/lexigram/admin/openapi/resource_converter.py resource_to_schema   11 0 0   100%
src/lexigram/admin/openapi/resource_converter.py resources_to_openapi_spec   17 0 0   100%
src/lexigram/admin/openapi/resource_converter.py (no function)   6 0 2   100%
src/lexigram/admin/pages/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/pages/base.py Page.view   0 0 1   100%
src/lexigram/admin/pages/base.py Page.post   1 0 0   100%
src/lexigram/admin/pages/base.py Page.navigation   1 0 0   100%
src/lexigram/admin/pages/base.py (no function)   13 0 1   100%
src/lexigram/admin/pages/resource_pages.py ListPage.__init__   3 0 0   100%
src/lexigram/admin/pages/resource_pages.py ListPage.view   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py ListPage._render_list   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py CreatePage.__init__   3 1 0   67%
src/lexigram/admin/pages/resource_pages.py CreatePage.view   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py CreatePage._render_form   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py CreatePage.post   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py EditPage.__init__   3 1 0   67%
src/lexigram/admin/pages/resource_pages.py EditPage.view   2 0 0   100%
src/lexigram/admin/pages/resource_pages.py EditPage._get_record_id   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py EditPage._render_form   1 0 0   100%
src/lexigram/admin/pages/resource_pages.py EditPage.post   2 0 0   100%
src/lexigram/admin/pages/resource_pages.py ViewPage.__init__   4 0 0   100%
src/lexigram/admin/pages/resource_pages.py ViewPage.view   2 0 0   100%
src/lexigram/admin/pages/resource_pages.py ViewPage._render_detail   7 0 0   100%
src/lexigram/admin/pages/resource_pages.py (no function)   28 0 2   100%
src/lexigram/admin/pages/types.py PageResponse.has_breadcrumbs   1 0 0   100%
src/lexigram/admin/pages/types.py (no function)   18 0 0   100%
src/lexigram/admin/params.py parse_widget_params   13 4 0   69%
src/lexigram/admin/params.py (no function)   5 0 0   100%
src/lexigram/admin/rbac/__init__.py (no function)   8 0 0   100%
src/lexigram/admin/rbac/errors.py (no function)   11 0 0   100%
src/lexigram/admin/rbac/inventory.py PermissionInventoryService.__init__   1 0 0   100%
src/lexigram/admin/rbac/inventory.py PermissionInventoryService.register_resources   4 0 0   100%
src/lexigram/admin/rbac/inventory.py PermissionInventoryService.resources   1 0 0   100%
src/lexigram/admin/rbac/inventory.py PermissionInventoryService.options   1 0 0   100%
src/lexigram/admin/rbac/inventory.py (no function)   10 0 0   100%
src/lexigram/admin/rbac/middleware.py RBACMiddleware.__init__   4 4 0   0%
src/lexigram/admin/rbac/middleware.py RBACMiddleware.dispatch   7 7 0   0%
src/lexigram/admin/rbac/middleware.py (no function)   14 14 0   0%
src/lexigram/admin/rbac/policies.py register_policy   1 0 0   100%
src/lexigram/admin/rbac/policies.py get_policy   1 1 0   0%
src/lexigram/admin/rbac/policies.py owner_only   5 5 0   0%
src/lexigram/admin/rbac/policies.py team_scoped   5 5 0   0%
src/lexigram/admin/rbac/policies.py (no function)   9 0 0   100%
src/lexigram/admin/rbac/protocols.py AdminRoleStoreProtocol.ensure_schema   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleStoreProtocol.list_roles   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleStoreProtocol.get_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleStoreProtocol.create_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleStoreProtocol.update_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleStoreProtocol.delete_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleServiceProtocol.list_roles   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleServiceProtocol.create_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleServiceProtocol.update_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py AdminRoleServiceProtocol.delete_role   0 0 1   100%
src/lexigram/admin/rbac/protocols.py (no function)   18 0 12   100%
src/lexigram/admin/rbac/registry.py register_resource_permissions   3 3 0   0%
src/lexigram/admin/rbac/registry.py get_resource_permissions   1 1 0   0%
src/lexigram/admin/rbac/registry.py (no function)   6 0 2   100%
src/lexigram/admin/rbac/role_service.py AdminRoleService.__init__   3 0 0   100%
src/lexigram/admin/rbac/role_service.py AdminRoleService.list_roles   1 0 0   100%
src/lexigram/admin/rbac/role_service.py AdminRoleService.create_role   12 1 0   92%
src/lexigram/admin/rbac/role_service.py AdminRoleService.update_role   12 1 0   92%
src/lexigram/admin/rbac/role_service.py AdminRoleService.delete_role   11 0 0   100%
src/lexigram/admin/rbac/role_service.py AdminRoleService._mirror   3 0 0   100%
src/lexigram/admin/rbac/role_service.py AdminRoleService._unmirror   3 1 0   67%
src/lexigram/admin/rbac/role_service.py AdminRoleService._audit   3 0 0   100%
src/lexigram/admin/rbac/role_service.py (no function)   21 0 0   100%
src/lexigram/admin/rbac/roles_sql.py _load_list   9 4 0   56%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.__init__   2 0 0   100%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.ensure_schema   7 0 0   100%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.list_roles   2 0 0   100%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.get_role   3 0 0   100%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.create_role   1 0 0   100%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.update_role   1 0 0   100%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore.delete_role   5 1 0   80%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore._rows   7 2 0   71%
src/lexigram/admin/rbac/roles_sql.py AdminRoleSqlStore._row_to_role   1 0 0   100%
src/lexigram/admin/rbac/roles_sql.py (no function)   26 0 0   100%
src/lexigram/admin/rbac/schema.py (no function)   21 0 0   100%
src/lexigram/admin/rbac/service.py PermissionService.__init__   2 0 0   100%
src/lexigram/admin/rbac/service.py PermissionService.set_roles   4 4 0   0%
src/lexigram/admin/rbac/service.py PermissionService.sync_from_db   4 4 0   0%
src/lexigram/admin/rbac/service.py PermissionService.register   2 0 0   100%
src/lexigram/admin/rbac/service.py PermissionService.get_schema   1 0 0   100%
src/lexigram/admin/rbac/service.py PermissionService.can_list   2 0 0   100%
src/lexigram/admin/rbac/service.py PermissionService.can_view   2 0 0   100%
src/lexigram/admin/rbac/service.py PermissionService.can_create   2 2 0   0%
src/lexigram/admin/rbac/service.py PermissionService.can_edit   11 11 0   0%
src/lexigram/admin/rbac/service.py PermissionService.can_delete   11 11 0   0%
src/lexigram/admin/rbac/service.py PermissionService.can_view_field   4 1 0   75%
src/lexigram/admin/rbac/service.py PermissionService.can_edit_field   4 1 0   75%
src/lexigram/admin/rbac/service.py PermissionService.should_mask_field   4 1 0   75%
src/lexigram/admin/rbac/service.py PermissionService.can_perform_action   4 4 0   0%
src/lexigram/admin/rbac/service.py PermissionService._check_access   4 0 0   100%
src/lexigram/admin/rbac/service.py (no function)   27 0 0   100%
src/lexigram/admin/rbac/super_admin.py is_super_admin   2 0 0   100%
src/lexigram/admin/rbac/super_admin.py (no function)   4 0 0   100%
src/lexigram/admin/rbac/types.py Policy.__call__   0 0 1   100%
src/lexigram/admin/rbac/types.py (no function)   11 0 1   100%
src/lexigram/admin/realtime/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/realtime/sse.py SSEHandler.stream   1 1 2   0%
src/lexigram/admin/realtime/sse.py AdminEvent.to_dict   1 0 0   100%
src/lexigram/admin/realtime/sse.py BulkOperationProgressHandler.start_operation   1 1 0   0%
src/lexigram/admin/realtime/sse.py BulkOperationProgressHandler.update_progress   3 3 0   0%
src/lexigram/admin/realtime/sse.py BulkOperationProgressHandler.complete_operation   4 4 0   0%
src/lexigram/admin/realtime/sse.py BulkOperationProgressHandler.stream   16 16 0   0%
src/lexigram/admin/realtime/sse.py (no function)   42 0 2   100%
src/lexigram/admin/realtime/subject_hub.py SubjectAdminEventHub.__init__   1 0 0   100%
src/lexigram/admin/realtime/subject_hub.py SubjectAdminEventHub.subscribe   8 0 0   100%
src/lexigram/admin/realtime/subject_hub.py SubjectAdminEventHub.publish   2 0 0   100%
src/lexigram/admin/realtime/subject_hub.py SubjectAdminEventHub.publish_notification   2 0 0   100%
src/lexigram/admin/realtime/subject_hub.py (no function)   15 0 0   100%
src/lexigram/admin/realtime/websocket.py _utc_now   1 0 0   100%
src/lexigram/admin/realtime/websocket.py WebSocket.send   0 0 0   100%
src/lexigram/admin/realtime/websocket.py WebSocket.receive   1 1 0   0%
src/lexigram/admin/realtime/websocket.py WebSocketHandler.on_connect   0 0 0   100%
src/lexigram/admin/realtime/websocket.py WebSocketHandler.on_disconnect   0 0 0   100%
src/lexigram/admin/realtime/websocket.py WebSocketHandler.on_message   0 0 0   100%
src/lexigram/admin/realtime/websocket.py WSMessage.to_dict   1 0 0   100%
src/lexigram/admin/realtime/websocket.py WSMessage.from_dict   4 0 0   100%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.__init__   5 5 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager._generate_connection_id   2 2 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.connect   9 9 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.disconnect   11 11 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.subscribe   6 6 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.unsubscribe   5 5 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.send   9 9 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.broadcast   16 16 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.send_to_user   1 1 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.connection_count   1 1 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketManager.get_user_connection_count   1 1 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketHandler.__init__   5 5 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketHandler.register_action   1 1 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketHandler.on_connect   8 8 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketHandler.on_message   10 10 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketHandler._handle_action   13 13 0   0%
src/lexigram/admin/realtime/websocket.py AdminWebSocketHandler.on_disconnect   3 3 0   0%
src/lexigram/admin/realtime/websocket.py ResourceChangeNotifier.__init__   1 1 0   0%
src/lexigram/admin/realtime/websocket.py ResourceChangeNotifier.notify_created   2 2 0   0%
src/lexigram/admin/realtime/websocket.py ResourceChangeNotifier.notify_updated   2 2 0   0%
src/lexigram/admin/realtime/websocket.py ResourceChangeNotifier.notify_deleted   2 2 0   0%
src/lexigram/admin/realtime/websocket.py ResourceChangeNotifier.notify_bulk_progress   2 2 0   0%
src/lexigram/admin/realtime/websocket.py (no function)   63 0 2   100%
src/lexigram/admin/realtime/ws_handler_registry.py WSMessageHandler.handle   0 0 1   100%
src/lexigram/admin/realtime/ws_handler_registry.py PingHandler.handle   2 2 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py SubscribeHandler.handle   4 4 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py UnsubscribeHandler.handle   4 4 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py ActionHandler.handle   3 3 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py WSMessageTypeRegistry.__init__   1 0 0   100%
src/lexigram/admin/realtime/ws_handler_registry.py WSMessageTypeRegistry.with_defaults   7 0 0   100%
src/lexigram/admin/realtime/ws_handler_registry.py WSMessageTypeRegistry.register   1 1 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py WSMessageTypeRegistry.handle_message   3 3 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py get_ws_message_type_registry   1 1 0   0%
src/lexigram/admin/realtime/ws_handler_registry.py (no function)   20 0 2   100%
src/lexigram/admin/relations/__init__.py (no function)   8 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.table   1 1 0   0%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._require_persistence   4 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._row_id   3 1 0   67%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._row_value   3 1 0   67%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._find_pivot_rows   5 1 0   80%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._matching_pivot_rows   2 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.attach   7 1 0   86%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.detach   5 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.sync   8 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.get_attached_ids   4 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.get_pivot_data   11 4 0   64%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.update_pivot   10 1 0   90%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.render   13 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._pivot_header_elements   1 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._render_pivot_headers   1 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._build_row   2 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._render_pivot_cells   7 1 0   86%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.get_pivot_routes   7 0 0   100%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.get_pivot_routes._handle_toggle   11 11 0   0%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.get_pivot_routes._handle_sync   12 12 0   0%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager.get_pivot_routes._handle_pivot_update   7 7 0   0%
src/lexigram/admin/relations/belongs_to_many.py BelongsToManyRelationManager._render_single_row   10 1 0   90%
src/lexigram/admin/relations/belongs_to_many.py (no function)   32 0 4   100%
src/lexigram/admin/relations/errors.py (no function)   4 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.__init__   3 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.set_data_source   1 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.get_parent   1 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.can_view_parent   1 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.table   0 0 1   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.get_query   0 0 1   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.count   2 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.get_items   6 0 0   100%
src/lexigram/admin/relations/manager.py AbstractRelationManager.get_relationship_name   1 0 0   100%
src/lexigram/admin/relations/manager.py (no function)   23 0 4   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.create_form   1 0 0   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.edit_form   1 0 0   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.can_create   1 0 0   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.can_edit   1 0 0   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.can_delete   1 0 0   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.can_detach   1 0 0   100%
src/lexigram/admin/relations/manager_ext.py RelationManager.render   29 0 0   100%
src/lexigram/admin/relations/manager_ext.py (no function)   19 0 0   100%
src/lexigram/admin/relations/morph_many.py MorphManyRelationManager.table   1 1 0   0%
src/lexigram/admin/relations/morph_many.py MorphManyRelationManager.get_query   1 0 0   100%
src/lexigram/admin/relations/morph_many.py MorphManyRelationManager.render   21 0 0   100%
src/lexigram/admin/relations/morph_many.py MorphManyRelationManager._render_empty_state   3 0 0   100%
src/lexigram/admin/relations/morph_many.py (no function)   12 0 0   100%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.table   1 1 0   0%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.get_query   1 1 0   0%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.__init__   3 0 0   100%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.get_available_types   5 0 0   100%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.search_records   1 0 0   100%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.render   7 0 0   100%
src/lexigram/admin/relations/morph_to.py MorphToRelationManager.get_selected_record   3 0 0   100%
src/lexigram/admin/relations/morph_to.py (no function)   14 0 2   100%
src/lexigram/admin/relations/routes.py register_relation_routes   8 0 0   100%
src/lexigram/admin/relations/routes.py register_relation_routes._handle_list   14 0 0   100%
src/lexigram/admin/relations/routes.py register_relation_routes._handle_create_form   14 2 0   86%
src/lexigram/admin/relations/routes.py register_relation_routes._handle_create   14 1 0   93%
src/lexigram/admin/relations/routes.py register_relation_routes._handle_edit_form   20 2 0   90%
src/lexigram/admin/relations/routes.py register_relation_routes._handle_update   17 1 0   94%
src/lexigram/admin/relations/routes.py register_relation_routes._handle_delete   16 1 0   94%
src/lexigram/admin/relations/routes.py _create_manager   1 0 0   100%
src/lexigram/admin/relations/routes.py _get_record   5 0 0   100%
src/lexigram/admin/relations/routes.py _require_parent   7 0 0   100%
src/lexigram/admin/relations/routes.py _check   9 1 0   89%
src/lexigram/admin/relations/routes.py _require_user   4 0 0   100%
src/lexigram/admin/relations/routes.py _deny   2 0 0   100%
src/lexigram/admin/relations/routes.py _audit_denial   8 0 0   100%
src/lexigram/admin/relations/routes.py (no function)   17 0 6   100%
src/lexigram/admin/resources/__init__.py (no function)   6 0 0   100%
src/lexigram/admin/resources/base.py _validate_resource_name   2 0 0   100%
src/lexigram/admin/resources/base.py Resource.__init_subclass__   19 0 0   100%
src/lexigram/admin/resources/base.py Resource.cache_spec   6 4 0   33%
src/lexigram/admin/resources/base.py Resource.search_spec   6 4 0   33%
src/lexigram/admin/resources/base.py Resource.resilient_spec   6 4 0   33%
src/lexigram/admin/resources/base.py Resource.set_data_source   3 0 0   100%
src/lexigram/admin/resources/base.py Resource.search   19 2 0   89%
src/lexigram/admin/resources/base.py Resource.fetch_list   19 2 0   89%
src/lexigram/admin/resources/base.py Resource.before_clone   4 0 0   100%
src/lexigram/admin/resources/base.py Resource.after_clone   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.duplicate   10 1 0   90%
src/lexigram/admin/resources/base.py Resource.before_restore   1 0 0   100%
src/lexigram/admin/resources/base.py Resource.after_restore   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.restore   10 1 0   90%
src/lexigram/admin/resources/base.py Resource.before_purge   1 0 0   100%
src/lexigram/admin/resources/base.py Resource.after_purge   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.purge   9 1 0   89%
src/lexigram/admin/resources/base.py Resource.before_create   1 1 0   0%
src/lexigram/admin/resources/base.py Resource.before_validate   29 20 0   31%
src/lexigram/admin/resources/base.py Resource.after_create   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.before_update   1 1 0   0%
src/lexigram/admin/resources/base.py Resource.after_update   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.before_delete   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.after_delete   0 0 0   100%
src/lexigram/admin/resources/base.py Resource.get_action_hooks   1 1 0   0%
src/lexigram/admin/resources/base.py Resource.get_table_config   20 1 0   95%
src/lexigram/admin/resources/base.py Resource.get_form_class   1 0 0   100%
src/lexigram/admin/resources/base.py Resource.get_form_display_mode   2 0 0   100%
src/lexigram/admin/resources/base.py Resource.get_layout_manager   12 12 0   0%
src/lexigram/admin/resources/base.py Resource._get_config_value   6 1 0   83%
src/lexigram/admin/resources/base.py Resource._apply_layout_config   1 0 0   100%
src/lexigram/admin/resources/base.py LayoutConfiguratorProtocol.can_configure   0 0 1   100%
src/lexigram/admin/resources/base.py LayoutConfiguratorProtocol.configure_layout   0 0 1   100%
src/lexigram/admin/resources/base.py GridLayoutConfigurator.can_configure   2 0 0   100%
src/lexigram/admin/resources/base.py GridLayoutConfigurator.configure_layout   1 0 0   100%
src/lexigram/admin/resources/base.py CalendarLayoutConfigurator.can_configure   2 0 0   100%
src/lexigram/admin/resources/base.py CalendarLayoutConfigurator.configure_layout   1 0 0   100%
src/lexigram/admin/resources/base.py MapLayoutConfigurator.can_configure   2 0 0   100%
src/lexigram/admin/resources/base.py MapLayoutConfigurator.configure_layout   1 0 0   100%
src/lexigram/admin/resources/base.py ListLayoutConfigurator.can_configure   2 0 0   100%
src/lexigram/admin/resources/base.py ListLayoutConfigurator.configure_layout   1 0 0   100%
src/lexigram/admin/resources/base.py LayoutConfiguratorRegistry.__init__   1 0 0   100%
src/lexigram/admin/resources/base.py LayoutConfiguratorRegistry.configure   5 1 0   80%
src/lexigram/admin/resources/base.py (no function)   100 0 14   100%
src/lexigram/admin/resources/config.py TableConfiguration.filters   1 0 0   100%
src/lexigram/admin/resources/config.py TableConfiguration.density_css_class   1 0 0   100%
src/lexigram/admin/resources/config.py TableConfiguration.density_row_height   2 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.__init__   25 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.builder   1 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.layout   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.name   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.group   8 8 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.view   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.views   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.per_page   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.group_by   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.sort   3 3 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.label   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.resource_name   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.icon   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.description   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.empty_state   7 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.record_title   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.column   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.columns   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.action   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.actions   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.filter   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.filters   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.action_layout   2 2 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.form_display_mode   3 3 0   0%
src/lexigram/admin/resources/config.py ResourceConfig.display_name   1 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.default_sort_field   1 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.default_sort_order   1 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.filters_list   1 0 0   100%
src/lexigram/admin/resources/config.py ResourceConfig.views_list   1 1 0   0%
src/lexigram/admin/resources/config.py (no function)   73 0 0   100%
src/lexigram/admin/resources/detail_renderer.py DetailRenderer.__init__   4 0 0   100%
src/lexigram/admin/resources/detail_renderer.py DetailRenderer.render_detail   10 10 0   0%
src/lexigram/admin/resources/detail_renderer.py DetailRenderer.render_inline_edit   23 23 0   0%
src/lexigram/admin/resources/detail_renderer.py DetailRenderer._get_item_html   12 3 0   75%
src/lexigram/admin/resources/detail_renderer.py DetailRenderer._render_item_infolist   11 1 0   91%
src/lexigram/admin/resources/detail_renderer.py (no function)   21 0 0   100%
src/lexigram/admin/resources/field_renderer.py FieldRendererProtocol.can_render   0 0 1   100%
src/lexigram/admin/resources/field_renderer.py FieldRendererProtocol.render_field   0 0 1   100%
src/lexigram/admin/resources/field_renderer.py _atom_args   8 1 0   88%
src/lexigram/admin/resources/field_renderer.py TextAreaFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py TextAreaFieldRenderer.render_field   1 1 0   0%
src/lexigram/admin/resources/field_renderer.py ListFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py ListFieldRenderer.render_field   2 2 0   0%
src/lexigram/admin/resources/field_renderer.py JsonFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py JsonFieldRenderer.render_field   3 0 0   100%
src/lexigram/admin/resources/field_renderer.py NumberFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py NumberFieldRenderer.render_field   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py BooleanFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py BooleanFieldRenderer.render_field   2 0 0   100%
src/lexigram/admin/resources/field_renderer.py MultiSelectFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py MultiSelectFieldRenderer.render_field   5 1 0   80%
src/lexigram/admin/resources/field_renderer.py HasManyFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py HasManyFieldRenderer.render_field   5 5 0   0%
src/lexigram/admin/resources/field_renderer.py BelongsToFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py BelongsToFieldRenderer.render_field   3 1 0   67%
src/lexigram/admin/resources/field_renderer.py MorphFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py MorphFieldRenderer.render_field   4 4 0   0%
src/lexigram/admin/resources/field_renderer.py SelectFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py SelectFieldRenderer.render_field   4 1 0   75%
src/lexigram/admin/resources/field_renderer.py DateFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py DateFieldRenderer.render_field   2 0 0   100%
src/lexigram/admin/resources/field_renderer.py DateTimeFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py DateTimeFieldRenderer.render_field   2 2 0   0%
src/lexigram/admin/resources/field_renderer.py EmailFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py EmailFieldRenderer.render_field   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py PasswordFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py PasswordFieldRenderer.render_field   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py ColorFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py ColorFieldRenderer.render_field   1 1 0   0%
src/lexigram/admin/resources/field_renderer.py TextFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py TextFieldRenderer.render_field   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py DefaultFieldRenderer.can_render   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py DefaultFieldRenderer.render_field   1 1 0   0%
src/lexigram/admin/resources/field_renderer.py FieldRendererRegistry.__init__   1 0 0   100%
src/lexigram/admin/resources/field_renderer.py FieldRendererRegistry.get_renderer   4 1 0   75%
src/lexigram/admin/resources/field_renderer.py FieldRenderer.__init__   2 0 0   100%
src/lexigram/admin/resources/field_renderer.py FieldRenderer.render_field   15 15 0   0%
src/lexigram/admin/resources/field_renderer.py FieldRenderer._build_field_component   19 4 0   79%
src/lexigram/admin/resources/field_renderer.py FieldRenderer._create_field_component   4 0 0   100%
src/lexigram/admin/resources/field_renderer.py (no function)   75 0 9   100%
src/lexigram/admin/resources/form_renderer.py FormRenderer.__init__   5 0 0   100%
src/lexigram/admin/resources/form_renderer.py FormRenderer.render_create   15 4 0   73%
src/lexigram/admin/resources/form_renderer.py FormRenderer.render_edit   16 16 0   0%
src/lexigram/admin/resources/form_renderer.py FormRenderer.render_wizard   45 45 0   0%
src/lexigram/admin/resources/form_renderer.py FormRenderer._fetch_item_data   13 13 0   0%
src/lexigram/admin/resources/form_renderer.py FormRenderer._ensure_csrf_token   4 2 0   50%
src/lexigram/admin/resources/form_renderer.py FormRenderer._build_form_component   61 30 0   51%
src/lexigram/admin/resources/form_renderer.py FormRenderer._create_field_component   4 0 0   100%
src/lexigram/admin/resources/form_renderer.py (no function)   25 0 0   100%
src/lexigram/admin/resources/handler.py _unwrap_optional   6 3 0   50%
src/lexigram/admin/resources/handler.py _coerce_form_data   81 60 0   26%
src/lexigram/admin/resources/handler.py _validation_errors_to_dict   4 4 0   0%
src/lexigram/admin/resources/handler.py ResourceActionHandler.can_handle   0 0 1   100%
src/lexigram/admin/resources/handler.py ResourceActionHandler.handle   0 0 1   100%
src/lexigram/admin/resources/handler.py ListActionHandler.__init__   1 0 0   100%
src/lexigram/admin/resources/handler.py ListActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py ListActionHandler.handle   1 0 0   100%
src/lexigram/admin/resources/handler.py DetailActionHandler.__init__   1 0 0   100%
src/lexigram/admin/resources/handler.py DetailActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py DetailActionHandler.handle   2 2 0   0%
src/lexigram/admin/resources/handler.py CreateActionHandler.__init__   1 0 0   100%
src/lexigram/admin/resources/handler.py CreateActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py CreateActionHandler.handle   3 3 0   0%
src/lexigram/admin/resources/handler.py CreateActionHandler._handle_create   17 17 0   0%
src/lexigram/admin/resources/handler.py EditActionHandler.__init__   1 0 0   100%
src/lexigram/admin/resources/handler.py EditActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py EditActionHandler.handle   4 4 0   0%
src/lexigram/admin/resources/handler.py EditActionHandler._handle_update   20 20 0   0%
src/lexigram/admin/resources/handler.py CloneActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py CloneActionHandler.handle   9 9 0   0%
src/lexigram/admin/resources/handler.py RestoreActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py RestoreActionHandler.handle   9 9 0   0%
src/lexigram/admin/resources/handler.py PurgeActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py PurgeActionHandler.handle   8 8 0   0%
src/lexigram/admin/resources/handler.py ImportActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py ImportActionHandler._find_import_action   6 0 0   100%
src/lexigram/admin/resources/handler.py ImportActionHandler._csv_response   2 0 0   100%
src/lexigram/admin/resources/handler.py ImportActionHandler.handle   18 1 0   94%
src/lexigram/admin/resources/handler.py DeleteActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py DeleteActionHandler.handle   4 0 0   100%
src/lexigram/admin/resources/handler.py DeleteActionHandler._confirm_delete   19 2 0   89%
src/lexigram/admin/resources/handler.py DeleteActionHandler._execute_delete   28 2 0   93%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler.__init__   1 0 0   100%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler.handle   10 2 0   80%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler._handle_form   8 0 0   100%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler._handle_submit   8 0 0   100%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler._permission_inventory   8 5 0   38%
src/lexigram/admin/resources/handler.py UserPermissionsActionHandler._ensure_csrf_token   6 1 0   83%
src/lexigram/admin/resources/handler.py BulkActionHandler.can_handle   1 0 0   100%
src/lexigram/admin/resources/handler.py BulkActionHandler.handle   41 8 0   80%
src/lexigram/admin/resources/handler.py DefaultActionHandler.can_handle   1 1 0   0%
src/lexigram/admin/resources/handler.py DefaultActionHandler.handle   1 1 0   0%
src/lexigram/admin/resources/handler.py ActionHandlerRegistry.__init__   5 0 0   100%
src/lexigram/admin/resources/handler.py ActionHandlerRegistry._initialize_handlers   9 0 0   100%
src/lexigram/admin/resources/handler.py ActionHandlerRegistry.handle   4 1 0   75%
src/lexigram/admin/resources/handler.py ResourceHandler.__init__   5 0 0   100%
src/lexigram/admin/resources/handler.py ResourceHandler.__call__   6 0 0   100%
src/lexigram/admin/resources/handler.py (no function)   81 0 6   100%
src/lexigram/admin/resources/lenses.py ResourceLens.get_name   5 0 0   100%
src/lexigram/admin/resources/lenses.py ResourceLens.get_label   3 0 0   100%
src/lexigram/admin/resources/lenses.py ResourceLens.apply_to_queryset   3 0 0   100%
src/lexigram/admin/resources/lenses.py ResourceLens.resolve_columns   1 0 0   100%
src/lexigram/admin/resources/lenses.py ResourceLens.resolve_filters   1 1 0   0%
src/lexigram/admin/resources/lenses.py ResourceLens.resolve_sort   1 0 0   100%
src/lexigram/admin/resources/lenses.py ResourceLens.resolve_page_size   1 0 0   100%
src/lexigram/admin/resources/lenses.py ResourceLens.to_dict   1 0 0   100%
src/lexigram/admin/resources/lenses.py LensRegistry.__init__   3 0 0   100%
src/lexigram/admin/resources/lenses.py LensRegistry.register   4 0 0   100%
src/lexigram/admin/resources/lenses.py LensRegistry.get   1 0 0   100%
src/lexigram/admin/resources/lenses.py LensRegistry.all   1 0 0   100%
src/lexigram/admin/resources/lenses.py LensRegistry.names   1 0 0   100%
src/lexigram/admin/resources/lenses.py LensRegistry.to_list   1 0 0   100%
src/lexigram/admin/resources/lenses.py (no function)   35 0 3   100%
src/lexigram/admin/resources/list_renderer.py ListRenderer.__init__   7 0 0   100%
src/lexigram/admin/resources/list_renderer.py ListRenderer.render   31 12 0   61%
src/lexigram/admin/resources/list_renderer.py ListRenderer._fetch_data   81 53 0   35%
src/lexigram/admin/resources/list_renderer.py ListRenderer._fetch_data._resilient_fetch   1 1 0   0%
src/lexigram/admin/resources/list_renderer.py ListRenderer._resolve_cache_spec   11 5 0   55%
src/lexigram/admin/resources/list_renderer.py ListRenderer._resolve_search_spec   11 5 0   55%
src/lexigram/admin/resources/list_renderer.py ListRenderer._resolve_resilient_spec   11 5 0   55%
src/lexigram/admin/resources/list_renderer.py ListRenderer._build_columns   15 6 0   60%
src/lexigram/admin/resources/list_renderer.py ListRenderer._get_filter_options   8 2 0   75%
src/lexigram/admin/resources/list_renderer.py ListRenderer._get_row_actions   12 4 0   67%
src/lexigram/admin/resources/list_renderer.py ListRenderer._get_header_actions   6 1 0   83%
src/lexigram/admin/resources/list_renderer.py ListRenderer._get_bulk_actions   16 7 0   56%
src/lexigram/admin/resources/list_renderer.py (no function)   31 0 0   100%
src/lexigram/admin/resources/mixins/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/resources/mixins/has_infolist.py HasInfolist.infolist   1 0 0   100%
src/lexigram/admin/resources/mixins/has_infolist.py HasInfolist._infolist_fields   8 0 0   100%
src/lexigram/admin/resources/mixins/has_infolist.py (no function)   8 0 0   100%
src/lexigram/admin/resources/namespace.py _sanitize_package_segment   3 0 0   100%
src/lexigram/admin/resources/namespace.py apply_namespace   9 0 0   100%
src/lexigram/admin/resources/namespace.py (no function)   5 0 0   100%
src/lexigram/admin/resources/permissions_renderer.py _checkbox   1 0 0   100%
src/lexigram/admin/resources/permissions_renderer.py UserPermissionsRenderer.__init__   5 0 0   100%
src/lexigram/admin/resources/permissions_renderer.py UserPermissionsRenderer.render_form   9 0 0   100%
src/lexigram/admin/resources/permissions_renderer.py (no function)   8 0 2   100%
src/lexigram/admin/resources/roles.py RolesResource.__init__   1 0 0   100%
src/lexigram/admin/resources/roles.py RolesResource.can_delete   2 0 0   100%
src/lexigram/admin/resources/roles.py RolesResource.can_update   2 0 0   100%
src/lexigram/admin/resources/roles.py (no function)   18 0 0   100%
src/lexigram/admin/resources/users.py UserResource.filter_options   2 2 0   0%
src/lexigram/admin/resources/users.py UserResource.has_view_permission   1 1 0   0%
src/lexigram/admin/resources/users.py UserResource.has_add_permission   1 1 0   0%
src/lexigram/admin/resources/users.py UserResource.has_change_permission   1 1 0   0%
src/lexigram/admin/resources/users.py UserResource.has_delete_permission   1 1 0   0%
src/lexigram/admin/resources/users.py UserResource.get_queryset   3 3 0   0%
src/lexigram/admin/resources/users.py UserResource.get_object   3 3 0   0%
src/lexigram/admin/resources/users.py UserResource.create_object   3 3 0   0%
src/lexigram/admin/resources/users.py UserResource.update_object   3 3 0   0%
src/lexigram/admin/resources/users.py UserResource.delete_object   3 3 0   0%
src/lexigram/admin/resources/users.py (no function)   37 0 2   100%
src/lexigram/admin/schema/__init__.py (no function)   16 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.render_form   0 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.render_column   0 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.render_filter   1 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.get_default   1 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.from_form   1 0 0   100%
src/lexigram/admin/schema/base.py SchemaField.to_form   1 0 0   100%
src/lexigram/admin/schema/base.py (no function)   35 0 0   100%
src/lexigram/admin/schema/belongs_to_many.py BelongsToManyField.render_form   8 0 0   100%
src/lexigram/admin/schema/belongs_to_many.py BelongsToManyField.render_column   5 0 0   100%
src/lexigram/admin/schema/belongs_to_many.py BelongsToManyField.from_form   15 4 0   73%
src/lexigram/admin/schema/belongs_to_many.py BelongsToManyField.to_form   1 0 0   100%
src/lexigram/admin/schema/belongs_to_many.py (no function)   14 0 0   100%
src/lexigram/admin/schema/boolean.py BooleanField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/boolean.py BooleanField.render_form   9 2 0   78%
src/lexigram/admin/schema/boolean.py BooleanField.render_column   5 0 0   100%
src/lexigram/admin/schema/boolean.py BooleanField.from_form   13 1 0   92%
src/lexigram/admin/schema/boolean.py BooleanField.to_form   3 0 0   100%
src/lexigram/admin/schema/boolean.py (no function)   14 0 0   100%
src/lexigram/admin/schema/composite.py JsonField.render_form   10 1 0   90%
src/lexigram/admin/schema/composite.py JsonField.render_column   4 0 0   100%
src/lexigram/admin/schema/composite.py JsonField.from_form   14 2 0   86%
src/lexigram/admin/schema/composite.py JsonField.to_form   3 0 0   100%
src/lexigram/admin/schema/composite.py HiddenField.render_form   1 0 0   100%
src/lexigram/admin/schema/composite.py HiddenField.render_column   1 0 0   100%
src/lexigram/admin/schema/composite.py HiddenField.from_form   1 0 0   100%
src/lexigram/admin/schema/composite.py HiddenField.to_form   1 0 0   100%
src/lexigram/admin/schema/composite.py FileField.render_form   10 2 0   80%
src/lexigram/admin/schema/composite.py FileField.render_column   3 0 0   100%
src/lexigram/admin/schema/composite.py FileField.from_form   8 1 0   88%
src/lexigram/admin/schema/composite.py FileField.to_form   1 0 0   100%
src/lexigram/admin/schema/composite.py ImageField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/composite.py ImageField.render_column   3 0 0   100%
src/lexigram/admin/schema/composite.py AvatarField.render_column   3 0 0   100%
src/lexigram/admin/schema/composite.py (no function)   35 0 0   100%
src/lexigram/admin/schema/datetime_.py DateField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/datetime_.py DateField.render_form   8 3 0   62%
src/lexigram/admin/schema/datetime_.py DateField.render_column   3 0 0   100%
src/lexigram/admin/schema/datetime_.py DateField.from_form   12 2 0   83%
src/lexigram/admin/schema/datetime_.py DateField.to_form   3 0 0   100%
src/lexigram/admin/schema/datetime_.py DateTimeField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/datetime_.py DateTimeField.render_form   8 3 0   62%
src/lexigram/admin/schema/datetime_.py DateTimeField.render_column   3 0 0   100%
src/lexigram/admin/schema/datetime_.py DateTimeField.from_form   12 1 0   92%
src/lexigram/admin/schema/datetime_.py DateTimeField.to_form   3 0 0   100%
src/lexigram/admin/schema/datetime_.py TimeField.render_form   8 3 0   62%
src/lexigram/admin/schema/datetime_.py TimeField.render_column   3 0 0   100%
src/lexigram/admin/schema/datetime_.py TimeField.from_form   15 1 0   93%
src/lexigram/admin/schema/datetime_.py TimeField.to_form   3 0 0   100%
src/lexigram/admin/schema/datetime_.py (no function)   28 0 0   100%
src/lexigram/admin/schema/exceptions.py (no function)   2 0 0   100%
src/lexigram/admin/schema/misc.py ToggleField.render_form   9 3 0   67%
src/lexigram/admin/schema/misc.py ColorField.render_form   8 1 0   88%
src/lexigram/admin/schema/misc.py ColorField.render_column   4 0 0   100%
src/lexigram/admin/schema/misc.py ColorField.from_form   10 1 0   90%
src/lexigram/admin/schema/misc.py ColorField.to_form   1 0 0   100%
src/lexigram/admin/schema/misc.py RatingField.render_form   8 3 0   62%
src/lexigram/admin/schema/misc.py RatingField.render_column   4 0 0   100%
src/lexigram/admin/schema/misc.py RatingField.from_form   14 1 0   93%
src/lexigram/admin/schema/misc.py RatingField.to_form   1 0 0   100%
src/lexigram/admin/schema/misc.py TagsField.render_form   12 4 0   67%
src/lexigram/admin/schema/misc.py TagsField.render_column   4 0 0   100%
src/lexigram/admin/schema/misc.py TagsField.from_form   15 2 0   87%
src/lexigram/admin/schema/misc.py TagsField.to_form   1 0 0   100%
src/lexigram/admin/schema/misc.py KeyValueField.render_form   10 3 0   70%
src/lexigram/admin/schema/misc.py KeyValueField.render_column   4 0 0   100%
src/lexigram/admin/schema/misc.py KeyValueField.from_form   17 1 0   94%
src/lexigram/admin/schema/misc.py KeyValueField.to_form   1 0 0   100%
src/lexigram/admin/schema/misc.py (no function)   38 0 0   100%
src/lexigram/admin/schema/numeric.py NumberField.render_form   10 3 0   70%
src/lexigram/admin/schema/numeric.py NumberField.render_column   3 0 0   100%
src/lexigram/admin/schema/numeric.py NumberField.from_form   13 1 0   92%
src/lexigram/admin/schema/numeric.py NumberField.to_form   3 0 0   100%
src/lexigram/admin/schema/numeric.py IntegerField.from_form   13 0 0   100%
src/lexigram/admin/schema/numeric.py IntegerField.render_column   3 0 0   100%
src/lexigram/admin/schema/numeric.py FloatField.from_form   11 1 0   91%
src/lexigram/admin/schema/numeric.py CurrencyField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/numeric.py CurrencyField.render_column   4 0 0   100%
src/lexigram/admin/schema/numeric.py CurrencyField.from_form   11 1 0   91%
src/lexigram/admin/schema/numeric.py (no function)   27 0 0   100%
src/lexigram/admin/schema/relation.py RelationField.render_form   12 4 0   67%
src/lexigram/admin/schema/relation.py RelationField.from_form   8 2 0   75%
src/lexigram/admin/schema/relation.py RelationField.render_column   3 0 0   100%
src/lexigram/admin/schema/relation.py HasManyField.render_form   12 4 0   67%
src/lexigram/admin/schema/relation.py HasManyField.render_column   5 0 0   100%
src/lexigram/admin/schema/relation.py HasManyField.from_form   9 3 0   67%
src/lexigram/admin/schema/relation.py HasManyField.to_form   3 3 0   0%
src/lexigram/admin/schema/relation.py MorphField.render_form   3 0 0   100%
src/lexigram/admin/schema/relation.py (no function)   26 0 0   100%
src/lexigram/admin/schema/repeater.py RepeaterField.render_form   16 0 0   100%
src/lexigram/admin/schema/repeater.py RepeaterField._render_item   8 3 0   62%
src/lexigram/admin/schema/repeater.py RepeaterField._build_item_template   8 2 0   75%
src/lexigram/admin/schema/repeater.py RepeaterField.render_column   5 0 0   100%
src/lexigram/admin/schema/repeater.py RepeaterField.from_form   27 3 0   89%
src/lexigram/admin/schema/repeater.py RepeaterField.to_form   1 0 0   100%
src/lexigram/admin/schema/repeater.py (no function)   20 0 0   100%
src/lexigram/admin/schema/select.py SelectField.__post_init__   2 0 0   100%
src/lexigram/admin/schema/select.py SelectField._normalize_options   10 1 0   90%
src/lexigram/admin/schema/select.py SelectField._get_label   4 0 0   100%
src/lexigram/admin/schema/select.py SelectField.render_form   8 2 0   75%
src/lexigram/admin/schema/select.py SelectField.render_column   5 0 0   100%
src/lexigram/admin/schema/select.py SelectField.render_filter   1 0 0   100%
src/lexigram/admin/schema/select.py SelectField.from_form   10 1 0   90%
src/lexigram/admin/schema/select.py SelectField.to_form   3 0 0   100%
src/lexigram/admin/schema/select.py EnumField.__post_init__   4 0 0   100%
src/lexigram/admin/schema/select.py EnumField._get_enum_member   6 2 0   67%
src/lexigram/admin/schema/select.py EnumField.from_form   10 1 0   90%
src/lexigram/admin/schema/select.py EnumField.to_form   3 0 0   100%
src/lexigram/admin/schema/select.py EnumField.render_column   6 0 0   100%
src/lexigram/admin/schema/select.py EnumField.render_form   2 0 0   100%
src/lexigram/admin/schema/select.py MultiSelectField.render_form   12 4 0   67%
src/lexigram/admin/schema/select.py MultiSelectField.render_column   7 0 0   100%
src/lexigram/admin/schema/select.py MultiSelectField.from_form   12 1 0   92%
src/lexigram/admin/schema/select.py MultiSelectField.to_form   3 0 0   100%
src/lexigram/admin/schema/select.py MultiSelectField.render_filter   1 1 0   0%
src/lexigram/admin/schema/select.py RadioField.render_form   8 3 0   62%
src/lexigram/admin/schema/select.py (no function)   39 0 0   100%
src/lexigram/admin/schema/text.py TextField.render_form   10 1 0   90%
src/lexigram/admin/schema/text.py TextField.render_column   3 0 0   100%
src/lexigram/admin/schema/text.py TextField.from_form   8 1 0   88%
src/lexigram/admin/schema/text.py EmailField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/text.py EmailField.render_form   10 4 0   60%
src/lexigram/admin/schema/text.py EmailField.render_column   3 0 0   100%
src/lexigram/admin/schema/text.py PasswordField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/text.py PasswordField.render_form   10 4 0   60%
src/lexigram/admin/schema/text.py PasswordField.render_column   3 0 0   100%
src/lexigram/admin/schema/text.py URLField.render_infolist_entry   2 0 0   100%
src/lexigram/admin/schema/text.py URLField.render_form   10 4 0   60%
src/lexigram/admin/schema/text.py URLField.render_column   3 0 0   100%
src/lexigram/admin/schema/text.py (no function)   27 0 0   100%
src/lexigram/admin/schema/text_area.py _sanitize_rich_text   4 0 0   100%
src/lexigram/admin/schema/text_area.py TextAreaField.render_form   10 0 0   100%
src/lexigram/admin/schema/text_area.py TextAreaField.render_column   5 0 0   100%
src/lexigram/admin/schema/text_area.py MarkdownField.render_form   10 3 0   70%
src/lexigram/admin/schema/text_area.py MarkdownField.render_column   11 0 0   100%
src/lexigram/admin/schema/text_area.py RichTextField.render_assets   1 0 0   100%
src/lexigram/admin/schema/text_area.py RichTextField.render_form   12 3 0   75%
src/lexigram/admin/schema/text_area.py RichTextField.render_column   3 0 0   100%
src/lexigram/admin/schema/text_area.py (no function)   29 0 0   100%
src/lexigram/admin/schema/validators.py FieldValidator.__call__   0 0 0   100%
src/lexigram/admin/schema/validators.py RequiredValidator.__call__   5 0 0   100%
src/lexigram/admin/schema/validators.py LengthValidator.__init__   2 0 0   100%
src/lexigram/admin/schema/validators.py LengthValidator.__call__   8 1 0   88%
src/lexigram/admin/schema/validators.py RangeValidator.__init__   2 0 0   100%
src/lexigram/admin/schema/validators.py RangeValidator.__call__   8 0 0   100%
src/lexigram/admin/schema/validators.py EmailValidator.__call__   12 1 0   92%
src/lexigram/admin/schema/validators.py URLValidator.__call__   8 1 0   88%
src/lexigram/admin/schema/validators.py PatternValidator.__init__   1 0 0   100%
src/lexigram/admin/schema/validators.py PatternValidator.__call__   5 1 0   80%
src/lexigram/admin/schema/validators.py (no function)   23 0 0   100%
src/lexigram/admin/services/__init__.py (no function)   18 0 0   100%
src/lexigram/admin/services/action_executor.py TaskScheduler.schedule   0 0 1   100%
src/lexigram/admin/services/action_executor.py ActionExecutor.__init__   5 0 0   100%
src/lexigram/admin/services/action_executor.py ActionExecutor.execute   37 8 0   78%
src/lexigram/admin/services/action_executor.py ActionExecutor._execute_direct   5 0 0   100%
src/lexigram/admin/services/action_executor.py ActionExecutor._run_before_hooks   8 0 0   100%
src/lexigram/admin/services/action_executor.py ActionExecutor._run_after_hooks   2 0 0   100%
src/lexigram/admin/services/action_executor.py ActionExecutor._run_failure_hooks   2 0 0   100%
src/lexigram/admin/services/action_executor.py ActionExecutor._collect_hooks   11 0 0   100%
src/lexigram/admin/services/action_executor.py ActionExecutor._execute   4 4 0   0%
src/lexigram/admin/services/action_executor.py ActionExecutor._publish_action_notification   5 3 0   40%
src/lexigram/admin/services/action_executor.py ActionExecutor._publish_action_failure   3 1 0   67%
src/lexigram/admin/services/action_executor.py ActionExecutor.get_available_actions   8 2 0   75%
src/lexigram/admin/services/action_executor.py action   2 2 0   0%
src/lexigram/admin/services/action_executor.py action.decorator   3 3 0   0%
src/lexigram/admin/services/action_executor.py (no function)   27 0 7   100%
src/lexigram/admin/services/action_registry.py ActionContext.is_bulk   1 1 0   0%
src/lexigram/admin/services/action_registry.py ActionContext.target_count   3 3 0   0%
src/lexigram/admin/services/action_registry.py ActionResult.bulk   1 1 0   0%
src/lexigram/admin/services/action_registry.py ActionResult.async_started   1 1 0   0%
src/lexigram/admin/services/action_registry.py ActionHandler.execute   0 0 1   100%
src/lexigram/admin/services/action_registry.py ActionValidator.validate   0 0 1   100%
src/lexigram/admin/services/action_registry.py AbstractActionHandler.__init__   3 0 0   100%
src/lexigram/admin/services/action_registry.py AbstractActionHandler.register_hooks   6 0 0   100%
src/lexigram/admin/services/action_registry.py AbstractActionHandler.execute   0 0 1   100%
src/lexigram/admin/services/action_registry.py AbstractActionHandler.validate   1 0 0   100%
src/lexigram/admin/services/action_registry.py AbstractActionHandler.on_success   0 0 0   100%
src/lexigram/admin/services/action_registry.py AbstractActionHandler.on_failure   0 0 0   100%
src/lexigram/admin/services/action_registry.py FunctionActionHandler.__init__   3 0 0   100%
src/lexigram/admin/services/action_registry.py FunctionActionHandler.execute   6 2 0   67%
src/lexigram/admin/services/action_registry.py ActionRegistry.__init__   2 0 0   100%
src/lexigram/admin/services/action_registry.py ActionRegistry.register   5 1 0   80%
src/lexigram/admin/services/action_registry.py ActionRegistry.register_global   3 3 0   0%
src/lexigram/admin/services/action_registry.py ActionRegistry.get   3 1 0   67%
src/lexigram/admin/services/action_registry.py ActionRegistry.get_global   1 1 0   0%
src/lexigram/admin/services/action_registry.py ActionRegistry.get_actions_for_resource   6 2 0   67%
src/lexigram/admin/services/action_registry.py ActionRegistry.get_all_global_actions   1 1 0   0%
src/lexigram/admin/services/action_registry.py (no function)   85 0 14   100%
src/lexigram/admin/services/activity_logger.py get_request_cache   2 2 0   0%
src/lexigram/admin/services/activity_logger.py ActivityLogger.__init__   2 2 0   0%
src/lexigram/admin/services/activity_logger.py ActivityLogger.log   10 10 0   0%
src/lexigram/admin/services/activity_logger.py ActivityLogger.get_recent   1 1 0   0%
src/lexigram/admin/services/activity_logger.py ActivityLogger.clear   1 1 0   0%
src/lexigram/admin/services/activity_logger.py get_activity_logger   3 3 0   0%
src/lexigram/admin/services/activity_logger.py (no function)   17 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJob.to_dict   1 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.__init__   9 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._new_id   3 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._register   2 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._evict_old   4 2 0   50%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._update   7 4 0   43%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._finish   9 4 0   56%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._fail   8 4 0   50%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.enqueue_import   10 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._run_import   23 4 0   83%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.enqueue_export   10 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService._run_export   20 1 0   95%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.get_status   2 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.get_job   1 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.list_jobs   8 0 0   100%
src/lexigram/admin/services/background_jobs.py BackgroundJobService.cancel   10 7 0   30%
src/lexigram/admin/services/background_jobs.py (no function)   43 0 0   100%
src/lexigram/admin/services/charts.py IChartRenderer.render   0 0 1   100%
src/lexigram/admin/services/charts.py ChartJSRenderer.render   6 6 0   0%
src/lexigram/admin/services/charts.py PlotlyRenderer.render   13 13 0   0%
src/lexigram/admin/services/charts.py ChartFactory.__init__   2 0 0   100%
src/lexigram/admin/services/charts.py ChartFactory.set_backend   1 1 0   0%
src/lexigram/admin/services/charts.py ChartFactory.create_chart   5 5 0   0%
src/lexigram/admin/services/charts.py ChartFactory.line_chart   1 1 0   0%
src/lexigram/admin/services/charts.py ChartFactory.bar_chart   1 1 0   0%
src/lexigram/admin/services/charts.py ChartFactory.pie_chart   1 1 0   0%
src/lexigram/admin/services/charts.py ChartFactory.scatter_chart   1 1 0   0%
src/lexigram/admin/services/charts.py ChartFactory.area_chart   1 1 0   0%
src/lexigram/admin/services/charts.py ChartFactory.donut_chart   1 1 0   0%
src/lexigram/admin/services/charts.py (no function)   40 0 2   100%
src/lexigram/admin/services/collaborative.py EditLock.__post_init__   3 0 0   100%
src/lexigram/admin/services/collaborative.py EditLock.is_expired   1 0 0   100%
src/lexigram/admin/services/collaborative.py EditLock.refresh   1 0 0   100%
src/lexigram/admin/services/collaborative.py PresenceEntry.is_stale   1 0 0   100%
src/lexigram/admin/services/collaborative.py LockConflictError.__init__   3 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.__init__   5 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService._record_key   1 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.acquire_lock   18 1 0   94%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.release_lock   11 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.get_lock   6 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.is_locked   1 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.is_locked_by   2 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.update_presence   11 1 0   91%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.leave   4 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.get_presence   3 0 0   100%
src/lexigram/admin/services/collaborative.py CollaborativeEditingService.notify_change   13 10 0   23%
src/lexigram/admin/services/collaborative.py (no function)   49 0 2   100%
src/lexigram/admin/services/component_registry.py ComponentMetadata.to_dict   1 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.__init__   3 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.register   10 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.register_lazy   13 5 0   62%
src/lexigram/admin/services/component_registry.py ComponentRegistry.get   15 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.has   3 1 0   67%
src/lexigram/admin/services/component_registry.py ComponentRegistry.deprecate   5 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.list_components   8 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.get_metadata   6 2 0   67%
src/lexigram/admin/services/component_registry.py ComponentRegistry.get_version   1 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.check_version   2 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry._compare_versions   11 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.clear   3 0 0   100%
src/lexigram/admin/services/component_registry.py ComponentRegistry.export_manifest   1 0 0   100%
src/lexigram/admin/services/component_registry.py get_component_registry   11 4 0   64%
src/lexigram/admin/services/component_registry.py register_component   9 0 0   100%
src/lexigram/admin/services/component_registry.py register_component.decorator   2 0 0   100%
src/lexigram/admin/services/component_registry.py (no function)   36 0 2   100%
src/lexigram/admin/services/export/__init__.py (no function)   6 0 0   100%
src/lexigram/admin/services/export/adapters/csv.py CsvExportBackend.generate_file   18 0 0   100%
src/lexigram/admin/services/export/adapters/csv.py (no function)   9 0 2   100%
src/lexigram/admin/services/export/adapters/excel.py ExcelExportBackend.generate_file   34 34 0   0%
src/lexigram/admin/services/export/adapters/excel.py (no function)   14 2 2   86%
src/lexigram/admin/services/export/adapters/pdf.py PdfExportBackend.generate_file   33 33 0   0%
src/lexigram/admin/services/export/adapters/pdf.py (no function)   15 4 2   73%
src/lexigram/admin/services/export/sanitize.py sanitize_cell_value   5 0 0   100%
src/lexigram/admin/services/export/sanitize.py (no function)   4 0 0   100%
src/lexigram/admin/services/export/scheduler.py (no function)   59 0 0   100%
src/lexigram/admin/services/export/service.py IExportDataSource.get_export_data   0 0 1   100%
src/lexigram/admin/services/export/service.py IExportDataSource.get_export_count   0 0 1   100%
src/lexigram/admin/services/export/service.py IExportDataSource.get_column_definitions   0 0 1   100%
src/lexigram/admin/services/export/service.py IExportBackend.generate_file   0 0 1   100%
src/lexigram/admin/services/export/service.py JsonExportBackend.generate_file   12 4 0   67%
src/lexigram/admin/services/export/service.py ExportService.__init__   14 0 0   100%
src/lexigram/admin/services/export/service.py ExportService.register_template   1 1 0   0%
src/lexigram/admin/services/export/service.py ExportService.get_template   1 1 0   0%
src/lexigram/admin/services/export/service.py ExportService.list_templates   1 1 0   0%
src/lexigram/admin/services/export/service.py ExportService.create_job   4 0 0   100%
src/lexigram/admin/services/export/service.py ExportService.get_job   1 0 0   100%
src/lexigram/admin/services/export/service.py ExportService.list_jobs   7 7 0   0%
src/lexigram/admin/services/export/service.py ExportService._record_export_audit   3 0 0   100%
src/lexigram/admin/services/export/service.py ExportService.execute_export   60 26 0   57%
src/lexigram/admin/services/export/service.py ExportService._get_file_size   5 3 0   40%
src/lexigram/admin/services/export/service.py ExportService._generate_download_url   1 0 0   100%
src/lexigram/admin/services/export/service.py ExportService.stream_export   11 11 0   0%
src/lexigram/admin/services/export/service.py ExportService.start_background_export   2 2 0   0%
src/lexigram/admin/services/export/service.py ExportService._run_background_export   11 11 0   0%
src/lexigram/admin/services/export/service.py ExportService.cancel_job   9 9 0   0%
src/lexigram/admin/services/export/service.py ExportService.schedule_export   6 6 0   0%
src/lexigram/admin/services/export/service.py ExportService.get_next_run_time   9 9 0   0%
src/lexigram/admin/services/export/service.py ExportService.cleanup_old_files   1 1 0   0%
src/lexigram/admin/services/export/service.py ExportService.cleanup_completed_jobs   11 11 0   0%
src/lexigram/admin/services/export/service.py (no function)   39 0 27   100%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.__init__   5 5 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService._normalize   3 3 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService._register_config_flags   4 4 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.is_enabled_sync   5 5 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.is_enabled   3 3 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.set_flag   1 1 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.get_all_flags   6 6 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.require_flag   2 2 0   0%
src/lexigram/admin/services/feature_flags.py AdminFeatureFlagService.get_variant   3 3 0   0%
src/lexigram/admin/services/feature_flags.py get_feature_flag_service   3 3 0   0%
src/lexigram/admin/services/feature_flags.py __getattr__   3 1 0   67%
src/lexigram/admin/services/feature_flags.py FeatureDisabledError.__init__   2 2 0   0%
src/lexigram/admin/services/feature_flags.py require_feature   3 3 1   0%
src/lexigram/admin/services/feature_flags.py require_feature.decorator   2 2 0   0%
src/lexigram/admin/services/feature_flags.py require_feature.decorator.wrapper   3 3 0   0%
src/lexigram/admin/services/feature_flags.py feature_enabled   2 2 1   0%
src/lexigram/admin/services/feature_flags.py (no function)   43 0 1   100%
src/lexigram/admin/services/filter_manager.py FilterManager.__init__   5 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.process_request   37 37 0   0%
src/lexigram/admin/services/filter_manager.py FilterManager.validate_filters   40 12 0   70%
src/lexigram/admin/services/filter_manager.py FilterManager.encode_to_url   7 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.decode_from_url   12 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.get_default_filters   5 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.create_preset   5 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.get_preset   2 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.list_presets   5 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.delete_preset   5 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.get_active_filter_badges   16 1 0   94%
src/lexigram/admin/services/filter_manager.py FilterManager.clear_all_filters   1 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.has_active_filters   9 2 0   78%
src/lexigram/admin/services/filter_manager.py FilterManager.apply_preset   4 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.to_filter_set   10 0 0   100%
src/lexigram/admin/services/filter_manager.py FilterManager.to_search_query   4 0 0   100%
src/lexigram/admin/services/filter_manager.py (no function)   43 0 0   100%
src/lexigram/admin/services/form_renderer.py FormRenderer.__init__   2 0 0   100%
src/lexigram/admin/services/form_renderer.py FormRenderer.render_form   15 1 0   93%
src/lexigram/admin/services/form_renderer.py (no function)   11 0 0   100%
src/lexigram/admin/services/htmx_perf.py HTMXPerformanceMonitor.__init__   2 0 0   100%
src/lexigram/admin/services/htmx_perf.py HTMXPerformanceMonitor.enable   1 0 0   100%
src/lexigram/admin/services/htmx_perf.py HTMXPerformanceMonitor.disable   1 0 0   100%
src/lexigram/admin/services/htmx_perf.py HTMXPerformanceMonitor.record_request   3 0 0   100%
src/lexigram/admin/services/htmx_perf.py HTMXPerformanceMonitor.get_stats   5 0 0   100%
src/lexigram/admin/services/htmx_perf.py HTMXPerformanceMonitor.clear   1 0 0   100%
src/lexigram/admin/services/htmx_perf.py get_htmx_monitor   3 3 0   0%
src/lexigram/admin/services/htmx_perf.py __getattr__   3 1 0   67%
src/lexigram/admin/services/htmx_perf.py (no function)   11 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationPolicy.__init__   1 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationPolicy.can_impersonate   1 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationPolicy.can_impersonate_target   1 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationService.__init__   3 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationService.start   21 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationService.stop   19 4 0   79%
src/lexigram/admin/services/impersonation.py ImpersonationService.get_active_session   9 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationService.is_impersonating   1 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationService.list_active   1 0 0   100%
src/lexigram/admin/services/impersonation.py ImpersonationService._emit_audit   10 4 0   60%
src/lexigram/admin/services/impersonation.py (no function)   35 0 0   100%
src/lexigram/admin/services/import_/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/services/import_/service.py ImportJob.has_errors   1 0 0   100%
src/lexigram/admin/services/import_/service.py ImportJob.valid_rows   2 0 0   100%
src/lexigram/admin/services/import_/service.py ImportResult.total   1 0 0   100%
src/lexigram/admin/services/import_/service.py ImportReport.to_csv   6 0 0   100%
src/lexigram/admin/services/import_/service.py _parse_csv   13 0 0   100%
src/lexigram/admin/services/import_/service.py _parse_json   20 2 0   90%
src/lexigram/admin/services/import_/service.py AdminImportService.__init__   4 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService.reports   1 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService.get_report   4 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService.delete_report   5 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService._store_report   3 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService.parse   15 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService.commit   20 0 0   100%
src/lexigram/admin/services/import_/service.py AdminImportService._validate_rows   7 0 0   100%
src/lexigram/admin/services/import_/service.py (no function)   56 0 0   100%
src/lexigram/admin/services/notifications/__init__.py (no function)   6 0 0   100%
src/lexigram/admin/services/notifications/models.py NotificationRecipient.can_receive   2 0 0   100%
src/lexigram/admin/services/notifications/models.py (no function)   55 0 0   100%
src/lexigram/admin/services/notifications/sender.py EmailSender.__init__   3 0 0   100%
src/lexigram/admin/services/notifications/sender.py EmailSender.send_email   6 0 0   100%
src/lexigram/admin/services/notifications/sender.py (no function)   7 0 3   100%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.__init__   5 0 0   100%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.send   22 3 0   86%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_user_created   4 4 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_user_invited   5 5 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_password_reset   5 5 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_email_verification   5 0 0   100%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_email_otp   5 0 0   100%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_bulk_started   4 4 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_bulk_completed   4 4 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_bulk_failed   4 4 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_export_ready   4 4 0   0%
src/lexigram/admin/services/notifications/service.py AdminNotificationService.notify_system_alert   5 5 0   0%
src/lexigram/admin/services/notifications/service.py (no function)   26 0 0   100%
src/lexigram/admin/services/notifications/templates.py TemplateRenderer.__init__   1 0 0   100%
src/lexigram/admin/services/notifications/templates.py TemplateRenderer.render_template   14 3 0   79%
src/lexigram/admin/services/notifications/templates.py (no function)   12 0 0   100%
src/lexigram/admin/services/realtime.py RealtimeUpdate.to_json   1 0 0   100%
src/lexigram/admin/services/realtime.py RealtimeUpdate.from_json   2 2 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.__init__   2 0 0   100%
src/lexigram/admin/services/realtime.py ConnectionManager.connect   1 1 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.disconnect   3 3 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.subscribe   3 3 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.unsubscribe   2 2 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.send_personal   9 9 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.broadcast   5 5 0   0%
src/lexigram/admin/services/realtime.py ConnectionManager.get_connection_count   3 3 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.__init__   2 0 0   100%
src/lexigram/admin/services/realtime.py RealtimeService.connect   1 1 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.disconnect   1 1 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.subscribe   1 1 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.unsubscribe   1 1 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.send_update   4 4 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.send_metric_update   2 2 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.send_chart_update   2 2 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.send_notification   2 2 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.register_handler   1 1 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.handle_update   3 3 0   0%
src/lexigram/admin/services/realtime.py RealtimeService.get_stats   1 1 0   0%
src/lexigram/admin/services/realtime.py SSEEmitter.__init__   1 1 0   0%
src/lexigram/admin/services/realtime.py SSEEmitter.connect   3 3 0   0%
src/lexigram/admin/services/realtime.py SSEEmitter.disconnect   1 1 0   0%
src/lexigram/admin/services/realtime.py SSEEmitter.emit   22 22 0   0%
src/lexigram/admin/services/realtime.py SSEEmitter.get_client_count   1 1 0   0%
src/lexigram/admin/services/realtime.py (no function)   50 0 2   100%
src/lexigram/admin/services/request_cache.py (no function)   1 0 0   100%
src/lexigram/admin/services/resource_manager.py ResourceDataSourceProtocol.find_many   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResourceDataSourceProtocol.find_one   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResourceDataSourceProtocol.create   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResourceDataSourceProtocol.update   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResourceDataSourceProtocol.delete   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResultDataSource.find_many   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResultDataSource.find_one   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResultDataSource.create   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResultDataSource.update   0 0 1   100%
src/lexigram/admin/services/resource_manager.py ResultDataSource.delete   0 0 1   100%
src/lexigram/admin/services/resource_manager.py Validator.validate   0 0 1   100%
src/lexigram/admin/services/resource_manager.py DefaultValidator.validate   1 0 0   100%
src/lexigram/admin/services/resource_manager.py DefaultAuthorizer.can_view   1 0 0   100%
src/lexigram/admin/services/resource_manager.py DefaultAuthorizer.can_create   1 0 0   100%
src/lexigram/admin/services/resource_manager.py DefaultAuthorizer.can_update   1 0 0   100%
src/lexigram/admin/services/resource_manager.py DefaultAuthorizer.can_delete   1 0 0   100%
src/lexigram/admin/services/resource_manager.py DefaultAuthorizer.can_execute_action   1 1 0   0%
src/lexigram/admin/services/resource_manager.py ResourceManager.__init__   7 0 0   100%
src/lexigram/admin/services/resource_manager.py ResourceManager._is_result_data_source   1 0 0   100%
src/lexigram/admin/services/resource_manager.py ResourceManager._find_many_safe   7 3 0   57%
src/lexigram/admin/services/resource_manager.py ResourceManager._find_one_safe   7 3 0   57%
src/lexigram/admin/services/resource_manager.py ResourceManager._record_audit   4 0 0   100%
src/lexigram/admin/services/resource_manager.py ResourceManager.list   10 2 0   80%
src/lexigram/admin/services/resource_manager.py ResourceManager.get   11 3 0   73%
src/lexigram/admin/services/resource_manager.py ResourceManager.create   12 2 0   83%
src/lexigram/admin/services/resource_manager.py ResourceManager.update   15 3 0   80%
src/lexigram/admin/services/resource_manager.py ResourceManager._delete_internal   9 2 0   78%
src/lexigram/admin/services/resource_manager.py ResourceManager.delete   1 0 0   100%
src/lexigram/admin/services/resource_manager.py ResourceManager.bulk_delete   17 6 0   65%
src/lexigram/admin/services/resource_manager.py ResourceManager.bulk_update   17 17 0   0%
src/lexigram/admin/services/resource_manager.py (no function)   39 0 24   100%
src/lexigram/admin/services/resource_manager_factory.py ResourceManagerFactory.__init__   3 0 0   100%
src/lexigram/admin/services/resource_manager_factory.py ResourceManagerFactory.create   3 3 0   0%
src/lexigram/admin/services/resource_manager_factory.py ResourceManagerFactory.get   1 1 0   0%
src/lexigram/admin/services/resource_manager_factory.py (no function)   12 0 0   100%
src/lexigram/admin/services/revisions.py _RevisionStore.save   0 0 1   100%
src/lexigram/admin/services/revisions.py _RevisionStore.list_for_record   0 0 1   100%
src/lexigram/admin/services/revisions.py _RevisionStore.get   0 0 1   100%
src/lexigram/admin/services/revisions.py _RevisionStore.delete_for_record   0 0 1   100%
src/lexigram/admin/services/revisions.py InMemoryRevisionStore.__init__   3 0 0   100%
src/lexigram/admin/services/revisions.py InMemoryRevisionStore._key   1 0 0   100%
src/lexigram/admin/services/revisions.py InMemoryRevisionStore.save   7 0 0   100%
src/lexigram/admin/services/revisions.py InMemoryRevisionStore.list_for_record   2 0 0   100%
src/lexigram/admin/services/revisions.py InMemoryRevisionStore.get   1 0 0   100%
src/lexigram/admin/services/revisions.py InMemoryRevisionStore.delete_for_record   5 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.__init__   2 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService._new_id   3 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.record   3 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.list_revisions   1 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.get_revision   1 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.diff   13 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.revert_data   2 0 0   100%
src/lexigram/admin/services/revisions.py RevisionService.purge   1 0 0   100%
src/lexigram/admin/services/revisions.py (no function)   47 0 6   100%
src/lexigram/admin/services/saved_filters.py _FilterRepository.find_many   0 0 1   100%
src/lexigram/admin/services/saved_filters.py _FilterRepository.create   0 0 1   100%
src/lexigram/admin/services/saved_filters.py _FilterRepository.delete   0 0 1   100%
src/lexigram/admin/services/saved_filters.py _FilterRepository.find_one   0 0 1   100%
src/lexigram/admin/services/saved_filters.py _InMemoryFilterStore.__init__   2 0 0   100%
src/lexigram/admin/services/saved_filters.py _InMemoryFilterStore.find_many   5 0 0   100%
src/lexigram/admin/services/saved_filters.py _InMemoryFilterStore.create   5 0 0   100%
src/lexigram/admin/services/saved_filters.py _InMemoryFilterStore.delete   3 0 0   100%
src/lexigram/admin/services/saved_filters.py _InMemoryFilterStore.find_one   4 0 0   100%
src/lexigram/admin/services/saved_filters.py SavedFiltersService.__init__   2 0 0   100%
src/lexigram/admin/services/saved_filters.py SavedFiltersService.save   21 0 0   100%
src/lexigram/admin/services/saved_filters.py SavedFiltersService.list_for_resource   16 2 0   88%
src/lexigram/admin/services/saved_filters.py SavedFiltersService.delete   7 0 0   100%
src/lexigram/admin/services/saved_filters.py (no function)   32 0 8   100%
src/lexigram/admin/services/search_service.py SearchResults.has_results   1 0 0   100%
src/lexigram/admin/services/search_service.py SearchResults.group_count   1 0 0   100%
src/lexigram/admin/services/search_service.py SearchService.__init__   2 0 0   100%
src/lexigram/admin/services/search_service.py SearchService.search   34 2 0   94%
src/lexigram/admin/services/search_service.py SearchService.get_searchable_resources   14 0 0   100%
src/lexigram/admin/services/search_service.py SearchService.allowed_resources_for   8 0 0   100%
src/lexigram/admin/services/search_service.py SearchService.get_search_field_catalog   12 2 0   83%
src/lexigram/admin/services/search_service.py SearchService._index_spec   7 2 0   71%
src/lexigram/admin/services/search_service.py SearchService._get_search_integration   2 0 0   100%
src/lexigram/admin/services/search_service.py SearchService._search_index   16 0 0   100%
src/lexigram/admin/services/search_service.py (no function)   32 0 2   100%
src/lexigram/admin/services/session.py SessionStateService.__init__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.get   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.set   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.delete   3 3 0   0%
src/lexigram/admin/services/session.py SessionStateService.clear   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.keys   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.values   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.items   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.__contains__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.__getitem__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.__setitem__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.__delitem__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.__len__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.__repr__   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.to_json   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.from_json   1 1 0   0%
src/lexigram/admin/services/session.py SessionStateService.is_empty   1 1 0   0%
src/lexigram/admin/services/session.py ActiveSessionContext.current   1 1 0   0%
src/lexigram/admin/services/session.py ActiveSessionContext.__init__   2 2 0   0%
src/lexigram/admin/services/session.py ActiveSessionContext.__enter__   2 2 0   0%
src/lexigram/admin/services/session.py ActiveSessionContext.__exit__   2 2 0   0%
src/lexigram/admin/services/session.py (no function)   33 0 0   100%
src/lexigram/admin/services/settings_service.py AdminSettingsDbProvider.__init__   2 0 0   100%
src/lexigram/admin/services/settings_service.py AdminSettingsDbProvider._ensure_table   10 1 0   90%
src/lexigram/admin/services/settings_service.py AdminSettingsDbProvider.get_config   6 2 0   67%
src/lexigram/admin/services/settings_service.py AdminSettingsDbProvider.get_all_config   9 9 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsDbProvider.set_config   2 2 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.__init__   2 0 0   100%
src/lexigram/admin/services/settings_service.py AdminSettingsService._key   1 1 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.get   6 6 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.set   4 4 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.get_all   9 9 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.set_all   6 6 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.get_widget_prefs   6 6 0   0%
src/lexigram/admin/services/settings_service.py AdminSettingsService.set_widget_prefs   5 5 0   0%
src/lexigram/admin/services/settings_service.py resolve_admin_settings_service   10 1 0   90%
src/lexigram/admin/services/settings_service.py (no function)   29 0 2   100%
src/lexigram/admin/services/storage/__init__.py (no function)   8 0 0   100%
src/lexigram/admin/services/storage/backends.py (no function)   1 0 0   100%
src/lexigram/admin/services/storage/mixins.py UploadHandlerProtocol.handle_upload   0 0 1   100%
src/lexigram/admin/services/storage/mixins.py (no function)   7 0 0   100%
src/lexigram/admin/services/storage/service.py AdminStorageService.__init__   2 0 0   100%
src/lexigram/admin/services/storage/service.py AdminStorageService.validate_upload   18 18 0   0%
src/lexigram/admin/services/storage/service.py AdminStorageService.upload   27 27 0   0%
src/lexigram/admin/services/storage/service.py AdminStorageService.download   1 1 0   0%
src/lexigram/admin/services/storage/service.py AdminStorageService.delete   5 5 0   0%
src/lexigram/admin/services/storage/service.py AdminStorageService.exists   1 1 0   0%
src/lexigram/admin/services/storage/service.py AdminStorageService.get_download_url   7 0 0   100%
src/lexigram/admin/services/storage/service.py AdminStorageService.get_upload_url   10 0 0   100%
src/lexigram/admin/services/storage/service.py (no function)   24 0 0   100%
src/lexigram/admin/services/storage/types.py AdminUploadOptions.to_storage_options   1 0 0   100%
src/lexigram/admin/services/storage/types.py (no function)   41 0 0   100%
src/lexigram/admin/services/storage/upload.py FileValidator.__init__   3 0 0   100%
src/lexigram/admin/services/storage/upload.py FileValidator.validate   9 5 0   44%
src/lexigram/admin/services/storage/upload.py FileUploadService.__init__   3 0 0   100%
src/lexigram/admin/services/storage/upload.py FileUploadService.upload   36 8 0   78%
src/lexigram/admin/services/storage/upload.py FileUploadService.delete   15 7 0   53%
src/lexigram/admin/services/storage/upload.py FileUploadService.get_url   6 0 0   100%
src/lexigram/admin/services/storage/upload.py FileUploadService.exists   15 7 0   53%
src/lexigram/admin/services/storage/upload.py (no function)   36 0 0   100%
src/lexigram/admin/services/storage/utils.py generate_upload_path   10 0 0   100%
src/lexigram/admin/services/storage/utils.py get_content_type   2 2 0   0%
src/lexigram/admin/services/storage/utils.py (no function)   7 0 0   100%
src/lexigram/admin/services/user_dashboard.py WidgetPlacement.to_dict   1 0 0   100%
src/lexigram/admin/services/user_dashboard.py WidgetPlacement.from_dict   1 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardLayout.to_dict   1 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardLayout.from_dict   1 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.__init__   3 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.get_or_create   9 4 0   56%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.get_layout   1 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.add_widget   13 6 0   54%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.remove_widget   6 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.move_widget   9 1 0   89%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.resize_widget   9 2 0   78%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.hide_widget   3 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.show_widget   3 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.reset   2 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.export_layout   2 0 0   100%
src/lexigram/admin/services/user_dashboard.py UserDashboardService.import_layout   3 0 0   100%
src/lexigram/admin/services/user_dashboard.py (no function)   39 0 0   100%
src/lexigram/admin/settings/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/settings/loader.py ConfigPath.from_string   1 1 0   0%
src/lexigram/admin/settings/loader.py ConfigPath.__str__   1 1 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.__init__   6 6 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.config   3 3 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.load   9 9 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.reload   6 6 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.on_reload   1 1 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.set_runtime   1 1 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.clear_runtime   3 3 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader.get   10 10 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._load_yaml   14 14 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._load_env   12 12 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._resolve_env_path   23 23 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._parse_env_value   19 19 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._deep_merge   4 4 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._set_nested   3 3 0   0%
src/lexigram/admin/settings/loader.py AdminConfigLoader._delete_nested   5 5 0   0%
src/lexigram/admin/settings/loader.py get_config   4 4 0   0%
src/lexigram/admin/settings/loader.py get_loader   3 3 0   0%
src/lexigram/admin/settings/loader.py (no function)   42 0 0   100%
src/lexigram/admin/settings/panel/__init__.py (no function)   25 0 0   100%
src/lexigram/admin/settings/panel/branding_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/branding_spec.py (no function)   15 0 0   100%
src/lexigram/admin/settings/panel/cache_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/cache_spec.py (no function)   13 0 0   100%
src/lexigram/admin/settings/panel/deployment_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/deployment_spec.py (no function)   14 0 0   100%
src/lexigram/admin/settings/panel/features_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/features_spec.py (no function)   14 0 0   100%
src/lexigram/admin/settings/panel/i18n_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/i18n_spec.py (no function)   14 0 0   100%
src/lexigram/admin/settings/panel/layout.py ConfigLayout.__init__   6 0 0   100%
src/lexigram/admin/settings/panel/layout.py ConfigLayout.render   1 1 0   0%
src/lexigram/admin/settings/panel/layout.py ConfigLayout._render_header   1 1 0   0%
src/lexigram/admin/settings/panel/layout.py ConfigLayout._render_sidebar   10 10 0   0%
src/lexigram/admin/settings/panel/layout.py ConfigLayout._render_main   3 3 0   0%
src/lexigram/admin/settings/panel/layout.py ConfigLayout._render_icon   5 5 0   0%
src/lexigram/admin/settings/panel/layout.py (no function)   11 0 2   100%
src/lexigram/admin/settings/panel/models.py (no function)   27 0 0   100%
src/lexigram/admin/settings/panel/nodes.py AbstractConfigNode.__init__   9 0 0   100%
src/lexigram/admin/settings/panel/nodes.py AbstractConfigNode.validate   0 0 0   100%
src/lexigram/admin/settings/panel/nodes.py AbstractConfigNode.to_dict   1 0 0   100%
src/lexigram/admin/settings/panel/nodes.py StringNode.validate   1 0 0   100%
src/lexigram/admin/settings/panel/nodes.py ColorNode.validate   4 0 0   100%
src/lexigram/admin/settings/panel/nodes.py IntNode.__init__   3 0 0   100%
src/lexigram/admin/settings/panel/nodes.py IntNode.validate   9 1 0   89%
src/lexigram/admin/settings/panel/nodes.py BooleanNode.validate   5 0 0   100%
src/lexigram/admin/settings/panel/nodes.py EnumNode.__init__   2 0 0   100%
src/lexigram/admin/settings/panel/nodes.py EnumNode.validate   5 0 0   100%
src/lexigram/admin/settings/panel/nodes.py EnumNode.to_dict   3 0 0   100%
src/lexigram/admin/settings/panel/nodes.py ConfigSpecMeta.__new__   9 0 0   100%
src/lexigram/admin/settings/panel/nodes.py ConfigSpec.get_nodes   1 0 0   100%
src/lexigram/admin/settings/panel/nodes.py ConfigSpec.to_dict   1 0 0   100%
src/lexigram/admin/settings/panel/nodes.py PydanticConfigSpec.get_nodes   48 4 0   92%
src/lexigram/admin/settings/panel/nodes.py (no function)   48 0 2   100%
src/lexigram/admin/settings/panel/profiler_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/profiler_spec.py (no function)   13 0 0   100%
src/lexigram/admin/settings/panel/rate_limit_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/rate_limit_spec.py (no function)   13 0 0   100%
src/lexigram/admin/settings/panel/rbac_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/rbac_spec.py (no function)   13 0 0   100%
src/lexigram/admin/settings/panel/registry.py StoreBase.get   1 1 0   0%
src/lexigram/admin/settings/panel/registry.py StoreBase.set   0 0 0   100%
src/lexigram/admin/settings/panel/registry.py EnvStore.get   2 0 0   100%
src/lexigram/admin/settings/panel/registry.py MemoryStore.__init__   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py MemoryStore.get   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py MemoryStore.set   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.__init__   2 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.register_store   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.register_spec   3 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.get_package_sources   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.get_specs_by_package   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.get_spec   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.has_store   1 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.with_defaults   12 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.get_node   9 9 0   0%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.get_values   10 0 0   100%
src/lexigram/admin/settings/panel/registry.py ConfigRegistry.save_values   10 0 0   100%
src/lexigram/admin/settings/panel/registry.py (no function)   26 0 2   100%
src/lexigram/admin/settings/panel/security_spec.py register_spec   1 0 0   100%
src/lexigram/admin/settings/panel/security_spec.py (no function)   13 0 0   100%
src/lexigram/admin/settings/panel/types.py (no function)   13 0 0   100%
src/lexigram/admin/settings/panel/ui.py BooleanField.__init__   4 0 0   100%
src/lexigram/admin/settings/panel/ui.py BooleanField.render   1 0 0   100%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_dashboard   1 1 0   0%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_header   2 2 0   0%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_sidebar   7 7 0   0%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_main_content   5 5 0   0%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_empty_state   1 1 0   0%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_config_form   10 0 0   100%
src/lexigram/admin/settings/panel/ui.py ConfigDashboardUI.render_field   27 1 0   96%
src/lexigram/admin/settings/panel/ui.py (no function)   16 0 0   100%
src/lexigram/admin/settings/settings.py AdminSettings.build_htmx_path   7 2 0   71%
src/lexigram/admin/settings/settings.py AdminSettings._pluralize_resource_name   22 22 0   0%
src/lexigram/admin/settings/settings.py get_admin_settings   1 0 0   100%
src/lexigram/admin/settings/settings.py (no function)   6 0 0   100%
src/lexigram/admin/settings/store.py TenantConfigStore.__init__   2 0 0   100%
src/lexigram/admin/settings/store.py TenantConfigStore.get   2 0 0   100%
src/lexigram/admin/settings/store.py TenantConfigStore.set   1 0 0   100%
src/lexigram/admin/settings/store.py (no function)   9 0 2   100%
src/lexigram/admin/sql_dialect.py _dialect   7 0 0   100%
src/lexigram/admin/sql_dialect.py is_postgres   1 0 0   100%
src/lexigram/admin/sql_dialect.py now_expr   1 0 0   100%
src/lexigram/admin/sql_dialect.py since_expr   3 0 0   100%
src/lexigram/admin/sql_dialect.py (no function)   8 0 2   100%
src/lexigram/admin/state/__init__.py __getattr__   6 6 0   0%
src/lexigram/admin/state/__init__.py __dir__   1 1 0   0%
src/lexigram/admin/state/__init__.py (no function)   7 0 6   100%
src/lexigram/admin/state/context.py AdminContext.is_authenticated   1 1 0   0%
src/lexigram/admin/state/context.py AdminContext.is_htmx   3 0 0   100%
src/lexigram/admin/state/context.py AdminContext.can   3 3 0   0%
src/lexigram/admin/state/context.py AdminContext.add_flash   1 0 0   100%
src/lexigram/admin/state/context.py AdminContext.add_breadcrumb   1 1 0   0%
src/lexigram/admin/state/context.py AdminContext.with_resource   1 1 0   0%
src/lexigram/admin/state/context.py HTMXInfo.from_request   1 0 0   100%
src/lexigram/admin/state/context.py wants_fragment   2 0 0   100%
src/lexigram/admin/state/context.py AdminContextManager.get_context   1 0 0   100%
src/lexigram/admin/state/context.py AdminContextManager.get_context_or_raise   4 4 0   0%
src/lexigram/admin/state/context.py AdminContextManager.__init__   3 0 0   100%
src/lexigram/admin/state/context.py AdminContextManager._read_flash_from_session   7 1 0   86%
src/lexigram/admin/state/context.py AdminContextManager._write_flash_to_session   9 1 0   89%
src/lexigram/admin/state/context.py AdminContextManager.__aenter__   13 0 0   100%
src/lexigram/admin/state/context.py AdminContextManager.__aexit__   5 0 0   100%
src/lexigram/admin/state/context.py with_context   3 3 0   0%
src/lexigram/admin/state/context.py with_context.wrapper   2 2 0   0%
src/lexigram/admin/state/context.py flash   3 3 0   0%
src/lexigram/admin/state/context.py get_flashes   4 4 0   0%
src/lexigram/admin/state/context.py breadcrumb   3 3 0   0%
src/lexigram/admin/state/context.py get_breadcrumbs   4 4 0   0%
src/lexigram/admin/state/context.py (no function)   57 0 3   100%
src/lexigram/admin/state/dependency_tracker.py DependencyStack.__init__   1 1 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyStack.push   1 1 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyStack.pop   3 3 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyStack.current   3 3 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.__init__   6 6 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.track   5 5 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.trigger   5 5 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.invalidate   3 3 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.get_cached   1 1 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.set_cache   1 1 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.has_cache   1 1 0   0%
src/lexigram/admin/state/dependency_tracker.py DependencyTracker.clear   2 2 0   0%
src/lexigram/admin/state/dependency_tracker.py get_dependency_tracker   3 3 0   0%
src/lexigram/admin/state/dependency_tracker.py __getattr__   3 1 0   67%
src/lexigram/admin/state/dependency_tracker.py (no function)   19 0 0   100%
src/lexigram/admin/state/persistence.py IStorage.get   0 0 1   100%
src/lexigram/admin/state/persistence.py IStorage.set   0 0 1   100%
src/lexigram/admin/state/persistence.py IStorage.remove   0 0 1   100%
src/lexigram/admin/state/persistence.py DictionaryStorage.__init__   1 0 0   100%
src/lexigram/admin/state/persistence.py DictionaryStorage.get   1 0 0   100%
src/lexigram/admin/state/persistence.py DictionaryStorage.set   1 0 0   100%
src/lexigram/admin/state/persistence.py DictionaryStorage.remove   1 1 0   0%
src/lexigram/admin/state/persistence.py PersistedSignal.__init__   13 3 0   77%
src/lexigram/admin/state/persistence.py PersistedSignal.__init__._persist   3 0 0   100%
src/lexigram/admin/state/persistence.py StatePersistenceManager.__init__   1 0 0   100%
src/lexigram/admin/state/persistence.py StatePersistenceManager.persist   7 0 0   100%
src/lexigram/admin/state/persistence.py StatePersistenceManager.persist._save   3 0 0   100%
src/lexigram/admin/state/persistence.py (no function)   16 0 5   100%
src/lexigram/admin/state/store.py Signal.__init__   2 0 0   100%
src/lexigram/admin/state/store.py Signal.get   5 0 0   100%
src/lexigram/admin/state/store.py Signal.set   5 1 0   80%
src/lexigram/admin/state/store.py Signal.add_subscriber   1 1 0   0%
src/lexigram/admin/state/store.py Signal.remove_subscriber   1 0 0   100%
src/lexigram/admin/state/store.py Signal.__repr__   1 1 0   0%
src/lexigram/admin/state/store.py Computed.__init__   5 0 0   100%
src/lexigram/admin/state/store.py Computed.get   7 0 0   100%
src/lexigram/admin/state/store.py Computed._evaluate   8 0 0   100%
src/lexigram/admin/state/store.py Computed.update   4 0 0   100%
src/lexigram/admin/state/store.py Computed.add_dependency   1 0 0   100%
src/lexigram/admin/state/store.py Computed.remove_subscriber   1 0 0   100%
src/lexigram/admin/state/store.py Computed.__repr__   1 1 0   0%
src/lexigram/admin/state/store.py Effect.__init__   3 0 0   100%
src/lexigram/admin/state/store.py Effect._run   7 0 0   100%
src/lexigram/admin/state/store.py Effect.update   1 0 0   100%
src/lexigram/admin/state/store.py Effect.add_dependency   1 0 0   100%
src/lexigram/admin/state/store.py signal   1 0 0   100%
src/lexigram/admin/state/store.py computed   1 0 0   100%
src/lexigram/admin/state/store.py watch   1 0 0   100%
src/lexigram/admin/state/store.py (no function)   29 0 2   100%
src/lexigram/admin/state/url.py URLState.from_request   23 6 0   74%
src/lexigram/admin/state/url.py URLState.to_query_string   22 22 0   0%
src/lexigram/admin/state/url.py URLState.to_dict   1 1 0   0%
src/lexigram/admin/state/url.py URLState.with_page   1 1 0   0%
src/lexigram/admin/state/url.py URLState.with_sort   1 1 0   0%
src/lexigram/admin/state/url.py URLState.with_filter   5 5 0   0%
src/lexigram/admin/state/url.py URLState.with_search   1 1 0   0%
src/lexigram/admin/state/url.py URLState.clear_filters   1 1 0   0%
src/lexigram/admin/state/url.py URLState.toggle_expanded   5 5 0   0%
src/lexigram/admin/state/url.py URLState.toggle_selected   5 5 0   0%
src/lexigram/admin/state/url.py URLState.select_all   1 1 0   0%
src/lexigram/admin/state/url.py URLState.clear_selection   1 1 0   0%
src/lexigram/admin/state/url.py url_for_state   8 8 0   0%
src/lexigram/admin/state/url.py htmx_url_attributes   4 4 0   0%
src/lexigram/admin/state/url.py (no function)   32 0 2   100%
src/lexigram/admin/state/url_sync.py URLStateManager.__init__   1 0 0   100%
src/lexigram/admin/state/url_sync.py URLStateManager.serialize   6 1 0   83%
src/lexigram/admin/state/url_sync.py URLStateManager.deserialize   23 1 0   96%
src/lexigram/admin/state/url_sync.py URLStateManager.deserialize._coerce   16 4 0   75%
src/lexigram/admin/state/url_sync.py URLStateManager.bind_signal   4 4 0   0%
src/lexigram/admin/state/url_sync.py (no function)   8 0 2   100%
src/lexigram/admin/tasks/__init__.py __getattr__   6 6 0   0%
src/lexigram/admin/tasks/__init__.py __dir__   1 1 0   0%
src/lexigram/admin/tasks/__init__.py (no function)   7 0 2   100%
src/lexigram/admin/tasks/bulk_operations.py TaskProgress.percentage   3 0 0   100%
src/lexigram/admin/tasks/bulk_operations.py TaskProgress.to_dict   1 0 0   100%
src/lexigram/admin/tasks/bulk_operations.py AdminTaskResult.to_dict   1 0 0   100%
src/lexigram/admin/tasks/bulk_operations.py bulk_export_task   21 21 0   0%
src/lexigram/admin/tasks/bulk_operations.py bulk_import_task   14 2 0   86%
src/lexigram/admin/tasks/bulk_operations.py bulk_update_task   8 2 0   75%
src/lexigram/admin/tasks/bulk_operations.py bulk_delete_task   7 2 0   71%
src/lexigram/admin/tasks/bulk_operations.py data_cleanup_task   6 2 0   67%
src/lexigram/admin/tasks/bulk_operations.py cache_warm_task   6 2 0   67%
src/lexigram/admin/tasks/bulk_operations.py (no function)   39 0 0   100%
src/lexigram/admin/theme/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/theme/service.py AdminThemeService.__init__   2 0 0   100%
src/lexigram/admin/theme/service.py AdminThemeService.generate_theme_css   3 0 0   100%
src/lexigram/admin/theme/service.py AdminThemeService.update_primary_color   2 0 0   100%
src/lexigram/admin/theme/service.py (no function)   6 0 0   100%
src/lexigram/admin/theme/tailwind.py (no function)   4 0 0   100%
src/lexigram/admin/types.py (no function)   46 0 0   100%
src/lexigram/admin/ui/__init__.py (no function)   12 0 0   100%
src/lexigram/admin/ui/debug.py StateDebugPanel.__init__   2 0 0   100%
src/lexigram/admin/ui/debug.py StateDebugPanel.render   2 0 0   100%
src/lexigram/admin/ui/debug.py (no function)   7 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField.__init__   3 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField.pivot_columns   1 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField.render_form   7 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField._build_pivot_input   7 1 0   86%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField.render_column   4 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField.from_form   5 1 0   80%
src/lexigram/admin/ui/fields/pivot_data.py PivotDataField.to_form   1 1 0   0%
src/lexigram/admin/ui/fields/pivot_data.py PivotTable.__init__   2 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py PivotTable.render   12 0 0   100%
src/lexigram/admin/ui/fields/pivot_data.py (no function)   26 0 0   100%
src/lexigram/admin/ui/filters/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/ui/filters/base.py Filter.__init__   9 0 0   100%
src/lexigram/admin/ui/filters/base.py Filter.default   6 6 0   0%
src/lexigram/admin/ui/filters/base.py Filter.get_default   3 1 0   67%
src/lexigram/admin/ui/filters/base.py Filter.placeholder   2 2 0   0%
src/lexigram/admin/ui/filters/base.py Filter.visible   4 4 0   0%
src/lexigram/admin/ui/filters/base.py Filter.is_visible   3 1 0   67%
src/lexigram/admin/ui/filters/base.py Filter.get_value_from_request   1 1 0   0%
src/lexigram/admin/ui/filters/base.py Filter.get_consumed_params   1 1 0   0%
src/lexigram/admin/ui/filters/base.py Filter.render   0 0 0   100%
src/lexigram/admin/ui/filters/base.py Filter.apply   0 0 0   100%
src/lexigram/admin/ui/filters/base.py Filter.to_spec   4 4 0   0%
src/lexigram/admin/ui/filters/base.py Filter.to_url_param   3 3 0   0%
src/lexigram/admin/ui/filters/base.py Filter.from_url_param   1 1 0   0%
src/lexigram/admin/ui/filters/base.py Filter.set_state   1 0 0   100%
src/lexigram/admin/ui/filters/base.py Filter.get_state   1 1 0   0%
src/lexigram/admin/ui/filters/base.py Filter.set_htmx_attrs   1 1 0   0%
src/lexigram/admin/ui/filters/base.py Filter.get_htmx_attrs   1 0 0   100%
src/lexigram/admin/ui/filters/base.py Filter.build_state_url   17 17 0   0%
src/lexigram/admin/ui/filters/base.py (no function)   25 0 2   100%
src/lexigram/admin/ui/filters/types/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.__init__   21 8 0   62%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.multiple   2 2 0   0%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.get_options   13 11 0   15%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.render   22 1 0   95%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.apply   5 5 0   0%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.from_url_param   7 7 0   0%
src/lexigram/admin/ui/filters/types/selection.py SelectFilter.to_spec   6 6 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.__init__   16 16 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.get_consumed_params   1 1 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.get_options   13 13 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.render   28 28 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.apply   5 5 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.from_url_param   5 5 0   0%
src/lexigram/admin/ui/filters/types/selection.py MultiSelectFilter.to_spec   4 4 0   0%
src/lexigram/admin/ui/filters/types/selection.py (no function)   22 0 2   100%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.__init__   10 2 0   80%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.get_consumed_params   1 1 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.get_default   3 3 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter._render_input   21 21 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.render   11 11 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.apply   9 9 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.get_value_from_request   5 5 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.from_url_param   1 1 0   0%
src/lexigram/admin/ui/filters/types/standard.py RangeFilter.to_spec   14 14 0   0%
src/lexigram/admin/ui/filters/types/standard.py NumericRangeFilter.__init__   2 2 0   0%
src/lexigram/admin/ui/filters/types/standard.py (no function)   18 0 2   100%
src/lexigram/admin/ui/filters/types/toggle.py ToggleFilter.__init__   3 0 0   100%
src/lexigram/admin/ui/filters/types/toggle.py ToggleFilter.render   27 9 0   67%
src/lexigram/admin/ui/filters/types/toggle.py ToggleFilter.from_url_param   8 8 0   0%
src/lexigram/admin/ui/filters/types/toggle.py ToggleFilter.apply   4 4 0   0%
src/lexigram/admin/ui/filters/types/toggle.py ToggleFilter.to_spec   4 4 0   0%
src/lexigram/admin/ui/filters/types/toggle.py (no function)   12 0 0   100%
src/lexigram/admin/ui/layouts/__init__.py (no function)   7 0 0   100%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout.__init__   4 0 0   100%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout._setup_components   7 0 0   100%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout._build_nav_groups   4 1 0   75%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout._convert_nav_item   3 3 0   0%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout.render_head_content   17 1 0   94%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout.render_body_content   26 26 0   0%
src/lexigram/admin/ui/layouts/admin_layout.py AdminLayout.get_body_attrs   12 12 0   0%
src/lexigram/admin/ui/layouts/admin_layout.py admin_layout   2 2 0   0%
src/lexigram/admin/ui/layouts/admin_layout.py (no function)   61 0 0   100%
src/lexigram/admin/ui/layouts/components/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer.__init__   2 0 0   100%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer.render   8 8 0   0%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer._render_left_section   10 10 0   0%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer._render_search   1 1 0   0%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer._render_right_section   10 10 0   0%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer._render_theme_toggle   1 1 0   0%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer._render_notifications   9 9 0   0%
src/lexigram/admin/ui/layouts/components/header.py HeaderRenderer._render_user_menu   11 11 0   0%
src/lexigram/admin/ui/layouts/components/header.py (no function)   37 0 0   100%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer.__init__   2 0 0   100%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer.render   18 18 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer._render_logo   7 7 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer._render_nav_group   13 13 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer._render_nav_item   24 24 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer._render_collapse_toggle   1 1 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py SidebarRenderer._render_footer   1 1 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py build_nav_from_resources   15 15 0   0%
src/lexigram/admin/ui/layouts/components/sidebar.py (no function)   45 0 0   100%
src/lexigram/admin/ui/layouts/standalone_layout.py StandaloneLayout.__init__   4 0 0   100%
src/lexigram/admin/ui/layouts/standalone_layout.py StandaloneLayout._setup_components   3 0 0   100%
src/lexigram/admin/ui/layouts/standalone_layout.py StandaloneLayout.render_head_content   15 3 0   80%
src/lexigram/admin/ui/layouts/standalone_layout.py StandaloneLayout.render_body_content   20 1 0   95%
src/lexigram/admin/ui/layouts/standalone_layout.py StandaloneLayout._render_header   11 1 0   91%
src/lexigram/admin/ui/layouts/standalone_layout.py StandaloneLayout.get_body_attrs   3 3 0   0%
src/lexigram/admin/ui/layouts/standalone_layout.py standalone_layout   2 2 0   0%
src/lexigram/admin/ui/layouts/standalone_layout.py (no function)   34 0 0   100%
src/lexigram/admin/ui/molecules/__init__.py (no function)   7 0 0   100%
src/lexigram/admin/ui/molecules/debug_panel.py DebugPanel.__init__   2 2 0   0%
src/lexigram/admin/ui/molecules/debug_panel.py DebugPanel.render   8 8 0   0%
src/lexigram/admin/ui/molecules/debug_panel.py (no function)   8 0 2   100%
src/lexigram/admin/ui/molecules/filter_bar.py FilterBar.__init__   6 0 0   100%
src/lexigram/admin/ui/molecules/filter_bar.py FilterBar._detect_filter_type   10 10 0   0%
src/lexigram/admin/ui/molecules/filter_bar.py FilterBar.render   39 10 0   74%
src/lexigram/admin/ui/molecules/filter_bar.py FilterBar._active_filter_count   1 0 0   100%
src/lexigram/admin/ui/molecules/filter_bar.py FilterBar._wrap_container   13 0 0   100%
src/lexigram/admin/ui/molecules/filter_bar.py (no function)   9 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.__init__   1 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.make   1 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.title   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.message   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.icon   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.success   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.error   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.warning   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.info   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.duration   3 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.persistent   3 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.dismissible   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.actions   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.to_toast   1 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.render   1 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py ToastNotification.send   2 0 0   100%
src/lexigram/admin/ui/molecules/toast_notification.py (no function)   24 0 0   100%
src/lexigram/admin/ui/observability.py track_htmx_request   4 0 0   100%
src/lexigram/admin/ui/observability.py track_render_time   4 0 0   100%
src/lexigram/admin/ui/observability.py track_error   4 0 0   100%
src/lexigram/admin/ui/observability.py log_htmx_request   4 4 0   0%
src/lexigram/admin/ui/observability.py log_htmx_response   1 1 0   0%
src/lexigram/admin/ui/observability.py render_debug_panel   17 1 0   94%
src/lexigram/admin/ui/observability.py observe_htmx   3 3 1   0%
src/lexigram/admin/ui/observability.py observe_htmx.decorator   7 7 0   0%
src/lexigram/admin/ui/observability.py observe_htmx.decorator.async_wrapper   13 13 0   0%
src/lexigram/admin/ui/observability.py observe_htmx.decorator.sync_wrapper   13 13 0   0%
src/lexigram/admin/ui/observability.py get_health_status   8 0 0   100%
src/lexigram/admin/ui/observability.py (no function)   16 0 2   100%
src/lexigram/admin/ui/organisms/__init__.py (no function)   5 0 0   100%
src/lexigram/admin/ui/organisms/admin_slide_over.py render_slide_over_fragment   3 0 0   100%
src/lexigram/admin/ui/organisms/admin_slide_over.py render_delete_confirm   7 0 0   100%
src/lexigram/admin/ui/organisms/admin_slide_over.py render_bulk_delete_confirm   9 0 0   100%
src/lexigram/admin/ui/organisms/admin_slide_over.py (no function)   7 0 0   100%
src/lexigram/admin/ui/organisms/bulk_edit_modal.py bulk_edit_modal   7 7 0   0%
src/lexigram/admin/ui/organisms/bulk_edit_modal.py _render_field_html   15 15 0   0%
src/lexigram/admin/ui/organisms/bulk_edit_modal.py bulk_assign_modal   1 1 0   0%
src/lexigram/admin/ui/organisms/bulk_edit_modal.py bulk_confirm_dialog   1 1 0   0%
src/lexigram/admin/ui/organisms/bulk_edit_modal.py bulk_progress_indicator   1 1 0   0%
src/lexigram/admin/ui/organisms/bulk_edit_modal.py (no function)   11 11 0   0%
src/lexigram/admin/ui/organisms/command_palette.py CommandPalette.__init__   2 0 0   100%
src/lexigram/admin/ui/organisms/command_palette.py CommandPalette.render   9 0 0   100%
src/lexigram/admin/ui/organisms/command_palette.py (no function)   7 0 0   100%
src/lexigram/admin/ui/organisms/components.py page_header   2 2 0   0%
src/lexigram/admin/ui/organisms/components.py (no function)   9 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py StatCard.__init__   2 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py StatCard.render   17 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py StatCardGrid.__init__   3 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py StatCardGrid.render   2 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py ActivityFeed.__init__   4 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py ActivityFeed.render   15 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py SystemHealthWidget.__init__   3 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py SystemHealthWidget.render   11 0 0   100%
src/lexigram/admin/ui/organisms/dashboard/widgets.py (no function)   44 0 0   100%
src/lexigram/admin/ui/organisms/data_table/__init__.py (no function)   11 0 0   100%
src/lexigram/admin/ui/organisms/data_table/actions.py _normalize_old_action   20 20 0   0%
src/lexigram/admin/ui/organisms/data_table/actions.py _normalize_new_action   12 12 0   0%
src/lexigram/admin/ui/organisms/data_table/actions.py normalize_action   3 3 0   0%
src/lexigram/admin/ui/organisms/data_table/actions.py render_action_button   5 0 0   100%
src/lexigram/admin/ui/organisms/data_table/actions.py render_bulk_action_button   20 20 0   0%
src/lexigram/admin/ui/organisms/data_table/actions.py ActionManager.__init__   2 0 0   100%
src/lexigram/admin/ui/organisms/data_table/actions.py ActionManager.configure_actions   4 0 0   100%
src/lexigram/admin/ui/organisms/data_table/actions.py ActionManager._configure_existing_actions   0 0 0   100%
src/lexigram/admin/ui/organisms/data_table/actions.py ActionManager._add_default_actions   11 0 0   100%
src/lexigram/admin/ui/organisms/data_table/actions.py (no function)   35 0 0   100%
src/lexigram/admin/ui/organisms/data_table/coordinator.py DataTable.__init__   19 0 0   100%
src/lexigram/admin/ui/organisms/data_table/coordinator.py DataTable.render   2 0 0   100%
src/lexigram/admin/ui/organisms/data_table/coordinator.py (no function)   10 0 0   100%
src/lexigram/admin/ui/organisms/data_table/layout.py LayoutComposer.__init__   2 0 0   100%
src/lexigram/admin/ui/organisms/data_table/layout.py LayoutComposer.compose   10 0 0   100%
src/lexigram/admin/ui/organisms/data_table/layout.py (no function)   7 0 0   100%
src/lexigram/admin/ui/organisms/data_table/permissions.py PermissionManager.__init__   3 3 0   0%
src/lexigram/admin/ui/organisms/data_table/permissions.py PermissionManager.check_permissions   4 4 0   0%
src/lexigram/admin/ui/organisms/data_table/permissions.py (no function)   5 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer.__init__   16 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._extract_all_ids   20 7 0   65%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer.all_ids_json   1 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer.render   24 2 0   92%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_toolbar   3 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_scope_tabs   15 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_scope_tabs._tab   4 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_oob_fragments   10 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_view_content   8 2 0   75%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_pagination   8 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_hidden_inputs   9 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_htmx_wrapper   5 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer._render_script   2 0 0   100%
src/lexigram/admin/ui/organisms/data_table/rendering.py DataTableRenderer.render_bulk_actions   11 11 0   0%
src/lexigram/admin/ui/organisms/data_table/rendering.py (no function)   26 0 0   100%
src/lexigram/admin/ui/organisms/data_table/states.py StateRenderer.__init__   2 0 0   100%
src/lexigram/admin/ui/organisms/data_table/states.py StateRenderer.render_skeleton   11 11 0   0%
src/lexigram/admin/ui/organisms/data_table/states.py StateRenderer.render_error   1 1 0   0%
src/lexigram/admin/ui/organisms/data_table/states.py StateRenderer.render_empty   1 0 0   100%
src/lexigram/admin/ui/organisms/data_table/states.py (no function)   9 0 0   100%
src/lexigram/admin/ui/organisms/data_table/types.py (no function)   1 1 0   0%
src/lexigram/admin/ui/organisms/data_table/views.py ViewStrategy.__init__   7 7 0   0%
src/lexigram/admin/ui/organisms/data_table/views.py ViewStrategy.render   1 1 0   0%
src/lexigram/admin/ui/organisms/data_table/views.py ViewFactory.create_view   15 11 0   27%
src/lexigram/admin/ui/organisms/data_table/views.py (no function)   10 0 0   100%
src/lexigram/admin/ui/organisms/dynamic_form.py DynamicForm.__init__   7 0 0   100%
src/lexigram/admin/ui/organisms/dynamic_form.py DynamicForm.render   16 2 0   88%
src/lexigram/admin/ui/organisms/dynamic_form.py (no function)   8 0 2   100%
src/lexigram/admin/ui/organisms/pagination.py Pagination.__init__   13 0 0   100%
src/lexigram/admin/ui/organisms/pagination.py Pagination.render   9 1 0   89%
src/lexigram/admin/ui/organisms/pagination.py (no function)   6 0 0   100%
src/lexigram/admin/ui/organisms/secondary_nav.py ClusterLayout.__init__   3 0 0   100%
src/lexigram/admin/ui/organisms/secondary_nav.py ClusterLayout.render   1 0 0   100%
src/lexigram/admin/ui/organisms/secondary_nav.py SecondaryNav.__init__   3 0 0   100%
src/lexigram/admin/ui/organisms/secondary_nav.py SecondaryNav.render   2 0 0   100%
src/lexigram/admin/ui/organisms/secondary_nav.py SecondaryNav._render_group   7 0 0   100%
src/lexigram/admin/ui/organisms/secondary_nav.py SecondaryNav._render_header_icon   7 2 0   71%
src/lexigram/admin/ui/organisms/secondary_nav.py (no function)   12 0 0   100%
src/lexigram/admin/ui/organisms/sidebar.py SidebarItem.__init__   6 0 0   100%
src/lexigram/admin/ui/organisms/sidebar.py SidebarItem.render   22 5 0   77%
src/lexigram/admin/ui/organisms/sidebar.py SidebarSection.__init__   3 0 0   100%
src/lexigram/admin/ui/organisms/sidebar.py SidebarSection.render   11 11 0   0%
src/lexigram/admin/ui/organisms/sidebar.py Sidebar.__init__   22 8 0   64%
src/lexigram/admin/ui/organisms/sidebar.py Sidebar.render   13 1 0   92%
src/lexigram/admin/ui/organisms/sidebar.py Sidebar.render._get_user_val   3 0 0   100%
src/lexigram/admin/ui/organisms/sidebar.py (no function)   12 0 0   100%
src/lexigram/admin/ui/organisms/table/toolbar.py TableToolbar.__init__   2 0 0   100%
src/lexigram/admin/ui/organisms/table/toolbar.py TableToolbar.render   1 1 0   0%
src/lexigram/admin/ui/organisms/table/toolbar.py TableToolbar.render_header   73 20 0   73%
src/lexigram/admin/ui/organisms/table/toolbar.py TableToolbar.render_search   10 1 0   90%
src/lexigram/admin/ui/organisms/table/toolbar.py TableToolbar.render_filters   6 0 0   100%
src/lexigram/admin/ui/organisms/table/toolbar.py TableToolbar.render_switchers_oob   13 0 0   100%
src/lexigram/admin/ui/organisms/table/toolbar.py (no function)   11 0 0   100%
src/lexigram/admin/ui/organisms/table/views/stacked.py _get_attr   3 1 0   67%
src/lexigram/admin/ui/organisms/table/views/stacked.py StackedView.render   55 26 0   53%
src/lexigram/admin/ui/organisms/table/views/stacked.py (no function)   8 0 0   100%
src/lexigram/admin/ui/organisms/table/views/summarizers.py _column_values   7 0 0   100%
src/lexigram/admin/ui/organisms/table/views/summarizers.py _numeric   7 0 0   100%
src/lexigram/admin/ui/organisms/table/views/summarizers.py _format   3 0 0   100%
src/lexigram/admin/ui/organisms/table/views/summarizers.py compute_summaries   20 0 0   100%
src/lexigram/admin/ui/organisms/table/views/summarizers.py (no function)   8 0 0   100%
src/lexigram/admin/ui/organisms/table/views/tabular.py _js_str   2 0 0   100%
src/lexigram/admin/ui/organisms/table/views/tabular.py AbstractDataView.__init__   15 7 0   53%
src/lexigram/admin/ui/organisms/table/views/tabular.py AbstractDataView.render   1 1 0   0%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView.render   6 0 0   100%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView.render_header   68 19 0   72%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView.render_rows   18 0 0   100%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView.render_rows.get_group_key   2 0 0   100%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView._render_single_row   81 18 0   78%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView.effective_summary   4 0 0   100%
src/lexigram/admin/ui/organisms/table/views/tabular.py TabularView.render_summary   25 13 0   48%
src/lexigram/admin/ui/organisms/table/views/tabular.py (no function)   20 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py LanguageSwitcher.__init__   4 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py LanguageSwitcher.render   3 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py TenantSwitcher.__init__   5 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py TenantSwitcher.render   8 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py ThemeToggle.render   2 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py TopBar.__init__   12 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py TopBar.render   23 0 0   100%
src/lexigram/admin/ui/organisms/topbar.py (no function)   14 0 0   100%
src/lexigram/admin/ui/templates/shell.py AdminShell.__init__   36 4 0   89%
src/lexigram/admin/ui/templates/shell.py AdminShell._prepare_navigation   48 18 0   62%
src/lexigram/admin/ui/templates/shell.py AdminShell.render   30 3 0   90%
src/lexigram/admin/ui/templates/shell.py (no function)   10 0 0   100%
src/lexigram/admin/ui/views.py View.to_config   1 1 0   0%
src/lexigram/admin/ui/views.py ListView.to_config   1 1 0   0%
src/lexigram/admin/ui/views.py GridView.to_config   1 1 0   0%
src/lexigram/admin/ui/views.py CalendarView.to_config   1 1 0   0%
src/lexigram/admin/ui/views.py MapView.to_config   1 1 0   0%
src/lexigram/admin/ui/views.py (no function)   45 45 3   0%
src/lexigram/admin/ui/widgets/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/validation/__init__.py (no function)   4 0 0   100%
src/lexigram/admin/validation/rules.py IsValidAdminEmail.__call__   3 0 0   100%
src/lexigram/admin/validation/rules.py StrongPassword.__call__   14 0 0   100%
src/lexigram/admin/validation/rules.py IsValidUsername.__call__   3 0 0   100%
src/lexigram/admin/validation/rules.py (no function)   14 0 0   100%
src/lexigram/admin/validation/validators.py create_user_validator   1 0 0   100%
src/lexigram/admin/validation/validators.py update_user_validator   1 0 0   100%
src/lexigram/admin/validation/validators.py (no function)   6 0 0   100%
src/lexigram/admin/views/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/views/_views.py ResourceView.render   0 0 1   100%
src/lexigram/admin/views/_views.py ResourceView.view_type   0 0 1   100%
src/lexigram/admin/views/_views.py CalendarView._parse_date   15 7 0   53%
src/lexigram/admin/views/_views.py CalendarView._days_in_month   2 0 0   100%
src/lexigram/admin/views/_views.py CalendarView._first_weekday   1 0 0   100%
src/lexigram/admin/views/_views.py CalendarView.group_by_day   7 0 0   100%
src/lexigram/admin/views/_views.py CalendarView.render   20 0 0   100%
src/lexigram/admin/views/_views.py KanbanView.group_by_status   8 0 0   100%
src/lexigram/admin/views/_views.py KanbanView.render   18 0 0   100%
src/lexigram/admin/views/_views.py TreeView.build_tree   5 0 0   100%
src/lexigram/admin/views/_views.py TreeView._render_nodes   19 0 0   100%
src/lexigram/admin/views/_views.py TreeView.render   4 0 0   100%
src/lexigram/admin/views/_views.py AuditLogView.render   13 13 0   0%
src/lexigram/admin/views/_views.py (no function)   52 0 3   100%
src/lexigram/admin/web/__init__.py (no function)   3 0 0   100%
src/lexigram/admin/web/contributor.py AdminWebContributor.contributor_id   1 0 0   100%
src/lexigram/admin/web/contributor.py AdminWebContributor.get_controllers   1 0 0   100%
src/lexigram/admin/web/contributor.py AdminWebContributor.get_middleware   1 0 0   100%
src/lexigram/admin/web/contributor.py AdminWebContributor.mount_to_app   3 0 0   100%
src/lexigram/admin/web/contributor.py (no function)   8 0 2   100%
Total     28926 6620 907   77%

No items found using the specified filter.