Migrating "optparse" code to "argparse"
***************************************

The "argparse" module offers several higher level features not
natively provided by the "optparse" module, including:

* Обробка позиційних аргументів.

* Supporting subcommands.

* Дозволяє альтернативні префікси параметрів, наприклад "+" і "/".

* Обробка нуля або більше та одного або кількох аргументів стилю.

* Створення більш інформативних повідомлень про використання.

* Забезпечення набагато простішого інтерфейсу для користувацького
  "типу" і "дії".

Originally, the "argparse" module attempted to maintain compatibility
with "optparse".  However, the fundamental design differences between
supporting declarative command line option processing (while leaving
positional argument processing to application code), and supporting
both named options and positional arguments in the declarative
interface mean that the API has diverged from that of "optparse" over
time.

As described in Choosing an argument parsing library, applications
that are currently using "optparse" and are happy with the way it
works can just continue to use "optparse".

Application developers that are considering migrating should also
review the list of intrinsic behavioural differences described in that
section before deciding whether or not migration is desirable.

For applications that do choose to migrate from "optparse" to
"argparse", the following suggestions should be helpful:

* Замініть усі виклики "optparse.OptionParser.add_option()" на виклики
  "ArgumentParser.add_argument()".

* Замініть "(options, args) = parser.parse_args()" на "args =
  parser.parse_args()" і додайте додаткові виклики
  "ArgumentParser.add_argument()" для позиційних аргументів. Майте на
  увазі, що те, що раніше називалося "options", тепер у контексті
  "argparse" називається "args".

* Замініть "optparse.OptionParser.disable_interspersed_args()" на
  використання "parse_intermixed_args()" замість "parse_args()".

* Замініть дії зворотного виклику та аргументи ключового слова
  "callback_*" на аргументи "type" або "action".

* Замініть назви рядків для ключових аргументів "type" відповідними
  об’єктами типу (наприклад, int, float, complex тощо).

* Замініть "optparse.Values" на "Namespace" і "optparse.OptionError" і
  "optparse.OptionValueError" на "ArgumentError".

* Замініть рядки неявними аргументами, такими як "%default" або
  "%prog" стандартним синтаксисом Python, щоб використовувати словники
  для форматування рядків, тобто "%(default)s" і "%(prog)s".

* Замініть аргумент "version" конструктора OptionParser на виклик
  "parser.add_argument('--version', action='version', version=' <the
  version> ')".
