New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use argparse for the zipfile module #72302
Comments
Options and arguments for zipfile CLI are manually parsed for now. Since CLI becomes more complex, it is worth to convert zipfile to use argparse. |
I'm working on this. :) |
Note that a key part of doing a translation like this is to write tests for the CLI, as comprehensively as possible, so that we have some assurance we didn't break anything in the translation. But experience tells us that we *will* break something, since we have in every one of the translations to argparse that we've done so far :) |
Given that at present zipfile CLI has no test or docs, and along with Guido's aversion for such tools in general, I'm not at all sure they should be added. In any case, here is the patch for the main part of conversion. |
They should be added. Otherwise we can't know that the code works as expected. You can use test_calendar.py or test_tarfile.py as a guide. |
Neither of those fit under definition of "permissible" modules. So, I would then suggest to close this issue and any further issues against CLI of those modules. |
@SilentGhost I have mad few comments on your patch. Please contact me on any confusions. Looking forward to you. Thanks! |
Jaysinh, you can upload your modified patch, so it can be reviewed. |
Proposed patch makes zipfile using argparse and adds tests for zipfile CLI. Originally it is based on tarfile code and tests (but reworked, especially tests). Basically the interface is not changed, but added support of long options, and exit code in case of calling without options is changed from 1 to 2 (the same as wrong option is specified). The format of help and usage info is changed of course. Tests are passed with old releases of Python (except supporting long options). They will be backported. |
New changeset 042c923c5b67 by Serhiy Storchaka in branch '2.7': New changeset 900c47c98711 by Serhiy Storchaka in branch '3.5': New changeset a1975621bba2 by Serhiy Storchaka in branch '3.6': New changeset 5edac3b55130 by Serhiy Storchaka in branch 'default': |
New changeset fa275e570d52 by Serhiy Storchaka in branch 'default': |
New changeset 7f01d9d471e5 by Serhiy Storchaka in branch '2.7': New changeset 7701e9cb8712 by Serhiy Storchaka in branch '3.5': New changeset 5b779441d03e by Serhiy Storchaka in branch '3.6': New changeset 3e7da46aead3 by Serhiy Storchaka in branch 'default': |
SilentGhost suggested to pass required=True to add_mutually_exclusive_group(). This makes the last "else" not needed. Proposed patch implements this suggestion. |
Opened bpo-29958 for the latter patch. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: