From owner-svn-src-head@FreeBSD.ORG Thu Apr 2 22:42:25 2015 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 27096FE; Thu, 2 Apr 2015 22:42:25 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0870913B; Thu, 2 Apr 2015 22:42:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t32MgOXf040345; Thu, 2 Apr 2015 22:42:24 GMT (envelope-from eadler@FreeBSD.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t32MgOib040343; Thu, 2 Apr 2015 22:42:24 GMT (envelope-from eadler@FreeBSD.org) Message-Id: <201504022242.t32MgOib040343@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: eadler set sender to eadler@FreeBSD.org using -f From: Eitan Adler Date: Thu, 2 Apr 2015 22:42:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r281007 - head/games/fortune/tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Apr 2015 22:42:25 -0000 Author: eadler Date: Thu Apr 2 22:42:23 2015 New Revision: 281007 URL: https://svnweb.freebsd.org/changeset/base/281007 Log: fortune/tools/do_uniq.py slight imporvements to do_uniq.py: - use with open() - don't depend on sys.argv directly - fix style Modified: head/games/fortune/tools/do_uniq.py Modified: head/games/fortune/tools/do_uniq.py ============================================================================== --- head/games/fortune/tools/do_uniq.py Thu Apr 2 21:55:03 2015 (r281006) +++ head/games/fortune/tools/do_uniq.py Thu Apr 2 22:42:23 2015 (r281007) @@ -4,7 +4,8 @@ # # an aggressive little script for trimming duplicate cookies -import re, sys +import argparse +import re wordlist = [ 'hadnot', @@ -15,6 +16,7 @@ wordlist = [ 'a', 'd', 'i', 'm', 's', ] + def hash(fortune): f = fortune f = f.lower() @@ -27,37 +29,40 @@ def hash(fortune): # f = f[-30:] return f + def edit(datfile): dups = {} fortunes = [] fortune = "" - for line in file(datfile): - if line == "%\n": - key = hash(fortune) - if key not in dups: - dups[key] = [] - dups[key].append(fortune) - fortunes.append(fortune) - fortune = "" - else: - fortune += line + with open(datfile, "r") as datfiledf: + for line in datfiledf: + if line == "%\n": + key = hash(fortune) + if key not in dups: + dups[key] = [] + dups[key].append(fortune) + fortunes.append(fortune) + fortune = "" + else: + fortune += line for key in list(dups.keys()): if len(dups[key]) == 1: del dups[key] - o = file(datfile + '~', "w") - for fortune in fortunes: - key = hash(fortune) - if key in dups: - print('\n' * 50) - for f in dups[key]: - if f != fortune: - print(f, '%') - print(fortune, '%') - if input("Remove last fortune? ") == 'y': - del dups[key] - continue - o.write(fortune + "%\n") - o.close() + with open(datfile + "~", "w") as o: + for fortune in fortunes: + key = hash(fortune) + if key in dups: + print('\n' * 50) + for f in dups[key]: + if f != fortune: + print(f, '%') + print(fortune, '%') + if input("Remove last fortune? ") == 'y': + del dups[key] + continue + o.write(fortune + "%\n") -assert len(sys.argv) == 2 -edit(sys.argv[1]) +parser = argparse.ArgumentParser(description="trimming duplicate cookies") +parser.add_argument("filename", type=str, nargs=1) +args = parser.parse_args() +edit(args.filename[0])