This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author rhettinger
Recipients Zach Beniash, dkg, matrixise, paul.j3, rhettinger
Date 2019-11-10.21:08:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1573420129.09.0.862956790456.issue37564@roundup.psfhosted.org>
In-reply-to
Content
Right now "type" has a clear and understandable action of invoking a callable.   Imbuing "type" with other semi-magical capabilities opens a new can of worms.

Unless some persuasive new commentary appears in the next few days, I'm going to close this feature request and the associated PR.

At some point, we should consider adding a recipes/faq section to the docs.  That would help people bridge from their goals to the actual capabilities offered by the module.

Also, we should make strong suggestions about the separation of responsibilities between the parser and the downstream code that acts on the parsed variables (much like the discussion in the templating world about keeping business logic outside of the template and instead focusing on formatting logic).

For the case at hand, there are several ways to go:

      # Proposed new magic with hard-wired
      # truthy/false words: yes True 1 true Y si oui ...
      parser.add_argument("--mybool", type='bool')

      # Existing capability where the user controls
      # exactly which logic to apply
      parser.add_argument("--mybool", type=str_to_bool)

      # Existing capability with downstream processing
      parser.add_argument("--mybool", choices={'True', 'False', 'Yes', 'No'}
      args = parser.parse_args()
      mybool = args.mybool in {'True', 'Yes'}

      # Existing capability with explicit flag arguments
      # (the highly upvoted "canonical" solution StackOverflow)
      parser.add_argument('--feature', dest='feature', action='store_true')
      parser.add_argument('--no-feature', dest='feature', action='store_false')
      parser.set_defaults(feature=True)
History
Date User Action Args
2019-11-10 21:08:49rhettingersetrecipients: + rhettinger, paul.j3, matrixise, dkg, Zach Beniash
2019-11-10 21:08:49rhettingersetmessageid: <1573420129.09.0.862956790456.issue37564@roundup.psfhosted.org>
2019-11-10 21:08:49rhettingerlinkissue37564 messages
2019-11-10 21:08:48rhettingercreate