blockstack_zones/parse_zone_file.py
def make_parser():
    """
    Make an ArgumentParser that accepts DNS RRs
    """
    line_parser = ZonefileLineParser()
    subparsers = line_parser.add_subparsers()

    # parse $ORIGIN
    sp = subparsers.add_parser("$ORIGIN")
    sp.add_argument("$ORIGIN", type=str)

    # parse $TTL
    sp = subparsers.add_parser("$TTL")
    sp.add_argument("$TTL", type=int)

    # parse each RR
    args_and_types = [
        ("mname", str), ("rname", str), ("serial", int), ("refresh", int),
        ("retry", int), ("expire", int), ("minimum", int)
    ]
    make_rr_subparser(subparsers, "SOA", args_and_types)

    make_rr_subparser(subparsers, "NS", [("host", str)])
    make_rr_subparser(subparsers, "A", [("ip", str)])
    make_rr_subparser(subparsers, "AAAA", [("ip", str)])
    make_rr_subparser(subparsers, "CNAME", [("alias", str)])
    make_rr_subparser(subparsers, "ALIAS", [("host", str)])
    make_rr_subparser(subparsers, "MX", [("preference", str), ("host", str)])
    make_txt_subparser(subparsers)
    make_rr_subparser(subparsers, "PTR", [("host", str)])
    make_rr_subparser(subparsers, "SRV", [("priority", int), ("weight", int), ("port", int), ("target", str)])
    make_rr_subparser(subparsers, "SPF", [("data", str)])
    make_rr_subparser(subparsers, "URI", [("priority", int), ("weight", int), ("target", str)])

    return line_parser
def make_parser():
    line_parser = ZonefileLineParser()
    subparsers = line_parser.add_subparsers()

    # parse $ORIGIN
    sp = subparsers.add_parser("$ORIGIN")
    sp.add_argument("$ORIGIN", type=str)

    # parse $TTL
    sp = subparsers.add_parser("$TTL")
    sp.add_argument("$TTL", type=int)

    # parse each RR
    args_and_types = [
        ("mname", str), ("rname", str), ("serial", int), ("refresh", int),
        ("retry", int), ("expire", int), ("minimum", int)
    ]
    make_rr_subparser(subparsers, "SOA", args_and_types)

    make_rr_subparser(subparsers, "NS", [("host", str)])
    make_rr_subparser(subparsers, "A", [("ip", str)])
    make_rr_subparser(subparsers, "AAAA", [("ip", str)])
    make_rr_subparser(subparsers, "CNAME", [("alias", str)])
    make_rr_subparser(subparsers, "ALIAS", [("host", str)])
    make_rr_subparser(subparsers, "MX", [("preference", str), ("host", str)])
    make_txt_subparser(subparsers)
    make_rr_subparser(subparsers, "PTR", [("host", str)])
    make_rr_subparser(subparsers, "SRV", [("priority", int), ("weight", int), ("port", int), ("target", str)])
    make_rr_subparser(subparsers, "SPF", [("data", str)])
    make_rr_subparser(subparsers, "URI", [("priority", int), ("weight", int), ("target", str)])

    return line_parser
def make_parser ( ) : line_parser = ZonefileLineParser ( ) subparsers = line_parser . add_subparsers ( ) # parse $ORIGIN sp = subparsers . add_parser ( "$ORIGIN" ) sp . add_argument ( "$ORIGIN" , type = str ) # parse $TTL sp = subparsers . add_parser ( "$TTL" ) sp . add_argument ( "$TTL" , type = int ) # parse each RR args_and_types = [ ( "mname" , str ) , ( "rname" , str ) , ( "serial" , int ) , ( "refresh" , int ) , ( "retry" , int ) , ( "expire" , int ) , ( "minimum" , int ) ] make_rr_subparser ( subparsers , "SOA" , args_and_types ) make_rr_subparser ( subparsers , "NS" , [ ( "host" , str ) ] ) make_rr_subparser ( subparsers , "A" , [ ( "ip" , str ) ] ) make_rr_subparser ( subparsers , "AAAA" , [ ( "ip" , str ) ] ) make_rr_subparser ( subparsers , "CNAME" , [ ( "alias" , str ) ] ) make_rr_subparser ( subparsers , "ALIAS" , [ ( "host" , str ) ] ) make_rr_subparser ( subparsers , "MX" , [ ( "preference" , str ) , ( "host" , str ) ] ) make_txt_subparser ( subparsers ) make_rr_subparser ( subparsers , "PTR" , [ ( "host" , str ) ] ) make_rr_subparser ( subparsers , "SRV" , [ ( "priority" , int ) , ( "weight" , int ) , ( "port" , int ) , ( "target" , str ) ] ) make_rr_subparser ( subparsers , "SPF" , [ ( "data" , str ) ] ) make_rr_subparser ( subparsers , "URI" , [ ( "priority" , int ) , ( "weight" , int ) , ( "target" , str ) ] ) return line_parser
Make an ArgumentParser that accepts DNS RRs
Make an ArgumentParser that accepts DNS RRs