def _backup_dir_item(self, dir_path, process_bar):
self.path_helper.set_src_filepath(dir_path)<EOL>if self.path_helper.abs_src_filepath is None:<EOL><INDENT>self.total_errored_items += <NUM_LIT:1><EOL>log.info("<STR_LIT>", dir_path)<EOL><DEDENT>if dir_path.is_symlink:<EOL><INDENT>self.summary("<STR_LIT>" % dir_path)<EOL>return<EOL><DEDENT>if dir_path.resolve_error is not None:<EOL><INDENT>self.summary("<STR_LIT>" % dir_path.resolve_error)<EOL>pprint_path(dir_path)<EOL>return<EOL><DEDENT>if dir_path.different_path:<EOL><INDENT>self.summary("<STR_LIT>")<EOL>pprint_path(dir_path)<EOL>return<EOL><DEDENT>if dir_path.is_dir:<EOL><INDENT>self.summary("<STR_LIT>" % dir_path)<EOL><DEDENT>elif dir_path.is_file:<EOL><INDENT>file_backup = FileBackup(dir_path, self.path_helper, self.backup_run)<EOL>old_backup_entry = self.fast_compare(dir_path)<EOL>if old_backup_entry is not None:<EOL><INDENT>file_backup.fast_deduplication_backup(old_backup_entry, process_bar)<EOL><DEDENT>else:<EOL><INDENT>file_backup.deduplication_backup(process_bar)<EOL><DEDENT>assert file_backup.fast_backup is not None, dir_path.path<EOL>assert file_backup.file_linked is not None, dir_path.path<EOL>file_size = dir_path.stat.st_size<EOL>if file_backup.file_linked:<EOL><INDENT>self.total_file_link_count += <NUM_LIT:1><EOL>self.total_stined_bytes += file_size<EOL><DEDENT>else:<EOL><INDENT>self.total_new_file_count += <NUM_LIT:1><EOL>self.total_new_bytes += file_size<EOL><DEDENT>if file_backup.fast_backup:<EOL><INDENT>self.total_fast_backup += <NUM_LIT:1><EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.summary("<STR_LIT>" % dir_path)<EOL>pprint_path(dir_path)<EOL><DEDENT>
Backup one dir item

:param dir_path: filesystem_walk.DirEntryPath() instance