Coverage report: 99%

Files Functions Classes

coverage.py v7.10.2, created at 2025-08-06 13:30 +0000

File function statements missing excluded branches partial coverage
bzfs_main/argparse_actions.py _add_snapshot_filter 3 0 0 2 0 100%
bzfs_main/argparse_actions.py _add_time_and_rank_snapshot_filter 4 0 0 2 0 100%
bzfs_main/argparse_actions.py has_timerange_filter 1 0 0 0 0 100%
bzfs_main/argparse_actions.py optimize_snapshot_filters 5 0 0 0 0 100%
bzfs_main/argparse_actions.py _merge_adjacent_snapshot_filters 11 0 0 6 0 100%
bzfs_main/argparse_actions.py _merge_adjacent_snapshot_regexes 32 0 0 14 0 100%
bzfs_main/argparse_actions.py _reorder_snapshot_time_filters 10 0 0 4 0 100%
bzfs_main/argparse_actions.py _reorder_snapshot_time_filters.reorder_time_filters_within_section 6 0 0 4 0 100%
bzfs_main/argparse_actions.py validate_no_argument_file 2 0 0 2 0 100%
bzfs_main/argparse_actions.py NonEmptyStringAction.__call__ 4 0 0 2 0 100%
bzfs_main/argparse_actions.py DatasetPairsAction.__call__ 28 0 0 16 0 100%
bzfs_main/argparse_actions.py SSHConfigFileNameAction.__call__ 6 0 0 4 0 100%
bzfs_main/argparse_actions.py SafeFileNameAction.__call__ 5 0 0 4 0 100%
bzfs_main/argparse_actions.py SafeDirectoryNameAction.__call__ 6 0 0 4 0 100%
bzfs_main/argparse_actions.py NewSnapshotFilterGroupAction.__call__ 4 0 0 4 0 100%
bzfs_main/argparse_actions.py FileOrLiteralAction.__call__ 24 0 0 14 0 100%
bzfs_main/argparse_actions.py IncludeSnapshotPlanAction.__call__ 6 0 0 2 0 100%
bzfs_main/argparse_actions.py IncludeSnapshotPlanAction._add_opts 18 0 0 10 0 100%
bzfs_main/argparse_actions.py DeleteDstSnapshotsExceptPlanAction.__call__ 6 0 0 2 0 100%
bzfs_main/argparse_actions.py TimeRangeAndRankRangeAction.__call__ 13 0 0 4 0 100%
bzfs_main/argparse_actions.py TimeRangeAndRankRangeAction.__call__.parse_time 12 0 0 4 0 100%
bzfs_main/argparse_actions.py TimeRangeAndRankRangeAction._get_include_snapshot_times 9 0 0 4 0 100%
bzfs_main/argparse_actions.py TimeRangeAndRankRangeAction._get_include_snapshot_times.utc_unix_time_in_seconds 5 0 0 4 0 100%
bzfs_main/argparse_actions.py TimeRangeAndRankRangeAction._parse_rankranges 24 0 0 12 0 100%
bzfs_main/argparse_actions.py TimeRangeAndRankRangeAction._parse_rankranges.parse_rank 11 0 0 4 0 100%
bzfs_main/argparse_actions.py LogConfigVariablesAction.__call__ 9 0 0 6 0 100%
bzfs_main/argparse_actions.py CheckPercentRange.__call__ 12 0 0 2 0 100%
bzfs_main/argparse_actions.py (no function) 54 0 0 0 0 100%
bzfs_main/argparse_cli.py argument_parser 140 0 0 16 0 100%
bzfs_main/argparse_cli.py argument_parser.argparser_escape 1 0 0 0 0 100%
bzfs_main/argparse_cli.py argument_parser.hlp 1 0 0 0 0 100%
bzfs_main/argparse_cli.py argument_parser.h 1 0 0 0 0 100%
bzfs_main/argparse_cli.py (no function) 17 0 0 0 0 100%
bzfs_main/bzfs.py argument_parser 1 0 0 0 0 100%
bzfs_main/bzfs.py main 4 0 0 0 0 100%
bzfs_main/bzfs.py run_main 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.__init__ 36 0 0 0 0 100%
bzfs_main/bzfs.py Job.shutdown 3 0 0 2 0 100%
bzfs_main/bzfs.py Job.terminate 3 0 0 0 0 100%
bzfs_main/bzfs.py Job.terminate.post_shutdown 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.run_main 69 0 0 14 0 100%
bzfs_main/bzfs.py Job.run_main.log_error_on_exit 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.run_tasks 50 0 0 14 0 100%
bzfs_main/bzfs.py Job.append_exception 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.sleep_until_next_daemon_iteration 15 0 0 2 0 100%
bzfs_main/bzfs.py Job.print_replication_stats 8 0 0 2 0 100%
bzfs_main/bzfs.py Job.validate_once 31 0 0 20 0 100%
bzfs_main/bzfs.py Job.validate_once.separate_abs_vs_rel_datasets 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.validate_task 46 0 0 22 0 100%
bzfs_main/bzfs.py Job.sudo_cmd 23 0 0 16 0 100%
bzfs_main/bzfs.py Job.run_task 50 0 0 26 0 100%
bzfs_main/bzfs.py Job.run_task.filter_src_datasets 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.list_src_datasets_task 14 0 0 2 0 100%
bzfs_main/bzfs.py Job.list_dst_datasets_task 17 0 0 4 0 100%
bzfs_main/bzfs.py Job.create_src_snapshots_task 20 0 0 8 0 100%
bzfs_main/bzfs.py Job.delete_destination_snapshots_task 15 0 0 2 0 100%
bzfs_main/bzfs.py Job.delete_destination_snapshots_task.delete_destination_snapshots 43 0 0 20 0 100%
bzfs_main/bzfs.py Job.delete_dst_datasets_task 15 0 0 6 0 100%
bzfs_main/bzfs.py Job.delete_empty_dst_datasets_task 25 0 0 16 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots_task 12 0 0 2 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots 28 0 0 8 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.monitor_last_modified_cache_file 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.alert_msg 9 0 0 4 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.check_alert 24 0 0 14 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.alert_latest_snapshot 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.alert_oldest_snapshot 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.find_stale_datasets_and_check_alerts 16 0 0 12 0 100%
bzfs_main/bzfs.py Job.replicate_datasets 37 0 0 8 0 100%
bzfs_main/bzfs.py Job.replicate_datasets.src2dst 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.replicate_datasets.dst2src 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.replicate_datasets.find_stale_datasets 29 0 0 8 0 100%
bzfs_main/bzfs.py Job.maybe_inject_delete 6 0 0 2 0 100%
bzfs_main/bzfs.py Job.maybe_inject_params 6 0 0 4 0 100%
bzfs_main/bzfs.py Job.recv_option_property_names 16 0 0 8 0 100%
bzfs_main/bzfs.py Job.root_datasets_if_recursive_zfs_snapshot_is_possible 14 0 0 8 0 100%
bzfs_main/bzfs.py Job.find_root_datasets 8 0 0 4 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot 56 0 0 28 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot.create_snapshot_if_latest_is_too_old 12 0 0 4 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot.create_snapshot_fn 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot.on_finish_dataset 2 0 0 2 0 100%
bzfs_main/bzfs.py Job.handle_minmax_snapshots 35 0 0 12 0 100%
bzfs_main/bzfs.py DatasetProperties.__init__ 2 0 0 0 0 100%
bzfs_main/bzfs.py fix_solaris_raw_mode 8 0 0 4 0 100%
bzfs_main/bzfs.py has_siblings 14 0 0 8 0 100%
bzfs_main/bzfs.py parse_dataset_locator 31 0 0 20 1 98%
bzfs_main/bzfs.py parse_dataset_locator.convert_ipv6 1 0 0 0 0 100%
bzfs_main/bzfs.py validate_user_name 3 0 0 2 0 100%
bzfs_main/bzfs.py validate_host_name 3 0 0 2 0 100%
bzfs_main/bzfs.py validate_port 4 0 0 4 0 100%
bzfs_main/bzfs.py (no function) 95 1 0 4 1 98%
bzfs_main/bzfs_jobrunner.py argument_parser 56 0 0 10 0 100%
bzfs_main/bzfs_jobrunner.py main 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.__init__ 11 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main 164 0 0 42 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.zero_pad 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.jpad 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.npad 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.update_subjob_name 5 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.resolve_dataset 7 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.resolve_dst_dataset 7 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.prune_src 6 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.monitor_snapshots_opts 6 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.build_monitor_plan 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.build_monitor_plan.alert_dicts 6 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.replication_opts 11 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.skip_nonexisting_local_dst_pools 22 0 0 8 0 100%
bzfs_main/bzfs_jobrunner.py Job.skip_nonexisting_local_dst_pools.zpool 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.add_ssh_opts 7 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_subjobs 33 0 0 10 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_subjob 46 0 0 6 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_worker_job_in_current_thread 15 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job._bzfs_run_main 3 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_worker_job_spawn_process_per_job 23 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_src_hosts 5 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_dst_hosts 8 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_dst_root_datasets 6 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_snapshot_plan 11 0 0 6 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_monitor_snapshot_plan 15 0 0 8 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_is_subset 7 0 0 6 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_host_name 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_non_empty_string 3 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_non_negative_int 3 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_true 2 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_type 9 0 0 8 0 100%
bzfs_main/bzfs_jobrunner.py Job.die 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.get_localhost_ips 7 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Stats.__init__ 8 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Stats.__repr__ 5 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Stats.__repr__.pct 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py RejectArgumentAction.__call__ 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py _dedupe 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py _flatten 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py _sanitize 3 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py _log_suffix 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py _pretty_print_formatter 3 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py _pretty_print_formatter.PrettyPrintFormatter.__str__ 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py _detect_loopback_address 15 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py convert_ipv6 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py (no function) 72 1 0 2 1 97%
bzfs_main/check_range.py CheckRange.__init__ 8 0 0 8 0 100%
bzfs_main/check_range.py CheckRange.interval 11 0 0 8 0 100%
bzfs_main/check_range.py CheckRange.__call__ 4 0 0 4 0 100%
bzfs_main/check_range.py (no function) 9 0 0 0 0 100%
bzfs_main/compare_snapshot_lists.py run_compare_snapshot_lists 45 0 0 8 0 100%
bzfs_main/compare_snapshot_lists.py run_compare_snapshot_lists.zfs_list_snapshot_iterator 11 0 0 6 0 100%
bzfs_main/compare_snapshot_lists.py run_compare_snapshot_lists.snapshot_iterator 18 0 0 8 0 100%
bzfs_main/compare_snapshot_lists.py run_compare_snapshot_lists.print_dataset 74 0 0 22 0 100%
bzfs_main/compare_snapshot_lists.py _print_datasets 13 0 0 6 0 100%
bzfs_main/compare_snapshot_lists.py _merge_sorted_iterators 26 0 0 16 0 100%
bzfs_main/compare_snapshot_lists.py (no function) 20 0 3 0 0 100%
bzfs_main/configuration.py LogParams.__init__ 47 0 0 10 0 100%
bzfs_main/configuration.py LogParams.__repr__ 1 0 0 0 0 100%
bzfs_main/configuration.py Params.__init__ 129 0 0 18 0 100%
bzfs_main/configuration.py Params.split_args 6 0 0 2 0 100%
bzfs_main/configuration.py Params.validate_arg 6 0 0 4 0 100%
bzfs_main/configuration.py Params.validate_arg_str 4 0 0 2 0 100%
bzfs_main/configuration.py Params._validate_quoting 3 0 0 4 0 100%
bzfs_main/configuration.py Params._fix_recv_opts 1 0 0 0 0 100%
bzfs_main/configuration.py Params._fix_send_opts 1 0 0 0 0 100%
bzfs_main/configuration.py Params._program_name 11 0 0 10 0 100%
bzfs_main/configuration.py Params._unset_matching_env_vars 6 0 0 4 0 100%
bzfs_main/configuration.py Params.lock_file_name 3 0 0 0 0 100%
bzfs_main/configuration.py Params.dry 1 0 0 0 0 100%
bzfs_main/configuration.py Params.is_program_available 1 0 0 0 0 100%
bzfs_main/configuration.py Remote.__init__ 30 0 0 6 0 100%
bzfs_main/configuration.py Remote.local_ssh_command 18 0 0 10 0 100%
bzfs_main/configuration.py Remote.local_ssh_command.sanitize 3 0 0 0 0 100%
bzfs_main/configuration.py Remote.cache_key 1 0 0 0 0 100%
bzfs_main/configuration.py Remote.__repr__ 1 0 0 0 0 100%
bzfs_main/configuration.py CopyPropertiesConfig.__init__ 8 0 0 0 0 100%
bzfs_main/configuration.py CopyPropertiesConfig.__repr__ 1 0 0 0 0 100%
bzfs_main/configuration.py SnapshotLabel.__str__ 1 0 0 0 0 100%
bzfs_main/configuration.py SnapshotLabel.validate_label 21 0 0 24 0 100%
bzfs_main/configuration.py CreateSrcSnapshotConfig.__init__ 35 0 0 16 0 100%
bzfs_main/configuration.py CreateSrcSnapshotConfig.__init__.suffix_key 9 0 0 8 0 100%
bzfs_main/configuration.py CreateSrcSnapshotConfig.snapshot_labels 9 0 0 4 0 100%
bzfs_main/configuration.py CreateSrcSnapshotConfig.__repr__ 1 0 0 0 0 100%
bzfs_main/configuration.py MonitorSnapshotsConfig.__init__ 50 0 0 28 0 100%
bzfs_main/configuration.py MonitorSnapshotsConfig.__init__.alert_sort_key 3 0 0 0 0 100%
bzfs_main/configuration.py MonitorSnapshotsConfig.__repr__ 1 0 0 0 0 100%
bzfs_main/configuration.py _fix_send_recv_opts 28 0 0 20 0 100%
bzfs_main/configuration.py _delete_stale_files 18 2 0 14 1 91%
bzfs_main/configuration.py _create_symlink 2 0 0 0 0 100%
bzfs_main/configuration.py (no function) 79 0 2 0 0 100%
bzfs_main/connection.py run_ssh_command 24 0 0 6 0 100%
bzfs_main/connection.py try_ssh_command 12 0 0 4 0 100%
bzfs_main/connection.py refresh_ssh_connection_if_necessary 29 0 0 14 0 100%
bzfs_main/connection.py timeout 8 0 0 4 0 100%
bzfs_main/connection.py maybe_inject_error 9 0 0 6 0 100%
bzfs_main/connection.py decrement_injection_counter 5 0 0 2 0 100%
bzfs_main/connection.py Connection.__init__ 9 0 0 0 0 100%
bzfs_main/connection.py Connection.__repr__ 1 0 0 0 0 100%
bzfs_main/connection.py Connection.increment_free 3 0 0 0 0 100%
bzfs_main/connection.py Connection.is_full 1 0 0 0 0 100%
bzfs_main/connection.py Connection.update_last_modified 1 0 0 0 0 100%
bzfs_main/connection.py Connection.shutdown 7 0 0 4 0 100%
bzfs_main/connection.py ConnectionPool.__init__ 7 0 0 0 0 100%
bzfs_main/connection.py ConnectionPool.connection 4 0 0 0 0 100%
bzfs_main/connection.py ConnectionPool.get_connection 12 0 0 4 0 100%
bzfs_main/connection.py ConnectionPool.return_connection 7 0 0 2 0 100%
bzfs_main/connection.py ConnectionPool.shutdown 5 0 0 4 0 100%
bzfs_main/connection.py ConnectionPool.__repr__ 3 0 0 0 0 100%
bzfs_main/connection.py ConnectionPools.__init__ 1 0 0 0 0 100%
bzfs_main/connection.py ConnectionPools.__repr__ 1 0 0 0 0 100%
bzfs_main/connection.py ConnectionPools.pool 1 0 0 0 0 100%
bzfs_main/connection.py ConnectionPools.shutdown 2 0 0 2 0 100%
bzfs_main/connection.py (no function) 44 0 3 0 0 100%
bzfs_main/detect.py detect_available_programs 67 0 0 44 0 100%
bzfs_main/detect.py _disable_program 2 0 0 2 0 100%
bzfs_main/detect.py _find_available_programs 14 0 0 0 0 100%
bzfs_main/detect.py _detect_available_programs_remote 42 2 0 14 2 93%
bzfs_main/detect.py is_solaris_zfs 1 0 0 0 0 100%
bzfs_main/detect.py is_solaris_zfs_location 3 0 0 2 0 100%
bzfs_main/detect.py is_dummy 1 0 0 0 0 100%
bzfs_main/detect.py _detect_zpool_features 23 1 0 10 1 94%
bzfs_main/detect.py is_zpool_feature_enabled_or_active 1 0 0 0 0 100%
bzfs_main/detect.py are_bookmarks_enabled 1 0 0 0 0 100%
bzfs_main/detect.py is_caching_snapshots 1 0 0 0 0 100%
bzfs_main/detect.py is_version_at_least 1 0 0 0 0 100%
bzfs_main/detect.py _validate_default_shell 2 0 0 2 0 100%
bzfs_main/detect.py (no function) 34 0 3 0 0 100%
bzfs_main/filter.py filter_datasets 27 0 0 20 0 100%
bzfs_main/filter.py _filter_datasets_by_exclude_property 29 0 0 12 0 100%
bzfs_main/filter.py filter_snapshots 24 0 0 12 0 100%
bzfs_main/filter.py filter_snapshots.resolve_timerange 9 0 0 4 0 100%
bzfs_main/filter.py _filter_snapshots_by_regex 17 0 0 12 0 100%
bzfs_main/filter.py _filter_snapshots_by_creation_time 16 0 0 10 2 92%
bzfs_main/filter.py _filter_snapshots_by_creation_time_and_rank 34 0 0 14 1 98%
bzfs_main/filter.py _filter_snapshots_by_creation_time_and_rank.get_idx 4 0 0 0 0 100%
bzfs_main/filter.py filter_properties 11 0 0 8 0 100%
bzfs_main/filter.py filter_lines 3 0 0 2 0 100%
bzfs_main/filter.py filter_lines_except 3 0 0 2 0 100%
bzfs_main/filter.py dataset_regexes 18 0 0 14 0 100%
bzfs_main/filter.py (no function) 23 0 3 0 0 100%
bzfs_main/incremental_send_steps.py incremental_send_steps 33 0 0 16 0 100%
bzfs_main/incremental_send_steps.py incremental_send_steps.append_run 9 0 0 6 0 100%
bzfs_main/incremental_send_steps.py send_step_to_str 1 0 0 0 0 100%
bzfs_main/incremental_send_steps.py (no function) 3 0 0 0 0 100%
bzfs_main/loggers.py get_logger_name 1 0 0 0 0 100%
bzfs_main/loggers.py get_logger_subname 1 0 0 0 0 100%
bzfs_main/loggers.py reset_logger 9 0 0 6 0 100%
bzfs_main/loggers.py get_logger 10 0 0 4 0 100%
bzfs_main/loggers.py _get_default_logger 30 0 0 8 0 100%
bzfs_main/loggers.py get_default_log_formatter 9 0 0 0 0 100%
bzfs_main/loggers.py get_default_log_formatter.DefaultLogFormatter.format 22 0 0 10 0 100%
bzfs_main/loggers.py get_default_log_formatter.DefaultLogFormatter.ljust_cols 9 0 0 4 0 100%
bzfs_main/loggers.py get_simple_logger 11 0 0 2 0 100%
bzfs_main/loggers.py get_simple_logger.LevelFormatter.format 3 0 0 0 0 100%
bzfs_main/loggers.py _add_trace_loglevel 1 0 0 0 0 100%
bzfs_main/loggers.py _get_syslog_address 8 0 0 2 0 100%
bzfs_main/loggers.py _remove_json_comments 11 0 0 8 0 100%
bzfs_main/loggers.py _get_dict_config_logger 23 0 0 8 0 100%
bzfs_main/loggers.py _get_dict_config_logger.substitute_log_config_vars 3 0 0 0 0 100%
bzfs_main/loggers.py _get_dict_config_logger.substitute_log_config_vars.substitute_fn 15 0 0 6 0 100%
bzfs_main/loggers.py validate_log_config_variable 5 0 0 4 0 100%
bzfs_main/loggers.py _validate_log_config_variable_name 8 0 0 6 0 100%
bzfs_main/loggers.py _validate_log_config_dict 9 0 0 10 0 100%
bzfs_main/loggers.py Tee.__init__ 1 0 0 0 0 100%
bzfs_main/loggers.py Tee.write 3 0 0 2 0 100%
bzfs_main/loggers.py Tee.flush 2 0 0 2 0 100%
bzfs_main/loggers.py Tee.fileno 1 0 0 0 0 100%
bzfs_main/loggers.py (no function) 34 0 2 0 0 100%
bzfs_main/parallel_batch_cmd.py run_ssh_cmd_batched 1 0 0 0 0 100%
bzfs_main/parallel_batch_cmd.py itr_ssh_cmd_batched 2 0 0 0 0 100%
bzfs_main/parallel_batch_cmd.py run_ssh_cmd_parallel 1 0 0 0 0 100%
bzfs_main/parallel_batch_cmd.py itr_ssh_cmd_parallel 1 0 0 0 0 100%
bzfs_main/parallel_batch_cmd.py zfs_list_snapshots_in_parallel 2 0 0 0 0 100%
bzfs_main/parallel_batch_cmd.py _max_batch_bytes 8 0 0 0 0 100%
bzfs_main/parallel_batch_cmd.py _get_max_command_line_bytes 6 0 0 2 0 100%
bzfs_main/parallel_batch_cmd.py (no function) 14 0 3 0 0 100%
bzfs_main/parallel_engine.py _build_dataset_tree 15 0 0 6 0 100%
bzfs_main/parallel_engine.py _build_dataset_tree.compact 4 0 0 4 0 100%
bzfs_main/parallel_engine.py _build_dataset_tree_and_find_roots 12 0 0 6 0 100%
bzfs_main/parallel_engine.py TreeNodeMutableAttributes.__init__ 2 0 0 0 0 100%
bzfs_main/parallel_engine.py TreeNode.__repr__ 2 0 0 0 0 100%
bzfs_main/parallel_engine.py _make_tree_node 1 0 0 0 0 100%
bzfs_main/parallel_engine.py process_datasets_in_parallel_and_fault_tolerant 93 0 0 32 0 100%
bzfs_main/parallel_engine.py process_datasets_in_parallel_and_fault_tolerant._process_dataset 6 0 0 0 0 100%
bzfs_main/parallel_engine.py process_datasets_in_parallel_and_fault_tolerant.submit_datasets 15 0 0 6 0 100%
bzfs_main/parallel_engine.py process_datasets_in_parallel_and_fault_tolerant.simple_enqueue_children 5 0 0 4 0 100%
bzfs_main/parallel_engine.py (no function) 28 0 0 0 0 100%
bzfs_main/parallel_iterator.py parallel_iterator 23 0 0 12 0 100%
bzfs_main/parallel_iterator.py run_in_parallel 5 0 0 0 0 100%
bzfs_main/parallel_iterator.py batch_cmd_iterator 18 0 0 8 0 100%
bzfs_main/parallel_iterator.py batch_cmd_iterator.flush 3 0 0 2 0 100%
bzfs_main/parallel_iterator.py get_max_command_line_bytes 5 0 0 0 0 100%
bzfs_main/parallel_iterator.py (no function) 16 0 0 0 0 100%
bzfs_main/period_anchors.py PeriodAnchors.parse 2 0 0 0 0 100%
bzfs_main/period_anchors.py round_datetime_up_to_duration_multiple 62 0 0 28 0 100%
bzfs_main/period_anchors.py round_datetime_up_to_duration_multiple.add_months 5 0 0 0 0 100%
bzfs_main/period_anchors.py round_datetime_up_to_duration_multiple.add_years 3 0 0 0 0 100%
bzfs_main/period_anchors.py (no function) 42 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter.__init__ 13 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter.start 4 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter.stop 7 0 0 4 0 100%
bzfs_main/progress_reporter.py ProgressReporter.pause 2 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter.reset 2 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter.enqueue_pv_log_file 3 0 0 2 0 100%
bzfs_main/progress_reporter.py ProgressReporter._run 13 0 0 2 0 100%
bzfs_main/progress_reporter.py ProgressReporter._run_internal 76 0 0 20 0 100%
bzfs_main/progress_reporter.py ProgressReporter._update_transfer_stat 4 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter._parse_pv_line 11 0 0 4 0 100%
bzfs_main/progress_reporter.py ProgressReporter._format_sent_bytes 2 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter._format_duration 4 0 0 0 0 100%
bzfs_main/progress_reporter.py ProgressReporter._get_update_intervals 6 0 0 0 0 100%
bzfs_main/progress_reporter.py _pv_size_to_bytes 11 0 0 4 0 100%
bzfs_main/progress_reporter.py count_num_bytes_transferred_by_zfs_send 18 2 0 10 0 93%
bzfs_main/progress_reporter.py count_num_bytes_transferred_by_zfs_send.parse_pv_line 5 0 0 2 0 100%
bzfs_main/progress_reporter.py (no function) 49 0 0 0 0 100%
bzfs_main/replication.py replicate_dataset 28 0 0 10 0 100%
bzfs_main/replication.py _list_and_filter_src_and_dst_snapshots 45 0 0 20 0 100%
bzfs_main/replication.py _rollback_dst_dataset_if_necessary 39 0 0 14 0 100%
bzfs_main/replication.py _rollback_dst_dataset_if_necessary.latest_common_snapshot 5 0 0 4 0 100%
bzfs_main/replication.py _replicate_dataset_fully 49 0 0 24 1 99%
bzfs_main/replication.py _replicate_dataset_incrementally 50 0 0 16 0 100%
bzfs_main/replication.py _replicate_dataset_incrementally.replication_candidates 21 0 0 6 0 100%
bzfs_main/replication.py _format_size 1 0 0 0 0 100%
bzfs_main/replication.py _prepare_zfs_send_receive 81 0 0 60 0 100%
bzfs_main/replication.py _run_zfs_send_receive 28 0 0 6 0 100%
bzfs_main/replication.py _clear_resumable_recv_state_if_necessary 13 0 0 10 0 100%
bzfs_main/replication.py _clear_resumable_recv_state_if_necessary.clear_resumable_recv_state 5 0 0 0 0 100%
bzfs_main/replication.py _recv_resume_token 23 0 0 12 0 100%
bzfs_main/replication.py _mbuffer_cmd 4 0 0 2 0 100%
bzfs_main/replication.py _compress_cmd 3 0 0 2 0 100%
bzfs_main/replication.py _decompress_cmd 3 0 0 2 0 100%
bzfs_main/replication.py _pv_cmd 24 0 0 16 0 100%
bzfs_main/replication.py _squote 1 0 0 0 0 100%
bzfs_main/replication.py _dquote 1 0 0 0 0 100%
bzfs_main/replication.py delete_snapshots 5 0 0 2 0 100%
bzfs_main/replication.py _delete_snapshot 10 0 0 0 0 100%
bzfs_main/replication.py _delete_snapshot_cmd 1 0 0 0 0 100%
bzfs_main/replication.py delete_bookmarks 6 0 0 2 0 100%
bzfs_main/replication.py delete_datasets 10 0 0 4 0 100%
bzfs_main/replication.py _create_zfs_filesystem 15 1 0 8 1 91%
bzfs_main/replication.py _create_zfs_bookmarks 5 0 0 2 0 100%
bzfs_main/replication.py _create_zfs_bookmarks.create_zfs_bookmark 9 0 0 2 0 100%
bzfs_main/replication.py _estimate_send_size 23 1 0 8 1 94%
bzfs_main/replication.py _zfs_set 5 0 0 2 0 100%
bzfs_main/replication.py _zfs_get 17 0 0 8 0 100%
bzfs_main/replication.py _incremental_send_steps_wrapper 2 0 0 0 0 100%
bzfs_main/replication.py _add_recv_property_options 37 2 0 22 0 97%
bzfs_main/replication.py _check_zfs_dataset_busy 15 0 0 6 0 100%
bzfs_main/replication.py _is_zfs_dataset_busy 4 0 0 0 0 100%
bzfs_main/replication.py (no function) 56 0 3 0 0 100%
bzfs_main/retry.py RetryPolicy.__init__ 9 0 0 0 0 100%
bzfs_main/retry.py RetryPolicy.__repr__ 1 0 0 0 0 100%
bzfs_main/retry.py run_with_retries 22 0 0 6 0 100%
bzfs_main/retry.py RetryableError.__init__ 2 0 0 0 0 100%
bzfs_main/retry.py (no function) 18 0 0 0 0 100%
bzfs_main/snapshot_cache.py SnapshotCache.__init__ 1 0 0 0 0 100%
bzfs_main/snapshot_cache.py SnapshotCache.get_snapshots_changed 1 0 0 0 0 100%
bzfs_main/snapshot_cache.py SnapshotCache.get_snapshots_changed2 5 0 0 0 0 100%
bzfs_main/snapshot_cache.py SnapshotCache.last_modified_cache_file 3 0 0 0 0 100%
bzfs_main/snapshot_cache.py SnapshotCache.invalidate_last_modified_cache_dataset 10 2 0 4 0 86%
bzfs_main/snapshot_cache.py SnapshotCache.update_last_modified_cache 28 2 0 14 0 95%
bzfs_main/snapshot_cache.py SnapshotCache.zfs_get_snapshots_changed 18 0 0 10 0 100%
bzfs_main/snapshot_cache.py SnapshotCache.zfs_get_snapshots_changed.try_zfs_list_command 6 2 0 0 0 67%
bzfs_main/snapshot_cache.py set_last_modification_time_safe 5 0 0 0 0 100%
bzfs_main/snapshot_cache.py set_last_modification_time 7 0 0 4 0 100%
bzfs_main/snapshot_cache.py (no function) 24 0 3 0 0 100%
bzfs_main/utils.py getenv_any 1 0 0 0 0 100%
bzfs_main/utils.py getenv_int 1 0 0 0 0 100%
bzfs_main/utils.py getenv_bool 1 0 0 0 0 100%
bzfs_main/utils.py cut 8 0 0 4 0 100%
bzfs_main/utils.py drain 1 0 0 0 0 100%
bzfs_main/utils.py shuffle_dict 3 0 0 0 0 100%
bzfs_main/utils.py sorted_dict 1 0 0 0 0 100%
bzfs_main/utils.py tail 4 0 0 2 0 100%
bzfs_main/utils.py replace_capturing_groups_with_non_capturing_groups 7 0 0 4 0 100%
bzfs_main/utils.py get_home_directory 1 0 0 0 0 100%
bzfs_main/utils.py human_readable_bytes 10 0 0 2 0 100%
bzfs_main/utils.py human_readable_duration 21 0 0 12 0 100%
bzfs_main/utils.py human_readable_float 8 0 0 2 0 100%
bzfs_main/utils.py percent 1 0 0 0 0 100%
bzfs_main/utils.py open_nofollow 21 0 0 10 0 100%
bzfs_main/utils.py find_match 15 0 1 14 0 100%
bzfs_main/utils.py is_descendant 1 0 0 0 0 100%
bzfs_main/utils.py has_duplicates 1 0 0 0 0 100%
bzfs_main/utils.py dry 1 0 0 0 0 100%
bzfs_main/utils.py relativize_dataset 1 0 0 0 0 100%
bzfs_main/utils.py dataset_paths 7 0 0 4 0 100%
bzfs_main/utils.py replace_prefix 2 0 0 0 0 100%
bzfs_main/utils.py replace_in_lines 2 0 0 2 0 100%
bzfs_main/utils.py append_if_absent 4 0 0 4 0 100%
bzfs_main/utils.py xappend 6 0 0 6 0 100%
bzfs_main/utils.py is_included 13 0 0 12 0 100%
bzfs_main/utils.py compile_regexes 17 0 0 14 0 100%
bzfs_main/utils.py list_formatter 3 0 0 0 0 100%
bzfs_main/utils.py list_formatter.CustomListFormatter.__str__ 2 0 0 0 0 100%
bzfs_main/utils.py pretty_print_formatter 3 0 0 0 0 100%
bzfs_main/utils.py pretty_print_formatter.PrettyPrintFormatter.__str__ 2 0 0 0 0 100%
bzfs_main/utils.py stderr_to_str 1 0 0 0 0 100%
bzfs_main/utils.py xprint 4 0 0 2 0 100%
bzfs_main/utils.py die 5 0 0 2 0 100%
bzfs_main/utils.py subprocess_run 21 0 0 8 0 100%
bzfs_main/utils.py terminate_process_subtree 9 0 0 4 0 100%
bzfs_main/utils.py _get_descendant_processes 13 0 0 2 0 100%
bzfs_main/utils.py _get_descendant_processes.recursive_append 3 0 0 2 0 100%
bzfs_main/utils.py pid_exists 11 0 0 6 0 100%
bzfs_main/utils.py nprefix 1 0 0 0 0 100%
bzfs_main/utils.py ninfix 1 0 0 0 0 100%
bzfs_main/utils.py nsuffix 1 0 0 0 0 100%
bzfs_main/utils.py format_dict 1 0 0 0 0 100%
bzfs_main/utils.py validate_dataset_name 2 0 0 2 0 100%
bzfs_main/utils.py validate_property_name 4 0 0 2 0 100%
bzfs_main/utils.py validate_is_not_a_symlink 2 0 0 2 0 100%
bzfs_main/utils.py parse_duration_to_milliseconds 10 0 0 4 0 100%
bzfs_main/utils.py unixtime_fromisoformat 1 0 0 0 0 100%
bzfs_main/utils.py isotime_from_unixtime 3 0 0 0 0 100%
bzfs_main/utils.py current_datetime 3 0 0 2 0 100%
bzfs_main/utils.py get_timezone 14 0 0 8 0 100%
bzfs_main/utils.py Interner.__init__ 1 0 0 0 0 100%
bzfs_main/utils.py Interner.intern 5 0 0 2 0 100%
bzfs_main/utils.py Interner.interned 1 0 0 0 0 100%
bzfs_main/utils.py Interner.__contains__ 1 0 0 0 0 100%
bzfs_main/utils.py SnapshotPeriods.__init__ 4 0 0 0 0 100%
bzfs_main/utils.py SnapshotPeriods.suffix_to_duration0 1 0 0 0 0 100%
bzfs_main/utils.py SnapshotPeriods.suffix_to_duration1 1 0 0 0 0 100%
bzfs_main/utils.py SnapshotPeriods._suffix_to_duration 6 0 0 2 0 100%
bzfs_main/utils.py SnapshotPeriods.label_milliseconds 4 0 0 0 0 100%
bzfs_main/utils.py Comparable.__lt__ 0 0 1 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.__init__ 2 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.clear 1 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.push 1 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.pop 1 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.peek 1 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.remove 6 0 0 2 0 100%
bzfs_main/utils.py SmallPriorityQueue.__len__ 1 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.__contains__ 3 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.__iter__ 1 0 0 0 0 100%
bzfs_main/utils.py SmallPriorityQueue.__repr__ 1 0 0 0 0 100%
bzfs_main/utils.py SortedInterner.__init__ 1 0 0 0 0 100%
bzfs_main/utils.py SortedInterner.interned 3 0 0 0 0 100%
bzfs_main/utils.py SortedInterner.__contains__ 1 0 0 0 0 100%
bzfs_main/utils.py binary_search 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.__init__ 3 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.value 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.value 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.get_and_set 4 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.compare_and_set 5 0 0 2 0 100%
bzfs_main/utils.py SynchronizedBool.__bool__ 1 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.__repr__ 1 0 0 0 0 100%
bzfs_main/utils.py SynchronizedBool.__str__ 1 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__init__ 3 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__getitem__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__setitem__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__delitem__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__contains__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__len__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__repr__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.__str__ 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.get 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.pop 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.clear 2 0 0 0 0 100%
bzfs_main/utils.py SynchronizedDict.items 2 0 0 0 0 100%
bzfs_main/utils.py InterruptibleSleep.__init__ 3 0 0 0 0 100%
bzfs_main/utils.py InterruptibleSleep.sleep 8 0 0 4 0 100%
bzfs_main/utils.py InterruptibleSleep.interrupt 4 0 0 2 0 100%
bzfs_main/utils.py _XFinally.__init__ 1 0 0 0 0 100%
bzfs_main/utils.py _XFinally.__exit__ 8 0 0 2 0 100%
bzfs_main/utils.py xfinally 1 0 0 0 0 100%
bzfs_main/utils.py (no function) 155 0 3 0 0 100%
Total   5751 19 30 1874 13 99%

No items found using the specified filter.