Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #74165

Re: PEP8 and 4 spaces

References (4 earlier) <mailman.11614.1404782560.18130.python-list@python.org> <53bbb047$0$2926$c3e8da3$76491128@news.astraweb.com> <87a98kgqsm.fsf@elektro.pacujo.net> <mailman.11620.1404815310.18130.python-list@python.org> <874mysgl2y.fsf@elektro.pacujo.net>
Date 2014-07-08 21:37 +1000
Subject Re: PEP8 and 4 spaces
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.11624.1404819468.18130.python-list@python.org> (permalink)

Show all headers | View raw


On Tue, Jul 8, 2014 at 9:13 PM, Marko Rauhamaa <marko@pacujo.net> wrote:
> Chris Angelico <rosuav@gmail.com>:
>
>> Not quite; tools like diff that put a character at the beginning of
>> the line are likely to be tab-aware,
>
> No, just tried it again: diff outputs tabs as tabs.
>
>    $ diff abc def
>    1,2c1,2
>    <       abc
>    <         abc
>    ---
>    >       def
>    >         def
>
> where line 1 begins with a tab and line 2 begins with 8 spaces in each
> file.

Check out its -t and -T options; diff is definitely tab-aware.

>> and gcc is certainly going to comprehend them
>
>    $ gcc -c test.c
>    test.c:1:2: error: expected identifier or ‘(’ at end of input
>
> where test.c contains
>
>    <TAB>(<LF>
>
> IOW, gcc reports that the open parenthesis is in column 2.

It's easier to number the positions that way, in the same way that you
would number lines - by how many times you have to hit down or right
arrow to get there. In my MUD client, I measure text positions in
characters (within a line; a particular position is identified by
(line, char), because lines are generally far more important than
overall positions), even when tabs are involved; a tab simply counts
as one character, even though it displays as up to eight times the
width. Actually, I'm currently contemplating a reworking of how that's
all mapped out, which would mean that *any* character is allowed to
take up *any* width, including zero, in which case the only
significance is that a tab takes up a variable width depending on
where it is in the line (which is already coped with).

>> And I think less takes notice of them, too,
>
> How?

Shrink your terminal down to some weird width like 45, create a file
with long lines including tabs, 'less' the file, and use the right
arrow key to scroll horizontally. It takes note of tabs and renders
them properly.

>> so it's only the very simplest tools like cat that actually ignore
>> them or treat them as single characters (or even bytes).
>
> They all seem to be "simple." At least Python is:
>
>    $ python3 -c 'print  ('
>      File "<string>", line 1
>        print    (
>              ^
>    SyntaxError: unexpected EOF while parsing
>
> where the caret is pointing at the wrong visual column.

If someone cares enough to write a patch, I'm sure the traceback
renderer could be improved. But how many people actually use tabs
inside code like that?

ChrisA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: PEP8 and 4 spaces Ben Finney <ben@benfinney.id.au> - 2014-07-07 11:00 +1000
  Re: PEP8 and 4 spaces Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-07-07 02:28 +0000
    Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-07 12:50 +1000
  Re: PEP8 and 4 spaces Dan Sommers <dan@tombstonezero.net> - 2014-07-07 05:35 +0000
    Re: PEP8 and 4 spaces Ben Finney <ben@benfinney.id.au> - 2014-07-08 11:22 +1000
      Re: PEP8 and 4 spaces wxjmfauth@gmail.com - 2014-07-08 00:03 -0700
      Re: PEP8 and 4 spaces Steven D'Aprano <steve@pearwood.info> - 2014-07-08 08:48 +0000
        Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-08 19:05 +1000
        Re: PEP8 and 4 spaces Marko Rauhamaa <marko@pacujo.net> - 2014-07-08 12:09 +0300
          Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-08 20:28 +1000
            Re: PEP8 and 4 spaces Marko Rauhamaa <marko@pacujo.net> - 2014-07-08 14:13 +0300
              Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-08 21:37 +1000
        Re: PEP8 and 4 spaces Ben Finney <ben@benfinney.id.au> - 2014-07-09 12:41 +1000
          Re: PEP8 and 4 spaces wxjmfauth@gmail.com - 2014-07-09 01:19 -0700

csiph-web