TeXray-backup / misc /prepare-hwp5-xsl-fixtures.py
seawolf2357's picture
Add misc
b922192 verified
# -*- coding: utf-8 -*-
from __future__ import with_statement
import os.path
import logging
import sys
logger = logging.getLogger('hwp5.xsltests')
def find_hwp5files(dir):
import glob
return glob.glob(os.path.join(dir, '*.hwp'))
def main():
doc = ''' convert fixture hwp5 files into *.xml
Usage:
prepare [--fixtures-dir=<dir>] [--out-dir=<dir>]
prepare --help
Options:
-h --help Show this screen
--fixtures-dir=<dir> Fixture directory
--out-dir=<dir> Output directory
'''
from docopt import docopt
from hwp5.xmlmodel import Hwp5File
args = docopt(doc, version='0.0')
logging.getLogger().addHandler(logging.StreamHandler())
logging.getLogger('hwp5.xsltests').setLevel(logging.INFO)
if args['--fixtures-dir']:
fixture_dir = args['--fixtures-dir']
else:
import hwp5
hwp5_pkgdir = os.path.dirname(hwp5.__file__)
fixture_dir = os.path.join(hwp5_pkgdir, 'tests', 'fixtures')
out_dir = args['--out-dir']
for path in find_hwp5files(fixture_dir):
name = os.path.basename(path)
rootname = os.path.splitext(name)[0]
out_path = rootname + '.xml'
if out_dir is not None:
if not os.path.exists(out_dir):
os.makedirs(out_dir)
out_path = os.path.join(out_dir, out_path)
logger.info('%s', out_path)
opts = {}
try:
hwp5file = Hwp5File(path)
with file(out_path, 'w') as f:
hwp5file.xmlevents(**opts).dump(f)
except Exception:
e = sys.exc_info()[1]
logger.exception(e)
if __name__ == '__main__':
sys.exit(main())