Как использовать python argparse с аргументами, отличными от sys.argv?

Я изучил всю документацию, и кажется, что нет никакого способа сделать это, но:

Есть ли способ использовать argparse с любым списком строк, а не только с sys.argv?

Вот моя проблема: у меня есть программа, которая выглядит примерно так:

# This file is program1.py
import argparse

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

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

Это прекрасно работает, когда эта программа вызывается прямо из командной строки. Тем не менее, у меня есть еще один сценарий Python, который запускает пакетные версии этого сценария с различными аргументами командной строки, которые я использую следующим образом:

import program1

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

Я все еще хочу иметь возможность анализировать аргументы, но argparse автоматически использует sys.argv вместо аргументов, которые я ему даю. Есть ли способ передать список аргументов вместо использования sys.argv?

Ответы на вопрос(2)

Ваш ответ на вопрос