def test_transformations_help(self):
     subcommands = cmdline.find_methods_in_package(transformations,
                                                   cmdline.is_cnf_transformation_subcommand)
     for sc in subcommands:
         with self.assertRaises(SystemExit) as cm:
             cnfformula.cnfgen(["cnfgen", "and", "0", "0" ,"-T", sc.name, "-h"])
         self.assertEqual(cm.exception.code, 0)
 def test_transformations_help(self):
     subcommands = cmdline.find_methods_in_package(
         transformations, cmdline.is_cnf_transformation_subcommand)
     for sc in subcommands:
         with self.assertRaises(SystemExit) as cm:
             cnfformula.cnfgen(
                 ["cnfgen", "and", "0", "0", "-T", sc.name, "-h"])
         self.assertEqual(cm.exception.code, 0)
def setup_command_line(parser):
    """Setup general command line options

    Arguments:
    - `parser`: parser to fill with options
    """
    parser.add_argument(
        '--input',
        '-i',
        type=argparse.FileType('r', 0),
        metavar="<input>",
        default='-',
        help="""Input file. The input formula is read as a dimacs CNF file file
                        instead of standard input. Setting '<input>'
                        to '-' is another way to read from standard
                        input. (default: -) """)

    parser.add_argument('--output',
                        '-o',
                        type=argparse.FileType('wb', 0),
                        metavar="<output>",
                        default='-',
                        help="""Output file. The formula is saved
                        on file instead of being sent to standard
                        output. Setting '<output>' to '-' is another
                        way to send the formula to standard output.
                        (default: -)
                        """)

    parser.add_argument('--quiet',
                        '-q',
                        action='store_false',
                        default=True,
                        dest='verbose',
                        help="""Output just the formula with no header.""")

    # Cmdline parser for formula transformations
    from cnfformula import transformations
    from cnfformula.cmdline import is_cnf_transformation_subcommand
    from cnfformula.cmdline import find_methods_in_package

    subparsers = parser.add_subparsers(title="Available transformation",
                                       metavar="<transformation>")
    for sc in find_methods_in_package(transformations,
                                      is_cnf_transformation_subcommand,
                                      sortkey=lambda x: x.name):
        p = subparsers.add_parser(sc.name, help=sc.description)
        sc.setup_command_line(p)
        p.set_defaults(transformation=sc)
def setup_command_line(parser):
    """Setup general command line options

    Arguments:
    - `parser`: parser to fill with options
    """
    parser.add_argument('--input','-i',
                        type=argparse.FileType('r',0),
                        metavar="<input>",
                        default='-',
                        help="""Input file. The input formula is read as a dimacs CNF file file
                        instead of standard input. Setting '<input>'
                        to '-' is another way to read from standard
                        input. (default: -) """)

    parser.add_argument('--output','-o',
                        type=argparse.FileType('wb',0),
                        metavar="<output>",
                        default='-',
                        help="""Output file. The formula is saved
                        on file instead of being sent to standard
                        output. Setting '<output>' to '-' is another
                        way to send the formula to standard output.
                        (default: -)
                        """)

    parser.add_argument('--quiet', '-q',action='store_false',default=True,dest='verbose',
                        help="""Output just the formula with no header.""")

    # Cmdline parser for formula transformations    
    from cnfformula import transformations
    from cnfformula.cmdline import is_cnf_transformation_subcommand
    from cnfformula.cmdline import find_methods_in_package

    subparsers = parser.add_subparsers(title="Available transformation",
                                       metavar="<transformation>")
    for sc in find_methods_in_package(transformations,
                                      is_cnf_transformation_subcommand,
                                      sortkey=lambda x:x.name):
        p=subparsers.add_parser(sc.name,help=sc.description)
        sc.setup_command_line(p)
        p.set_defaults(transformation=sc)
Exemple #5
0
 def test_find_formula_families(self):
     subcommands = cmdline.find_methods_in_package(families,cmdline.is_cnfgen_subcommand)
     self.assertNotEqual(subcommands[:],[])
 def test_find_formula_transformations(self):
     subcommands = cmdline.find_methods_in_package(
         transformations, cmdline.is_cnf_transformation_subcommand)
     self.assertNotEqual(subcommands[:], [])
 def test_find_formula_transformations(self):
     subcommands = cmdline.find_methods_in_package(transformations,
                                                   cmdline.is_cnf_transformation_subcommand)
     self.assertNotEqual(subcommands[:],[])