Como usar python argparse com argumentos diferentes de sys.argv?

Eu estive em toda a documentação e parece que não há como fazê-lo, mas:

Existe uma maneira de usar argparse com qualquer lista de strings, em vez de apenas com sys.argv?

Aqui está o meu problema: Eu tenho um programa que se parece com isso:

# This file is program1.py
import argparse

def main(argv):
    parser = argparse.ArgumentParser()
    # Do some argument parsing

if __name__ == '__main__':
    main(sys.argv)

Isso funciona bem quando esse programa é chamado diretamente da linha de comando. No entanto, eu tenho outro script python que executa versões em lote desse script com diferentes argumentos de linha de comando, que estou usando assim:

import program1

arguments = ['arg1', 'arg2', 'arg3']
program1.main(arguments)

Eu ainda quero poder analisar os argumentos, mas o argparse assume como padrão automaticamente o uso de sys.argv, em vez dos argumentos que forneci. Existe uma maneira de passar na lista de argumentos em vez de usar sys.argv?

questionAnswers(2)

yourAnswerToTheQuestion