code: def parse_args(args=None):
      
      parser = argparse.ArgumentParser(description='afraid.org dyndns client')
  
      ## positional arguments
  
      parser.add_argument('user')
      parser.add_argument('password')
      parser.add_argument('hosts',
              nargs='*',
              help='(deafult: all associated hosts)',
              default=None
      )
  
      ## optional arguments
  
      # should we fork?
      parser.add_argument('--daemonize', '-d',
          action='store_true',
          default=False,
          help='run in background (default: no)',
      )
  
      # log to a file or stdout
      parser.add_argument('--log',
          help='log to file (default: log to stdout)',
          type=argparse.FileType('w'),
          default=sys.stdout,
          metavar='file'
      )
  
      # how long to sleep between updates
      parser.add_argument('--interval',
          help='update interval, in seconds (default: 21600)',
          metavar='seconds',
          default=6 * 60 * 60, # 6 hours
          type=int
      )
  
      return parser.parse_args(args)
docs: Parse command-line arguments