Skip to content

replace deprecated optparse with argparse

squashed and rebased merge request !74 (closed)

following guidelines from: https://docs.python.org/2/library/argparse.html#upgrading-optparse-code except, still using option = parse.parse_args() instead of args = ...

  • using the following script in folder fdroidserver:
     for i in *.py; do
     	sed -i -e 's/optparse/argparse/' \
     		-e 's/OptionParser/ArgumentParser/' \
     		-e 's/OptionError/ArgumentError/' \
     		-e 's/add_option/add_argument/' \
     		-e 's/(options, args) = parser/options = parser/' \
     		-e 's/options, args = parser/options = parser/' \
     		-e 's/Usage: %prog/%(prog)s/' $i;
     done
  • use ArgumentParser argument to replace (option, args) = parser.parse() call
  • use parser.error(msg) instead of raise ArgumentException as suggested in https://docs.python.org/2/library/argparse.html#exiting-methods
  • in fdroid catch ArgumentError instead of OptionError

Merge request reports