I’ve been searching for a simple answer to this kind of question for some time. All you need to do is check if '--argument'
is in sys.argv
, so basically for your code sample you could just do:
import argparse
import sys
if __name__ == '__main__':
p = argparse.ArgumentParser(description='...')
p.add_argument('--argument', required=False)
p.add_argument('-a', required='--argument' in sys.argv) #only required if --argument is given
p.add_argument('-b', required='--argument' in sys.argv) #only required if --argument is given
args = p.parse_args()
This way required
receives either True
or False
depending on whether the user as used --argument
. Already tested it, seems to work and guarantees that -a
and -b
have an independent behavior between each other.