(original) (raw)



On Tue, 15 Mar 2016 at 13:31 Guido van Rossum <guido@python.org> wrote:
I came across a file that had two different coding cookies -- one on
the first line and one on the second. CPython uses the first, but mypy
happens to use the second. I couldn't find anything in the spec or
docs ruling out the second interpretation. Does anyone have a
suggestion (apart from following CPython)?

Reference: https://github.com/python/mypy/issues/1281

I think the spirit of PEP 263 is for the first specified encoding to win as the support of two lines is to support shebangs and not multiple encodings :) . I also think the fact that tokenize.detect\_encoding() doesn't automatically read two lines from its input also suggests the intent is "first encoding wins" (and that is the semantics of the function).