@log_calls<EOL><INDENT>def delete_removed_files(self, source, target):<DEDENT>
message("<STR_LIT>", source, target)<EOL>if os.path.isdir(source):<EOL><INDENT>unecessary = []<EOL>basepath = S3URL(target).path<EOL>for f in [f for f in self.s3walk(target) if not f['<STR_LIT>']]:<EOL><INDENT>local_name = os.path.join(source, os.path.relpath(S3URL(f['<STR_LIT:name>']).path, basepath))<EOL>if not os.path.isfile(local_name):<EOL><INDENT>message("<STR_LIT>", local_name)<EOL>unecessary.append(f['<STR_LIT:name>'])<EOL><DEDENT><DEDENT>if len(unecessary) > <NUM_LIT:0>:<EOL><INDENT>pool = ThreadPool(ThreadUtil, self.opt)<EOL>for del_file in unecessary:<EOL><INDENT>pool.delete(del_file)<EOL><DEDENT>pool.join()<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise Failure('<STR_LIT>' % target)<EOL><DEDENT>
Remove remote files that are not present in the local source.
           (Obsolete) It is used for old sync command now.