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/GQZLWLOHFPBQLADHYLHW6JYY2X4S4ABA/
Code of Conduct: http://python.org/psf/codeofconduct/