def __init__(self, src_path, force_name=None):
self.abs_src_root = Path2(src_path).resolve()<EOL>log.debug("<STR_LIT>", self.abs_src_root)<EOL>if not self.abs_src_root.is_dir():<EOL><INDENT>raise OSError("<STR_LIT>" % self.abs_src_root)<EOL><DEDENT>self.src_prefix_path = self.abs_src_root.parent<EOL>log.debug("<STR_LIT>", self.src_prefix_path)<EOL>self.backup_name = self.abs_src_root.name<EOL>if force_name is not None:<EOL><INDENT>self.backup_name = force_name<EOL><DEDENT>elif not self.backup_name:<EOL><INDENT>print("<STR_LIT>", file=sys.stderr)<EOL>print("<STR_LIT>", file=sys.stderr)<EOL>sys.exit(-<NUM_LIT:1>)<EOL><DEDENT>log.debug("<STR_LIT>", self.backup_name)<EOL>self.backup_datetime = datetime.datetime.now()<EOL>self.time_string = self.backup_datetime.strftime(phlb_config.sub_dir_formatter)<EOL>log.debug("<STR_LIT>", self.time_string)<EOL>self.abs_dst_root = Path2(phlb_config.backup_path, self.backup_name, self.time_string)<EOL>log.debug("<STR_LIT>", self.abs_dst_root)<EOL>self.log_filepath = Path2(phlb_config.backup_path, self.backup_name, self.time_string + "<STR_LIT>")<EOL>self.summary_filepath = Path2(phlb_config.backup_path, self.backup_name, self.time_string + "<STR_LIT>")<EOL>self.abs_src_filepath = None<EOL>self.sub_filepath = None<EOL>self.sub_path = None<EOL>self.filename = None<EOL>self.abs_dst_path = None<EOL>self.abs_dst_filepath = None<EOL>self.abs_dst_hash_filepath = None<EOL>
:param src_path: Path2() instance of the source directory
:param force_name: Force this name for the backup