Fixed a re matching problem for sites (OnGame, Carbon) which include char after the newline in re_SplitHands
This commit is contained in:
parent
d517606a59
commit
6ce42df734
|
@ -44,6 +44,7 @@ class SplitHandHistory:
|
|||
self.archive = archive
|
||||
self.re_SplitHands = None
|
||||
self.line_delimiter = None
|
||||
self.line_addendum = None
|
||||
self.filedone = False
|
||||
|
||||
#Acquire re_SplitHands for this hh
|
||||
|
@ -52,15 +53,20 @@ class SplitHandHistory:
|
|||
mod = __import__(filter)
|
||||
obj = getattr(mod, filter_name, None)
|
||||
self.re_SplitHands = obj.re_SplitHands
|
||||
|
||||
#Determine line delimiter type if any
|
||||
if self.re_SplitHands.match('\n\n'):
|
||||
self.line_delimiter = '\n\n'
|
||||
elif self.re_SplitHands.match('\n\n\n'):
|
||||
if self.re_SplitHands.match('\n\n\n'):
|
||||
self.line_delimiter = '\n\n\n'
|
||||
else:
|
||||
pass
|
||||
|
||||
#Open the gargantuan file
|
||||
|
||||
#Add new line addendum for sites which match SplitHand to next line as well
|
||||
if site == 'OnGame':
|
||||
self.line_addendum = '*'
|
||||
if site == 'Carbon':
|
||||
self.line_addendum = '<game'
|
||||
|
||||
#Open the gargantuan file
|
||||
try:
|
||||
infile = file(self.in_path, 'r')
|
||||
except:
|
||||
|
@ -72,6 +78,7 @@ class SplitHandHistory:
|
|||
print 'File not found'
|
||||
sys.exit(2)
|
||||
|
||||
#Split with do_hands_per_file if archive and paragraphs if a regular hh
|
||||
if self.archive:
|
||||
nn = 0
|
||||
while True:
|
||||
|
@ -86,7 +93,7 @@ class SplitHandHistory:
|
|||
filenum += 1
|
||||
outfile = self.new_file(filenum)
|
||||
handnum = 0
|
||||
for hand in self.paragraphs(infile):
|
||||
for hand in self.paragraphs(infile, None, self.line_addendum):
|
||||
outfile.write(hand)
|
||||
if self.line_delimiter:
|
||||
outfile.write(self.line_delimiter)
|
||||
|
@ -125,15 +132,15 @@ class SplitHandHistory:
|
|||
return None
|
||||
|
||||
#Non-Archive Hand Splitter
|
||||
def paragraphs(self, file, separator=None):
|
||||
def paragraphs(self, file, separator=None, addendum=None):
|
||||
if not callable(separator) and self.line_delimiter:
|
||||
def separator(line): return line == '\n'
|
||||
else:
|
||||
def separator(sline): return self.re_SplitHands.search(line)
|
||||
def separator(line): return self.re_SplitHands.search(line)
|
||||
file_str = StringIO()
|
||||
print file_str.getvalue()
|
||||
for line in file:
|
||||
if separator(line):
|
||||
if separator(line+addendum):
|
||||
if file_str.getvalue():
|
||||
if not self.line_delimiter:
|
||||
file_str.write(line)
|
||||
|
@ -202,8 +209,6 @@ def main(argv=None):
|
|||
(options, argv) = parser.parse_args(args = argv)
|
||||
|
||||
config = Configuration.Config(file = "HUD_config.test.xml")
|
||||
|
||||
print options.archive
|
||||
|
||||
if not options.filename:
|
||||
pass
|
||||
|
|
Loading…
Reference in New Issue
Block a user