You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brad Schoening (Jira)" <ji...@apache.org> on 2022/11/19 03:03:00 UTC
[jira] [Updated] (CASSANDRA-17914) Argparse migration as the Python Optparse library is deprecated
[ https://issues.apache.org/jira/browse/CASSANDRA-17914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brad Schoening updated CASSANDRA-17914:
---------------------------------------
Description:
[Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module.|https://docs.python.org/2/library/optparse.html]
Argparse is described in [PEP 389 – argparse - New Command Line Parsing Module|https://peps.python.org/pep-0389/]
A partial upgrade path from [{{optparse}}|https://docs.python.org/3/library/optparse.html#module-optparse] to [{{argparse}}|https://docs.python.org/3/library/argparse.html#module-argparse]:
https://docs.python.org/3/library/argparse.html#upgrading-optparse-code
* Replace all [{{optparse.OptionParser.add_option()}}|https://docs.python.org/3/library/optparse.html#optparse.OptionParser.add_option] calls with [{{ArgumentParser.add_argument()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument] calls.
* Replace {{(options, args) = parser.parse_args()}} with {{args = parser.parse_args()}} and add additional [{{ArgumentParser.add_argument()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument] calls for the positional arguments. Keep in mind that what was previously called {{{}options{}}}, now in the [{{argparse}}|https://docs.python.org/3/library/argparse.html#module-argparse] context is called {{{}args{}}}.
* Replace [{{optparse.OptionParser.disable_interspersed_args()}}|https://docs.python.org/3/library/optparse.html#optparse.OptionParser.disable_interspersed_args] by using [{{parse_intermixed_args()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_intermixed_args] instead of [{{parse_args()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args].
* Replace callback actions and the {{callback_*}} keyword arguments with {{type}} or {{action}} arguments.
* Replace string names for {{type}} keyword arguments with the corresponding type objects (e.g. int, float, complex, etc).
* Replace {{optparse.Values}} with [{{Namespace}}|https://docs.python.org/3/library/argparse.html#argparse.Namespace] and {{optparse.OptionError}} and {{optparse.OptionValueError}} with {{{}ArgumentError{}}}.
* Replace strings with implicit arguments such as {{%default}} or {{%prog}} with the standard Python syntax to use dictionaries to format strings, that is, {{%(default)s}} and {{{}%(prog)s{}}}.
* Replace the OptionParser constructor {{version}} argument with a call to {{{}parser.add_argument('--version', action='version', version='<the version>'){}}}.
was:
[Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module.|https://docs.python.org/2/library/optparse.html]
Argparse is described in [PEP 389 – argparse - New Command Line Parsing Module|https://peps.python.org/pep-0389/]
> Argparse migration as the Python Optparse library is deprecated
> ---------------------------------------------------------------
>
> Key: CASSANDRA-17914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17914
> Project: Cassandra
> Issue Type: Improvement
> Components: CQL/Interpreter
> Reporter: Brad Schoening
> Priority: Normal
>
> [Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module.|https://docs.python.org/2/library/optparse.html]
> Argparse is described in [PEP 389 – argparse - New Command Line Parsing Module|https://peps.python.org/pep-0389/]
>
> A partial upgrade path from [{{optparse}}|https://docs.python.org/3/library/optparse.html#module-optparse] to [{{argparse}}|https://docs.python.org/3/library/argparse.html#module-argparse]:
> https://docs.python.org/3/library/argparse.html#upgrading-optparse-code
> * Replace all [{{optparse.OptionParser.add_option()}}|https://docs.python.org/3/library/optparse.html#optparse.OptionParser.add_option] calls with [{{ArgumentParser.add_argument()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument] calls.
> * Replace {{(options, args) = parser.parse_args()}} with {{args = parser.parse_args()}} and add additional [{{ArgumentParser.add_argument()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument] calls for the positional arguments. Keep in mind that what was previously called {{{}options{}}}, now in the [{{argparse}}|https://docs.python.org/3/library/argparse.html#module-argparse] context is called {{{}args{}}}.
> * Replace [{{optparse.OptionParser.disable_interspersed_args()}}|https://docs.python.org/3/library/optparse.html#optparse.OptionParser.disable_interspersed_args] by using [{{parse_intermixed_args()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_intermixed_args] instead of [{{parse_args()}}|https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args].
> * Replace callback actions and the {{callback_*}} keyword arguments with {{type}} or {{action}} arguments.
> * Replace string names for {{type}} keyword arguments with the corresponding type objects (e.g. int, float, complex, etc).
> * Replace {{optparse.Values}} with [{{Namespace}}|https://docs.python.org/3/library/argparse.html#argparse.Namespace] and {{optparse.OptionError}} and {{optparse.OptionValueError}} with {{{}ArgumentError{}}}.
> * Replace strings with implicit arguments such as {{%default}} or {{%prog}} with the standard Python syntax to use dictionaries to format strings, that is, {{%(default)s}} and {{{}%(prog)s{}}}.
> * Replace the OptionParser constructor {{version}} argument with a call to {{{}parser.add_argument('--version', action='version', version='<the version>'){}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org