Skip to content
Snippets Groups Projects
Controller.py 42.2 KiB
Newer Older
    # GOES parameters
    goes_group = parser.add_argument_group(
        "GOES parameters", 'Used to configure "--input goes"'
    )
    goes_group.add_argument(
        "--input-goes-directory",
        default=".",
        help="Directory for support files for goes input of imfv283 data",
        metavar="PATH",
    )
    goes_group.add_argument(
        "--input-goes-getdcpmessages",
        default="",
        help="Location of getDcpMessages.",
        metavar="PATH",
    )
    goes_group.add_argument(
        "--input-goes-password",
        default="",
        help="Password for goes user",
        metavar="PASSWORD",
    )
    goes_group.add_argument(
        "--input-goes-server",
        nargs="*",
        help="The server name(s) to retrieve the GOES data from",
        metavar="HOST",
    )
    goes_group.add_argument(
        "--input-goes-user",
        default="GEOMAG",
        help="The user name to use to retrieve data from GOES",
        metavar="USER",
    )

    # still allow deprecated arguments for now, but hide behind opt in flag
    deprecated = parser.add_argument_group("Deprecated")
    deprecated.add_argument(
        "--enable-deprecated-arguments",
        action="store_true",
        default=False,
        help="enable support for deprecated arguments",
    )
    # check for this argument before adding deprecated args to usage
    if "--enable-deprecated-arguments" in args:
        add_deprecated_args(deprecated, input_type_group, output_type_group)

    deprecated.add_argument(
        "--volt-conversion",
        default=100.0,
        metavar="NT",
        help="(Deprecated, Unused) Conversion factor (nT/V) for volts",
    )
    deprecated.add_argument(
        "--bin-conversion",
        default=500.0,
        metavar="NT",
        help="(Deprecated, Unused) Conversion factor (nT/bin) for bins",
    )
    return parser.parse_args(args)


def add_deprecated_args(parser, input_group, output_group):
    print(
        "WARNING: you are enabling deprecated arguments," + " please update your usage",
        file=sys.stderr,
    )

    # argument options for inputs and outputs,
    # replaced with less TYPE specific options
    parser.add_argument(
        "--input-edge-port",
        type=int,
        default=2060,
        help='(Deprecated) \
        metavar="PORT",
    )
    parser.add_argument(
        "--output-edge-port",
        type=int,
        dest="edge_write_port",
        default=7981,
        help='(Deprecated) \
        metavar="PORT",
    )
    parser.add_argument(
        "--output-edge-cwb-port",
        type=int,
        dest="edge_write_port",
        default=7981,
        help='(Deprecated) \
                Use "--output miniseed" and "--output-port PORT".',
        metavar="PORT",
    )
    parser.add_argument(
        "--output-edge-read-port",
        type=int,
        default=2060,
        help='(Deprecated) \
                Use "--output-read-port".',
        metavar="PORT",
    )
    # input arguments (generally use "--input TYPE")
    input_group.add_argument(
        "--input-edge",
        help='(Deprecated) \
                Use "--input edge" and "--input-host HOST".',
        metavar="HOST",
    )
    input_group.add_argument(
        "--input-iaga-file",
        help='(Deprecated) \
                Use "--input iaga2002" and "--input-file FILE".',
        metavar="FILE",
    )
    input_group.add_argument(
        "--input-iaga-stdin",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--input iaga2002" and "--input-stdin".',
    )
    input_group.add_argument(
        "--input-iaga-url",
        help='(Deprecated) \
                Use "--input iaga2002" and "--input-url URL".',
        metavar="URL",
    )
    input_group.add_argument(
        "--input-imfv283-file",
        help='(Deprecated) \
                Use "--input imfv283" and "--input-file FILE".',
        metavar="FILE",
    )
    input_group.add_argument(
        "--input-imfv283-stdin",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--input imfv283" and "--input-stdin"',
    )
    input_group.add_argument(
        "--input-imfv283-url",
        help='(Deprecated) \
                Use "--input iaga2002" and "--input-url URL".',
        metavar="URL",
    )
    input_group.add_argument(
        "--input-imfv283-goes",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--input goes".',
    )
    input_group.add_argument(
        "--input-pcdcp-file",
        help='(Deprecated) \
                Use "--input pcdcp" and "--input-file FILE".',
        metavar="FILE",
    )
    input_group.add_argument(
        "--input-pcdcp-stdin",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--input pcddp" and "--input-stdin".',
    )
    input_group.add_argument(
        "--input-pcdcp-url",
        help='(Deprecated) \
                Use "--input pcdcp" and "--input-url URL".',
    # output arguments (generally use "--output TYPE")
    output_group.add_argument(
        "--output-iaga-file",
        help='(Deprecated) \
                Use "--output iaga2002" and "--output-file FILE".',
        metavar="FILE",
    )
    output_group.add_argument(
        "--output-iaga-stdout",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--output iaga2002" and "--output-stdout".',
    )
    output_group.add_argument(
        "--output-iaga-url",
        help='(Deprecated) \
                Use "--output iaga2002" and "--output-url URL".',
        metavar="URL",
    )
    output_group.add_argument(
        "--output-pcdcp-file",
        help='(Deprecated) \
                Use "--output pcdcp" and "--output-file FILE".',
        metavar="FILE",
    )
    output_group.add_argument(
        "--output-pcdcp-stdout",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--output pcdcp" and "--output-stdout".',
    )
    output_group.add_argument(
        "--output-pcdcp-url",
        help='(Deprecated) \
                Use "--output pcdcp" and "--output-url URL".',
        metavar="URL",
    )
    output_group.add_argument(
        "--output-edge",
        help='(Deprecated) \
                Use "--output edge" and "--output-host HOST".',
        metavar="HOST",
    )
    output_group.add_argument(
        "--output-plot",
        action="store_true",
        default=False,
        help='(Deprecated) \
                Use "--output plot".',
    )
def parse_deprecated_arguments(args):
    # TODO: remove argument mapping in future version
    # map legacy input arguments
    usingDeprecated = False
    if args.input_edge is not None:
        args.input = "edge"
        args.input_host = args.input_edge
        args.input_port = args.input_edge_port
        usingDeprecated = True
    elif args.input_iaga_file is not None:
        args.input = "iaga2002"
        args.input_file = args.input_iaga_file
        usingDeprecated = True
    elif args.input_iaga_stdin:
        args.input = "iaga2002"
        args.input_stdin = True
        usingDeprecated = True
    elif args.input_iaga_url is not None:
        args.input = "iaga2002"
        args.input_url = args.input_iaga_url
        usingDeprecated = True
    elif args.input_imfv283_file is not None:
        args.input = "imfv283"
        args.input_file = args.input_imfv283_file
        usingDeprecated = True
    elif args.input_imfv283_url is not None:
        args.input = "imfv283"
        args.input_url = args.input_imfv283_url
        usingDeprecated = True
    elif args.input_imfv283_goes:
        args.input = "goes"
        usingDeprecated = True
    # map legacy output arguments
    if args.output_edge is not None:
        args.output = "edge"
        args.output_host = args.output_edge
        args.output_port = args.edge_write_port
        usingDeprecated = True
    elif args.output_iaga_file is not None:
        args.output = "iaga2002"
        args.output_file = args.output_iaga_file
        usingDeprecated = True
    elif args.output_iaga_stdout:
        args.output = "iaga2002"
        args.output_stdout = True
        usingDeprecated = True
    elif args.output_iaga_url is not None:
        args.output = "iaga2002"
        args.output_url = args.output_iaga_url
        usingDeprecated = True
    elif args.output_pcdcp_file is not None:
        args.output = "pcdcp"
        args.output_file = args.output_pcdcp_file
        usingDeprecated = True
    elif args.output_pcdcp_stdout:
        args.output = "pcdcp"
        args.output_stdout = True
        usingDeprecated = True
    elif args.output_pcdcp_url is not None:
        args.output = "pcdcp"
        args.output_url = args.output_pcdcp_url
        usingDeprecated = True
    elif args.output_plot:
        args.output = "plot"
        print(
            "WARNING: you are using deprecated arguments,"
            + " please update your usage",
            file=sys.stderr,
        )