def parse_args()

in notebooks/oracle2postgres/OracleToPostgres_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_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.POSTGRES_HOST_ARG}",
            dest=constants.POSTGRES_HOST,
            required=True,
            help="Postgres host or IP address",
        )
        parser.add_argument(
            f"--{constants.POSTGRES_PORT_ARG}",
            dest=constants.POSTGRES_PORT,
            required=True,
            help="Postgres post",
        )
        parser.add_argument(
            f"--{constants.POSTGRES_USERNAME_ARG}",
            dest=constants.POSTGRES_USERNAME,
            required=True,
            help="Postgres Username",
        )
        parser.add_argument(
            f"--{constants.POSTGRES_PASSWORD_ARG}",
            dest=constants.POSTGRES_PASSWORD,
            required=True,
            help="Postgres Password",
        )
        parser.add_argument(
            f"--{constants.POSTGRES_DATABASE_ARG}",
            dest=constants.POSTGRES_DATABASE,
            required=True,
            help="Postgres database name",
        )
        parser.add_argument(
            f"--{constants.POSTGRES_SCHEMA_ARG}",
            dest=constants.POSTGRES_SCHEMA,
            required=True,
            help="Postgres Schema name where we want to migrate",
        )
        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.add_argument(
            f"--{constants.JDBCTOJDBC_OUTPUT_MODE_ARG}",
            dest=constants.JDBCTOJDBC_OUTPUT_MODE,
            required=False,
            default=constants.OUTPUT_MODE_OVERWRITE,
            help="Postgres output write mode (Default: overwrite).",
            choices=[constants.OUTPUT_MODE_OVERWRITE, constants.OUTPUT_MODE_APPEND],
        )
        parser.add_argument(
            f"--{constants.BATCH_SIZE_ARG}",
            dest=constants.BATCH_SIZE,
            required=False,
            default=1000,
            help="JDBC output batch size (Default: 1000).",
        )
        
        parser = get_common_args(parser)
        known_args: argparse.Namespace
        known_args, _ = parser.parse_known_args()

        return vars(known_args)