|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import re,sys,os |
|
from optparse import OptionParser |
|
|
|
SectionHeaderPattern = re.compile(r'^\[(.*)\]\s*$') |
|
def read_ini(filename): |
|
''' |
|
Reads a moses.ini file and returns a dictionary mapping |
|
from section names to a list of lines contained in that section. |
|
''' |
|
AllSections = {} |
|
CurSection = AllSections.setdefault('',[]) |
|
for line in open(filename): |
|
line = line.strip() |
|
m = SectionHeaderPattern.match(line) |
|
if m: |
|
CurSection = AllSections.setdefault(m.group(1),[]) |
|
elif len(line): |
|
CurSection.append(line) |
|
pass |
|
pass |
|
return AllSections |
|
|
|
parser = OptionParser() |
|
parser.add_option("-s", "--system", dest = "system", |
|
help = "moses.ini file defining the system") |
|
parser.add_option("-w", "--weights", dest = "weight", |
|
help = "moses.ini file defining the system") |
|
|
|
opts,args = parser.parse_args() |
|
|
|
system = read_ini(opts.system) |
|
weight = read_ini(opts.weight) |
|
|
|
for s in system: |
|
if len(s) == 0 or s[0:6] == 'weight': continue |
|
print "[%s]"%s |
|
print "\n".join(system[s]) |
|
print |
|
pass |
|
|
|
if 'weight' in weight: |
|
print '[weight]' |
|
print "\n".join(weight['weight']) |
|
else: |
|
for s in weight: |
|
if s[0:6] != 'weight': continue |
|
print "[%s]"%s |
|
print "\n".join(system[s]) |
|
print |
|
pass |
|
pass |
|
|
|
|
|
|
|
|