<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 25, 2019 at 9:33 AM Mikhail V <<a href="mailto:mikhailwas@gmail.com">mikhailwas@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Not a proposal yet, but some thoughts:<br>
I think it would help in a longer perspective if a user could<br>
include a directive in the header of the source code file that<br>
defines indentation character(s) for this source file. So this<br>
source would be parsed strictly by this char (or sequence).<br></blockquote><div><br></div><div>This is more of a linter thing than a language thing, so I would propose you take it to the code-quality mailing list.</div><div><br></div><div>-Brett<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
E.g.:<br>
<br>
    # indent "\t"<br>
    ...<br>
<br>
Would force the Python parser to use exactly 1 tab for 1 indent level.<br>
<br>
    # indent "    "<br>
    ...<br>
<br>
Would accordingly force the parser to use exactly 4 spaces for<br>
1 indent level.<br>
<br>
Frankly I don't have much proof in hand for that will be a good<br>
addition, but intuitively I suppose it would help with some possible<br>
future features and in general, ease the development of source<br>
processors.<br>
<br>
One possible example: if a potential future feature would require<br>
a statement, and moreover require it to be indentation-aware?<br>
Lets take e.g. a multi-line string:<br>
<br>
    s = """<br>
        Hello<br>
        world<br>
        """<br>
    print (s)<br>
<br>
    >>><br>
<br>
        Hello<br>
        world<br>
<br>
<br>
Here it is not so intuitive (unless you already know) how the string would<br>
be parsed (given that Python blocks are actually indentation-based).<br>
So if one would want to try introduce a new indent-aware string type and<br>
look into possible parsing disambiguation scenarios - it will be not an<br>
easy task.<br>
E.g. say one proposes a syntax for auto-unindented string block:<br>
<br>
    s = !!!<br>
        Hello<br>
        world<br>
    print (s)<br>
    >>><br>
    Hello<br>
    world<br>
<br>
(no leading newline, no leading indent in resulting string, which is a bit more<br>
expected result IMO).<br>
<br>
Then it seems one can define the parsing rule unambiguously _only_<br>
if one has a strictly defined character sequence for the indent level<br>
(e.g.  1 tab or 4 spaces, but not both).<br>
Thus it seems such a directive would be a prerequisite for such feature.<br>
<br>
And in general, I think it could help to make automatic conversions from one<br>
type of indentation to other easier.<br>
<br>
<br>
<br>
Mikhail<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</blockquote></div></div>