On Tue, 5 May 2020, 18:24 Steven D'Aprano, <steve@pearwood.info> wrote:
On Tue, May 05, 2020 at 05:26:02PM +0100, Henk-Jaap Wagenaar wrote:
This is a straw man in regards to backwards compatibility. This particular (sub)thread is about whether if this zip-is-strict either as a separate name or a Boolean flag or some other flag of zip should be a built-in or be in e.g. itertools.
Please don't misuse "strawman" in that fashion. A strawman argument is a logical fallacy where you attack a weaker position your opponent didn't make in order to make your own position stronger. That's not what Chris did, and frankly accusing him of strawmanning is a form of "poisoning the well".
What Chris did was to propose a counterfactual to express his opinion on this proposal. To paraphrase:
"If this were true (we were designing zip from scratch for the first time) then I would agree with the proposal, but since we aren't, I disagree because of these reasons."
That is a perfectly legitimate position to take.
I agree on the face of it (in regards to strawmanning and your paraphrasing), except I wasn't disagreeing with anything you've gone into the detail above, but I disagreed with one of the reasons listed and thought it was strawmanning, namely the "the backward compatibility break large" (see further down, why).
"If we weren't in lockdown, I would take you out for dinner at a restaurant, but since we are in quarantine, I don't think we should go out."
Personally, I don't think Chris' backwards-compatibility argument is strong. Technically adding a new keyword argument to a function is backwards-incompatible, but we normally exclude that sort of change. Who writes this?
# This behaviour will be changed by the proposed new parameter. zip('', strict=1) # Raise a type error.
So I think the *backwards incompatibility* argument is weak in that regard. But maybe Chris has got a different perspective on this that I haven't thought of.
I cannot interpret that as a "large" break as Chris says, so I must assume he meant something else (changing the default is my assumption) unless somebody (Chris or otherwise) can tell me why adding a keyword argument would be a large incompatible change?
[Chris]
Should they? I'm not sure how well-supported this actually is. If you hand-craft an AST and then compile it, is it supposed to catch every possible malformation?
I would expect that the ast library should accept anything which could come from legal Python, and nothing that doesn't.
-- Steven _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/GQZLWL... Code of Conduct: http://python.org/psf/codeofconduct/