Skip to content
Snippets Groups Projects
Controller.py 43.1 KiB
Newer Older
  • Learn to ignore specific revisions
  •     for k in algorithms:
            algorithms[k].add_arguments(processing_group)
    
        processing_group.add_argument(
            "--update",
            action="store_true",
            default=False,
            help="""
    
                    Check for gaps in output,
                    and merge new data into existing.
    
                    """,
        )
        processing_group.add_argument(
            "--update-limit",
            type=int,
            default=0,
            help="""
    
                    Update mode checks for gaps and will step backwards
                    to gap fill, if the start of the current interval is a gap,
                    when limit is set to more than 0.
                    """,
    
            metavar="N",
        )
        processing_group.add_argument(
            "--no-trim",
            action="store_true",
            default=False,
            help="Ensures output data will not be trimmed down",
        )
    
    
        # 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,
            )