Пример #1
0
 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)
Пример #2
0
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()
Пример #3
0
    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')
Пример #4
0
    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
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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())
Пример #8
0
 def test_bars_per_iine_1(self):
     sys.argv.append('-B 4')
     args = cmdline.options()
     self.assertEqual(args['bars_per_line'], 4)
Пример #9
0
 def test_f(self):
     sys.argv.append('-f')
     sys.argv.append('file0')
     args = cmdline.options()
     self.assertEqual('file0', args.filename)
Пример #10
0
 def test_select_composer(self):
     sys.argv.append('-C')
     args = cmdline.options()
     self.assertTrue(args['select_composer'])
Пример #11
0
 def test_bars_per_line_0(self):
     sys.argv.append('+B')
     args = cmdline.options()
     self.assertEqual(args['bars_per_line'], 0)
Пример #12
0
 def test_o(self):
     sys.argv.append('-o')
     sys.argv.append('oh.ps')
     args = cmdline.options()
     self.assertEqual(args.outfile, 'oh.ps')
Пример #13
0
 def test_break_all_0(self):
     sys.argv.append('+b')
     args = cmdline.options()
     self.assertFalse(args['break_all'])
Пример #14
0
 def test_break_all_1(self):
     sys.argv.append('-b')
     args = cmdline.options()
     self.assertTrue(args['break_all'])
Пример #15
0
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)
Пример #16
0
 def test_maxshrink_high(self):
     sys.argv.append('-a')
     sys.argv.append('1.12')
     args = cmdline.options()
     self.assertEqual(args['maxshrink'], 1.0)
Пример #17
0
 def test_continue_all_0(self):
     sys.argv.append('-c')
     args = cmdline.options()
     self.assertTrue(args['continue_all'])
Пример #18
0
 def test_one_per_line_1(self):
     sys.argv.append('-1')
     args = cmdline.options()
     self.assertTrue(args['one_per_page'])
Пример #19
0
 def test_one_per_line_0(self):
     sys.argv.append('+1')
     args = cmdline.options()
     self.assertFalse(args['one_per_page'])
Пример #20
0
 def test_sel_arg(self):
     sys.argv.append('-e 4')
     args = cmdline.options()
     self.assertFalse(args['sel_arg'], 4)
Пример #21
0
 def test_continue_all_1(self):
     sys.argv.append('+c')
     args = cmdline.options()
     self.assertFalse(args['continue_all'])
Пример #22
0
# 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)
Пример #23
0
 def test_maxshrink_low(self):
     sys.argv.append('-a -0.12')
     args = cmdline.options()
     self.assertEqual(args['maxshrink'], 0.0)