def parse_args()

in notebooks/oracle2bq/OracleToBigQuery_parameterize_script.py [0:0]


    def parse_args(args: Optional[Sequence[str]] = None) -> Dict[str, Any]:
        parser = argparse.ArgumentParser()

        parser.add_argument(
            f'--{constants.ORACLE_HOST_ARG}',
            dest=constants.ORACLE_HOST,
            required=True,
            help='Oracle host or IP address'
        )

        parser.add_argument(
            f'--{constants.ORACLE_PORT_ARG}',
            dest=constants.ORACLE_PORT,
            default="1521",
            required=False,
            help='Oracle port (Default: 1521)'
        )

        parser.add_argument(
            f'--{constants.ORACLE_USERNAME_ARG}',
            dest=constants.ORACLE_USERNAME,
            required=True,
            help='Oracle username'
        )

        parser.add_argument(
            f'--{constants.ORACLE_PASSWORD_ARG}',
            dest=constants.ORACLE_PASSWORD,
            required=True,
            help='Oracle password'
        )

        parser.add_argument(
            f'--{constants.ORACLE_DATABASE_ARG}',
            dest=constants.ORACLE_DATABASE,
            required=True,
            help='Oracle database name'
        )

        parser.add_argument(
            f'--{constants.ORACLE_SCHEMA_ARG}',
            dest=constants.ORACLE_SCHEMA,
            required=False,
            help='Schema to be exported, leave blank to export tables owned by ORACLE_USERNAME'
        )

        parser.add_argument(
            f'--{constants.ORACLE_TABLE_LIST_ARG}',
            dest=constants.ORACLE_TABLE_LIST,
            required=False,
            help='Oracle table list to migrate. '
            'Leave empty for migrating complete database else provide tables as \"table1,table2\"'
        )

        parser.add_argument(
            f'--{constants.BIGQUERY_MODE_ARG}',
            dest=constants.BIGQUERY_MODE,
            required=False,
            default=constants.OUTPUT_MODE_OVERWRITE,
            help='BigQuery output write mode (Default: overwrite). '
            'Use append when schema already exists in BigQuery',
            choices=[
                constants.OUTPUT_MODE_OVERWRITE,
                constants.OUTPUT_MODE_APPEND
            ]
        )

        parser.add_argument(
            f'--{constants.BIGQUERY_DATASET_ARG}',
            dest=constants.BIGQUERY_DATASET,
            required=True,
            help='BigQuery dataset name'
        )

        parser.add_argument(
            f'--{constants.TEMP_GCS_BUCKET_ARG}',
            dest=constants.TEMP_GCS_BUCKET,
            required=True,
            help='Temporary staging Cloud Storage bucket name'
        )

        parser.add_argument(
            f'--{constants.MAX_PARALLELISM_ARG}',
            dest=constants.MAX_PARALLELISM,
            type=int,
            default=5,
            required=False,
            help='Maximum number of tables that will migrated parallelly (Default: 5)'
        )

        parser = get_common_args(parser)

        known_args: argparse.Namespace
        known_args, _ = parser.parse_known_args()

        return vars(known_args)