From 74e0945c19d0d24c612753893cf2b8790143f2df Mon Sep 17 00:00:00 2001 From: dsc Date: Wed, 21 Dec 2011 14:38:08 -0800 Subject: [PATCH] find_haiku.py script --- README.md | 13 + bin/find_haiku.py | 270 +- crisishaiku/__init__.py | 6 + crisishaiku/cli/__init__.py | 3 + crisishaiku/cli/pathtype.py | 148 + data/fcic.pdf | Bin 5226592 -> 0 bytes data/fcic.txt |20116 --------------------------------------- data/fcic_final_report_full.pdf | Bin 5135967 -> 0 bytes data/fcir.pdf | Bin 0 -> 5226592 bytes data/fcir.txt |20116 +++++++++++++++++++++++++++++++++++++++ data/fcir_final_report_full.pdf | Bin 0 -> 5135967 bytes setup.py | 7 +- 12 files changed, 20490 insertions(+), 20189 deletions(-) create mode 100644 crisishaiku/cli/__init__.py create mode 100644 crisishaiku/cli/pathtype.py delete mode 100644 data/fcic.pdf delete mode 100644 data/fcic.txt delete mode 100644 data/fcic_final_report_full.pdf create mode 100644 data/fcir.pdf create mode 100644 data/fcir.txt create mode 100644 data/fcir_final_report_full.pdf diff --git a/README.md b/README.md index 01532de..b13379b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ # Financial Crisis Haiku Did you know that the Financial Crisis Inquiry Report increased the US Gross National Haiku Quotient by 1.8%, the largest single increase every affected by a congressional report? + + +## Features + +Pages: +- **Home**: Best Of / Staff Picks, Longest Chains; Popular, Mentioned on Twitter (etc) +- **Haiku Page**: unique URL per haiku (plus short URL); tags, context, favs, ratings, comments ("share your story"?), sharing (tweet this, share on fb, AddThis), mentions (on twitter/fb) +- **Report**: split out by-chapter; hilited haikus link to Haiku Page; hilited chains; per-line comments? +- **Search**: fulltext of haikus, report by chapter +- **Users**: Favorites, Rate, Comment, Tag; signup required -- connect via FB, Twitter, GitHub, Google +- **Download**: links to zips of the haikus, the report; source on GitHub + + diff --git a/bin/find_haiku.py b/bin/find_haiku.py index d9a7a13..1495746 100755 --- a/bin/find_haiku.py +++ b/bin/find_haiku.py @@ -1,72 +1,147 @@ -import codecs, msgpack, cjson, re, sys -from path import path +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" Processes the Financial Crisis Inquiry Report to find bittersweet haikus. +""" + +__author__ = 'David Schoonover ' +__copyright__ = 'Copyright (c) 2011 David Schoonover. All rights reserved.' +__homepage__ = 'http://crisishaiku.com/' +from crisishaiku import __version__, VERSION + +import sys, re, argparse, codecs + from hyphen import Hyphenator +from path import path +import anyjson as json +# json.force_implementation('jsonlib2') + +import crisishaiku + + +# Constants Infinity = float('inf') STRIP_PAT = re.compile(r'[^a-zA-Z\'\-]+') -VAR = path('var') -STATEPATH = VAR/'state.json' -HAIKUSPATH = VAR/'haikus.txt' +VAR_DIR = path('var') +STATE_FILE = 'state.json' +SYLLABLE_FILE = 'syllables.json' +REPORT_FILE = path('data/fcir.txt') -if not VAR.exists(): VAR.makedirs() +OUT_DIR = VAR_DIR +OUTFILE_OVERLAP = 'haikus.txt' +OUTFILE_NO_OVERLAP = 'haikus-no_overlap.txt' +OUTFILE_CHAINS = 'haikus-longest_chains.txt' -DATA = path('data') -BOOK_DATAPATH = DATA/'fcic.txt' -SYLLABLE_DATAPATH = DATA/'syllables.msgpack' -SYLLABLE_CACHE = {} -if SYLLABLE_DATAPATH.exists(): - with SYLLABLE_DATAPATH.open('rb') as f: - SYLLABLE_CACHE = msgpack.load(f) or {} -def saveCache(): - with SYLLABLE_DATAPATH.open('wb') as f: - msgpack.dump(SYLLABLE_CACHE, f) +# Haiku Finder script -class FinancialCrisis(object): - verbose = False - noOverlap = False # whehter haikus can overlap +class HaikuFinder(object): + __doc__ - start_line = 0 - limit = Infinity - haikus = [] # Results (haiku, line_no) - words = None # Cache previous previous 23 pairs: (word, syllables) + # Class vars + hyphenator = Hyphenator('en_US') + cache = {} # Syllable cache - # Counters + + # Setup + start_line = 0 + limit = Infinity + overlap = True + verbose = False + + out_dir = OUT_DIR + var_dir = VAR_DIR + cachefile = VAR_DIR/SYLLABLE_FILE + statefile = VAR_DIR/STATE_FILE + reportfile = REPORT_FILE + + + # State seen_words = 0 seen_lines = 0 + haikus = [] # Results (haiku, line_no) + words = [] # Cache previous previous 23 pairs: (word, syllables) - def __init__(self, start_line=0, limit=Infinity, book=BOOK_DATAPATH, noOverlap=False, verbose=False): - self.start_line = start_line - self.limit = limit + + def __init__(self, out_dir=OUT_DIR, start_line=0, limit=Infinity, overlap=True, verbose=False, var_dir=VAR_DIR, reportfile=REPORT_FILE): + self.start_line = start_line + self.limit = limit + self.overlap = overlap + self.verbose = verbose + + self.var_dir = path(var_dir) + if not self.var_dir.exists(): self.var_dir.makedirs() + self.out_dir = path(out_dir) + if not self.out_dir.exists(): self.out_dir.makedirs() + + if outfile is None: + outfile = OUTFILE_OVERLAP if self.overlap else OUTFILE_NO_OVERLAP + self.outfile = self.out_dir/outfile + else: + self.outfile = path(outfile) + + self.reportfile = reportfile + self.cachefile = self.var_dir/SYLLABLE_FILE + self.statefile = self.var_dir/STATE_FILE + self.seen_words = 0 self.seen_lines = 0 - self.noOverlap = noOverlap - self.verbose = verbose - self.book = str(book) - self.hyphenator = Hyphenator('en_US') - self.words = [] self.haikus = [] + self.words = [] + + self.loadCache() + + + + def loadCache(self): + "Load the syllable cache from disk." + if self.cachefile.exists(): + with cachefile.open('rb') as f: + cache = json.load(f) or {} + if cache and not self.__class__.cache: + self.__class__.cache = cache + else: + self.cache = cache + return self + + def saveCache(self): + "Save the syllable cache to disk." + with self.cachefile.open('wb') as f: + json.dump(self.cache, f) + return self + + def save(self, statefile=None): + "Save the search state." + self.saveCache() + if statefile is None: statefile = self.statefile + FIELDS = 'words haikus seen_lines seen_words'.split() + state = { k:v for k, v in self.__dict__.iteritems() if k in FIELDS } + with codecs.open(statefile, 'w', 'utf-8') as f: + json.dump(state, f) + return self def numSyllables(self, word): + "Calculate number of syllables in `word`." word = unicode( STRIP_PAT.subn(u'', word)[0] ).strip() # print '[WORD] %s' % word if not word or len(word) >= 100: return 0 - if word not in SYLLABLE_CACHE: # XXX: zeros? + if word not in self.cache: # XXX: zeros? try: - SYLLABLE_CACHE[word] = max(len(self.hyphenator.syllables(word)), 1) + self.cache[word] = max(len(self.hyphenator.syllables(word)), 1) except: print word raise - return SYLLABLE_CACHE[word] + return self.cache[word] def findStanza(self, pairs, goal=7): + "Attempt to find a stanza of `goal` syllables in the given list of `(word, syllables)` pairs." stanza = [] size = 0 for word, syllables in pairs: @@ -79,6 +154,7 @@ class FinancialCrisis(object): return [] def offer(self, word): + "Process the next word." self.seen_words += 1 syllables = self.numSyllables(word) @@ -112,17 +188,25 @@ class FinancialCrisis(object): self.haikus.append( (haiku, self.seen_lines, self.seen_words-offset, self.seen_words) ) - if self.noOverlap: + if not self.overlap: self.words = [] return haiku - def process(self): - print 'Starting Haiku processing on line %s...' % self.seen_lines - with codecs.open(self.book, 'rU', 'utf-8') as f: + + def run(self, reportfile=None, start_line=None, limit=None): + "Process the report." + if reportfile is None: reportfile = self.reportfile + if start_line is None: start_line = self.start_line + if limit is None: limit = self.limit + + print 'Processing %s, starting on line %s...' % (reportfile, start_line) + + start = time.time() + with codecs.open(reportfile, 'rU', 'utf-8') as f: for line_no, line in enumerate(f): - if line_no < self.start_line: continue - if line_no >= self.limit: break + if line_no < start_line: continue + if line_no >= limit: break self.seen_lines += 1 for word in line.split(): @@ -131,32 +215,23 @@ class FinancialCrisis(object): if False and self.seen_lines % 1000 == 0: print '-' * 20 - print '\nFound %s haiku so far (line %s)...' % (len(self.haikus), self.seen_lines) + print '\nFound %s haiku in %s lines (%s words) so far, taking %ss...' % (len(self.haikus), self.seen_lines, self.seen_words, time.time()-start) self.printHaiku(self.haikus[-1]) - print 'Done!' + + print 'Done! Found %s haiku in %s lines (%s words), taking %ss' % (len(self.haikus), self.seen_lines, self.seen_words, time.time()-start) + return self - def printHaiku(self, info, outfile=sys.stdout, header=True, wordlocs=False): - haiku, linenum, start_words, end_words = info - if header: - wordloc = '' - if wordlocs and start_words and end_words: - wordloc = ' (words %s to %s)' % (start_words, end_words) - outfile.write('On line %s%s:\n' % (linenum, wordloc)) - lines = [ ' '.join(stanza) for stanza in haiku ] - # lines = [ ' '.join( '%s[%s]' % (word, self.numSyllables(word)) for word in stanza ) for stanza in haiku ] - for line in lines: - outfile.write(u' {line: ^80}'.format(line=line).rstrip()+'\n') - outfile.write('\n') - - def saveHaikus(self, outpath=HAIKUSPATH): - print 'Saving %s haiku to %s...' % (len(self.haikus), outpath) + def saveHaikus(self, outfile=None, dump_chains=False): + "Write all haikus to `outfile`." + if outfile is None: outfile = self.outfile + print 'Saving %s haiku to %s...' % (len(self.haikus), outfile) last_wc = 0 chains = [] chain = [] - with codecs.open(outpath, 'w', 'utf-8') as out: + with codecs.open(outfile, 'w', 'utf-8') as out: out.write('Found %s haiku...\n\n' % len(self.haikus)) for info in self.haikus: haiku, linenum, start_words, end_words = info @@ -172,31 +247,84 @@ class FinancialCrisis(object): last_wc = end_words self.printHaiku(info, header=header, outfile=out) - print '\nLongest Chains of Haikus:' - chains = sorted([ (len(chain), chain) for chain in chains ], reverse=True) - for (length, chain) in chains[:10]: - print ('- ' * 40) + '\n' - for haiku in chain: - self.printHaiku((haiku, 0, 0, 0), header=False) + if dump_chains: + print '\nLongest Chains of Haikus:' + chains = sorted([ (len(chain), chain) for chain in chains ], reverse=True) + for (length, chain) in chains[:10]: + print ('- ' * 40) + '\n' + for haiku in chain: + self.printHaiku((haiku, 0, 0, 0), header=False) print '- ' * 40 print '\nDone!' + return self + + def printHaiku(self, info, outfile=sys.stdout, header=True, wordlocs=False): + "Print haiku and metadata to `outfile`." + haiku, linenum, start_words, end_words = info + if header: + wordloc = '' + if wordlocs and start_words and end_words: + wordloc = ' (words %s to %s)' % (start_words, end_words) + outfile.write('On line %s%s:\n' % (linenum, wordloc)) + lines = [ ' '.join(stanza) for stanza in haiku ] + # lines = [ ' '.join( '%s[%s]' % (word, self.numSyllables(word)) for word in stanza ) for stanza in haiku ] + for line in lines: + outfile.write(u' {line: ^80}'.format(line=line).rstrip()+'\n') + outfile.write('\n') + return self def printHaikus(self): + "Print all haikus to stdout." print '-' * 20 print '\nFound %s haiku so far (line %s)...' % (len(self.haikus), self.seen_lines) for info in self.haikus: self.printHaiku(info) print + return self - def save(self, statepath=STATEPATH): - saveCache() - FIELDS = 'words haikus seen_lines seen_words'.split() - state = { k:v for k, v in self.__dict__.iteritems() if k in FIELDS } - with codecs.open(statepath, 'w', 'utf-8') as f: - f.write(cjson.encode(state)) + # Script Arguments + + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--version', action='version', version=__version__) + parser.add_argument("-v", "--verbose", action="store_true", default=verbose, + help="Verbose logging.") + + parser.add_argument("-s", "--start-line", type=int, default=start_line, + help="Line in FCIR to start haiku processing. [default: %(default)s]") + parser.add_argument("-l", "--limit", type=int, default=limit, + help="Stop processing after finding this many haiku.") + parser.add_argument("-o", "--overlap", action="store_true", dest="overlap", default=overlap, + help="Allow haiku text to overlap in FCIR. [Default: %(default)s]") + parser.add_argument("-O", "--no-overlap", action="store_false", dest="overlap", + help="Do not allow haiku text to overlap in FCIR. [Default: %(default)s]") + + parser.add_argument("-d", "--var-dir", type=path, default=var_dir, + help="Working directory for state files. [default: %(default)s]") + parser.add_argument("--report-file", type=path, dest="reportfile", default=reportfile, + help="Path to Financial Crisis Inquiry Report plaintext file. [default: %(default)s]") + + parser.add_argument("out-dir", nargs='?', type=path, default=out_dir, + help="Directory to write result files. [default: %(default)s]") + + + @classmethod + def parse(cls, *args, **overrides): + parsed = cls.parser.parse_args(args or None) + values = dict(**parsed.__dict__) + values.update(overrides) + return values + + @classmethod + def main(cls, *args, **overrides): + values = cls.parse(*args, **overrides) + app = cls(**values) + return app.run() or 0 + +if __name__ == '__main__': + sys.exit(HaikuFinder.main()) diff --git a/crisishaiku/__init__.py b/crisishaiku/__init__.py index e69de29..66cec86 100644 --- a/crisishaiku/__init__.py +++ b/crisishaiku/__init__.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +__version__ = '0.0.1' +VERSION = tuple(map(int, __version__.split('.'))) + diff --git a/crisishaiku/cli/__init__.py b/crisishaiku/cli/__init__.py new file mode 100644 index 0000000..3a1213c --- /dev/null +++ b/crisishaiku/cli/__init__.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + diff --git a/crisishaiku/cli/pathtype.py b/crisishaiku/cli/pathtype.py new file mode 100644 index 0000000..9ff03e5 --- /dev/null +++ b/crisishaiku/cli/pathtype.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import sys, codecs, locale +import argparse +from path import path + + +__all__ = ('FileType', 'PathType', 'DirectoryType', 'PathTypeError',) + + +class PathTypeError(TypeError): + """ TypeError that provides `path` and `type` attributes tracking expectations. """ + + def __init__(self, message, filepath, pathtype): + super(PathTypeError, self).__init__(message, filepath, pathtype) + self.message = message + self.path = filepath + self.type = pathtype + + + +class FileType(argparse.FileType): + """Factory for creating file object types + + Instances of FileType are typically passed as type= arguments to the + ArgumentParser add_argument() method. + + Keyword Arguments: + - mode='r' -- A string indicating how the file is to be opened. Accepts the + same values as the builtin open() function. + - encoding=None -- The file's encoding. None is treated as per the `codecs` + module (as bytes). + - errors='strict' -- Error handling as defined in the `codecs` module: + 'strict', 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' + - bufsize=-1 -- The file's desired buffer size. Accepts the same values as + the builtin open() function. + """ + + def __init__(self, mode='r', encoding=None, errors='strict', bufsize=-1): + self._mode = mode + self._encoding = encoding + self._errors = errors + self._bufsize = bufsize + + def __call__(self, f): + mode = self._mode + enc = self._encoding + + # the special path "-" means sys.std{in,out} + if f == '-': + if 'r' in mode: + f = '/dev/stdin' + enc = enc or sys.stdin.encoding or locale.getpreferredencoding().lower() + elif 'w' in mode: + f = '/dev/stdout' + enc = enc or sys.stdout.encoding or locale.getpreferredencoding().lower() + else: + msg = _('argument "-" with mode %r') % mode + raise ValueError(msg) + + # all other paths are used as ... paths + try: + return codecs.open( f, mode=mode, encoding=enc or None, + errors=self._errors, buffering=self._bufsize ) + except IOError as e: + message = _("can't open '%s': %s") + raise ArgumentTypeError(message % (f, e)) + + def __repr__(self): + args = self._mode, self._encoding, self._errors, self._bufsize + args_str = ', '.join(repr(arg) for arg in args if arg != -1) + return '%s(%s)' % (type(self).__name__, args_str) + + + +class PathType(object): + """ Factory for validating a path and wrapping it as a `path`. + + Keyword Arguments: + - base=u'' -- Base path to resolve the passed path from. + - mustExist=False -- Validate directory exists, raising OSError otherwise. + - expand=True -- Expand the path. + - abspath=False -- Resolve the absolute path. + """ + base = u'' + mustExist = True + expand = True + abspath = False + + + def __init__(self, base=u'', mustExist=True, expand=True, abspath=False): + self.base = path(base) + self.mustExist = mustExist + self.expand = expand + self.abspath = abspath + + + def checkExists(self, p): + if self.mustExist and not p.exists(): + raise OSError(2, 'No such file or directory', p) + return p + + def __call__(self, p): + p = self.base/p + if self.expand: + p = p.expand() + if self.abspath(): + p = p.abspath() + return self.checkExists(p) + + + def __repr__(self): + return "%s(%s)" % ( type(self).__name__, + ', '.join( '%s=%r' % (k,v) for k,v in self.__dict__.items() if not k[0] == '_' ) ) + + + +class DirectoryType(PathType): + """ Factory for validating a directory path and wrapping it as a `path`. + """ + mkdirs = True + + + def __init__(self, base=u'', mkdirs=True, mustExist=False, expand=True, abspath=False): + """ Factory for validating a directory path and wrapping it as a `path`. If a given + path is not a directory, TypeError is raised. + + Keyword Arguments: + - base=u'' -- Base path to resolve the passed path from. + - mkdirs=True -- If directory does not exist, make it and all intermediary + directories. + - mustExist=False -- Validate directory exists, raising OSError otherwise. + - expand=True -- Expand the path. + - abspath=False -- Resolve the absolute path. + """ + super(DirectoryType, self).__init__(base, mustExist, expand, abspath) + self.mkdirs = mkdirs + + + def checkExists(self, p): + if self.mkdirs and not p.exists(): + p.makedirs() + if p.exists() and not p.isdir(): + raise PathTypeError('Path is not a directory', p, self) + return super(PathType, self).checkExists(p) + + + diff --git a/data/fcic.pdf b/data/fcic.pdf deleted file mode 100644 index 4968735d73a43dd1aeb3b960e6019216aae12916..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5226592 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 z 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