def test_b(self): sys.argv.append('-b') args = cmdline.options() self.assertTrue(args.break_all) sys.argv = [sys.argv[0]] sys.argv.append('+b') args = cmdline.options() self.assertFalse(args.break_all)
def process_cmdline(line: str) -> args: """ parse '%!'-line from input file """ if line.startswith('%!'): line = line[2:].strip() else: line = line.strip() params = line.split() sys.argv.extend(params) cmdline.options()
def test_dstaffsep(self): sys.argv.append('-d 2.3cm') args = cmdline.options() self.assertTrue(args['dstaffsep'], '2.3cm') sys.argv = [sys.argv[0]] sys.argv.append('-d hello') args = cmdline.options() self.assertTrue(args['dstaffsep'], 'hello')
def __init__(self): self.pickler = pickler('/config') self.commandline = cmdline.options() self.debug = False self.good = False if self.commandline: """ Case when command line is provided """ self.login, self.password, self.ip, self.port, self.rqdelay = self.commandline if self.debug: print('Config: Command-line config.') self.save(self.commandline) self.good = True else: """ No cmdline, look for saved data """ if self.debug: print('Config: Using saved configuration.') print(self.pickler, dir(self.pickler)) config_data = self.pickler.yukon if (not config_data) or (len(config_data) != 5): if self.debug: print('Saved config is bad.') try: (self.login, self.password, self.ip, self.port, self.rqdelay) = config_data self.good = True except: if self.debug: print('Bad config file. (again)') pass
def test_fn(self): sys.argv.append('file1') sys.argv.append('file2') sys.argv.append('file3') args = cmdline.options() self.assertIsInstance(args.filenames, list) self.assertTrue('file2' in args.filenames[0]) self.assertTrue('file0' not in args.filenames[0]) args.filenames = args.filenames[0] print(args.filenames) args.filenames.append('file0') self.assertTrue('file0' in args.filenames)
def test_no_args(self): arg = cmdline.options() # Boolean self.assertFalse(arg['one_per_page']) self.assertEqual(arg['maxshrink'], 0.0) self.assertFalse(arg['break_all']) self.assertEqual(arg['bars_per_line'], 0) self.assertFalse(arg['select_composer']) self.assertFalse(arg['epsf']) self.assertFalse(arg['help_me']) self.assertFalse(arg['make_index']) self.assertFalse(arg['landscape']) self.assertFalse(arg['notab']) self.assertFalse(arg['noauthor']) self.assertFalse(arg['write_historical']) self.assertFalse(arg['pagenumbers']) # self.assertFalse(arg['do_outfile']) # self.assertTrue(arg['outf']) self.assertFalse(arg['select_rhythm']) self.assertFalse(arg['select_source']) self.assertFalse(arg['select_title']) self.assertFalse(arg['transposegchords']) self.assertFalse(arg['include_xrefs']) # Float self.assertEqual(arg['scale'], 0.70) self.assertEqual(arg['strictness'], 0.0) # Int self.assertEqual(arg['sel_arg'], 0) self.assertEqual(arg['tabsize'], 14) # String self.assertEqual(arg['dstaffsep'], '0.0cm') self.assertEqual(arg['leftmargin'], '0.0cm') self.assertEqual(arg['styf'], 'fonts.fmt') self.assertEqual(arg['glue'], 'fill') self.assertEqual(arg['frfont'], 'frFrancisque') self.assertEqual(arg['itfont'], 'itTimes') self.assertEqual(arg['defont'], 'deCourier') self.assertEqual(arg['transposition'], '') self.assertEqual(arg['voices'], '') self.assertEqual(arg['staffwidth'], '') self.assertEqual(arg['filename'], '') self.assertEqual(arg['filenames'], '') # Special self.assertIsNone(arg['nbars']) self.assertIsNone(arg['withxrefs']) # Count Check self.assertEqual(len(arg), 41)
def test_cmdline_defaults(self): args = cmdline.options() self.assertFalse(args.one_per_page) self.assertEqual(args.maxshrink, 0.0) self.assertFalse(args.break_all) self.assertEqual(args.bars_per_line, 0) self.assertFalse(args.select_composer) self.assertFalse(args.continue_all) self.assertEqual(args.dstaffsep, '0.0cm') self.assertEqual(args.styd, '') self.assertEqual(args.sel_arg, 0) self.assertFalse(args.epsf) self.assertEqual(args.filename, '') self.assertEqual(args.styf, 'fonts.fmt') self.assertEqual(args.gmode, 'fill') self.assertFalse(args.help_me) self.assertFalse(args.make_index) self.assertIsNone(args.nbars) self.assertFalse(args.landscape) self.assertEqual(args.left_margin, '0.0cm') self.assertFalse(args.noauthor) self.assertFalse(args.notab) self.assertEqual(args.frfont, 'frFrancisque') self.assertEqual(args.itfont, 'itTimes') self.assertEqual(args.defont, 'deCourier') self.assertFalse(args.write_historical) self.assertFalse(args.pagenumbers) self.assertEqual(args.outfile, 'out.ps') self.assertIsNone(args.pretty) self.assertEqual(args.paper_format, 'letter') self.assertFalse(args.select_rhythm) self.assertFalse(args.select_source) self.assertEqual(args.select_field0, 1) self.assertEqual(args.transpose, '') self.assertEqual(args.tabsize, 14) self.assertFalse(args.transposegchords) self.assertEqual(args.voices, '') self.assertEqual(args.staff_width, '') self.assertFalse(args.include_xrefs) self.assertEqual(args.strictness, 0.0) self.assertEqual(args.filenames, list())
def test_bars_per_iine_1(self): sys.argv.append('-B 4') args = cmdline.options() self.assertEqual(args['bars_per_line'], 4)
def test_f(self): sys.argv.append('-f') sys.argv.append('file0') args = cmdline.options() self.assertEqual('file0', args.filename)
def test_select_composer(self): sys.argv.append('-C') args = cmdline.options() self.assertTrue(args['select_composer'])
def test_bars_per_line_0(self): sys.argv.append('+B') args = cmdline.options() self.assertEqual(args['bars_per_line'], 0)
def test_o(self): sys.argv.append('-o') sys.argv.append('oh.ps') args = cmdline.options() self.assertEqual(args.outfile, 'oh.ps')
def test_break_all_0(self): sys.argv.append('+b') args = cmdline.options() self.assertFalse(args['break_all'])
def test_break_all_1(self): sys.argv.append('-b') args = cmdline.options() self.assertTrue(args['break_all'])
def main(): args = cmdline.options() # cleanup on premature termination signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) # help printout if args.help_me == 1: cmdline.write_help() exit(0) log.debug(f"do_output: {common.do_output}") if common.do_output: log.info(f"This is abctab2ps, version {VERSION}.{REVISION}") # consolidate the filenames if args.filename: args.filenames.append(args.filename) log.debug(args.filenames) # set the page format common.cfmt.set_page_format() common.search_field0 = args.select_field0 # default for interactive mode # if args.epsf: # for filename in args.filename.split(): # name, extension = os.path.splitext(filename) if not args.filenames: # no input file specified: open stdin log.error("++++ No input files, read from stdin") sys.exit(2) if common.do_output and args.make_index: log.info(f"make_index: {args.make_index}") ind = index.Index() ind.open_index_file(INDEXFILE) # loop over files in list pat, xref_str = parse.rehash_selectors(args.filenames) fout = None for filename in args.filenames: # process list of input files and skip.ps and.eps files name, ext = os.path.splitext(filename) if ext != ".ps" or ext != ".eps": continue elif not ext and not os.path.exists(name): filename = name + '.abc' if not os.path.exists(filename): log.error(f'{filename} not found') continue log.info(f"{filename}:") if args.output: fout = open(args.output) else: fout = open(name + '.ps', 'a') fin = open(filename, 'r') if not common.do_output: log.info(f"{filename}:") parse.do_index(fin, xref_str, pat, common.select_all, args.search_field0) # this is the start of the process process_file(fin, fout, xref_str, pat, common.select_all, args.search_field0) # The rest just closes everything up if not common.do_output: print( f"Selected {common.tnum1} title {common.tnum1} of {common.tnum2}") if common.do_output and common.make_index: subs.close_index_file() subs.close_output_file(fout)
def test_maxshrink_high(self): sys.argv.append('-a') sys.argv.append('1.12') args = cmdline.options() self.assertEqual(args['maxshrink'], 1.0)
def test_continue_all_0(self): sys.argv.append('-c') args = cmdline.options() self.assertTrue(args['continue_all'])
def test_one_per_line_1(self): sys.argv.append('-1') args = cmdline.options() self.assertTrue(args['one_per_page'])
def test_one_per_line_0(self): sys.argv.append('+1') args = cmdline.options() self.assertFalse(args['one_per_page'])
def test_sel_arg(self): sys.argv.append('-e 4') args = cmdline.options() self.assertFalse(args['sel_arg'], 4)
def test_continue_all_1(self): sys.argv.append('+c') args = cmdline.options() self.assertFalse(args['continue_all'])
# Copyright (c) 2019 Curtis Penner import os import re import random from log import log import cmdline import common args = cmdline.options() # ----- bskip(h): ---- def bskip(h): """ translate down by h points in output buffer :param h: """ # global bposy if h * h > 0.0001: put(f'0 {-h:.2f} T\n') common.bposy -= h def put(line, fp=common.fp): """ This appends a line to filename. """ fp.write(line)
def test_maxshrink_low(self): sys.argv.append('-a -0.12') args = cmdline.options() self.assertEqual(args['maxshrink'], 0.0)