Deutsch   English   Français   Italiano  
<mailman.130.1718284531.2909.python-list@python.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!feeds.phibee-telecom.net!2.eu.feeder.erje.net!feeder.erje.net!fu-berlin.de!uni-berlin.de!not-for-mail
From: Yair Eshel <guruyaya@gmail.com>
Newsgroups: comp.lang.python
Subject: Suggested python feature: allowing except in context maneger
Date: Thu, 13 Jun 2024 13:01:11 +0300
Lines: 52
Message-ID: <mailman.130.1718284531.2909.python-list@python.org>
References: <CAAtpb8kxWfLVKYW3w3uJRyyQi-3FPxZHYfS2BLe0R6UYSitgZw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Trace: news.uni-berlin.de 2+3kTWoeJN2xQ898G24LWgUxDmvJDLzmHFEB1o27u3pw==
Cancel-Lock: sha1:egXQ5NuykNTe/AJx8WLGSnMbfZ8= sha256:rta4307ApTiXtOqUIkKXedRFgKwq7y1woEIPbcTA2ho=
Return-Path: <guruyaya@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
 reason="2048-bit key; unprotected key"
 header.d=gmail.com header.i=@gmail.com header.b=QIH+DT5x;
 dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: UNSURE 0.266
X-Spam-Level: **
X-Spam-Evidence: '*H*': 0.53; '*S*': 0.06; 'usage': 0.05;
 'subject:python': 0.06; 'python.': 0.08; 'readable': 0.09;
 'import': 0.15; 'applies': 0.16; 'syntax,': 0.16; 'syntax.': 0.16;
 'url:#': 0.16; 'work:': 0.16; 'code.': 0.17; 'to:addr:python-
 list': 0.20; 'code': 0.23; 'idea': 0.24; 'behavior': 0.26;
 'manager,': 0.26; 'normally': 0.26; 'suggest': 0.28;
 'suggestions': 0.28; 'context': 0.32; 'message-
 id:@mail.gmail.com': 0.32; "i'm": 0.33; 'there': 0.33;
 'received:google.com': 0.34; 'following': 0.35;
 'from:addr:gmail.com': 0.35; 'this.': 0.37; 'way': 0.38; 'could':
 0.38; 'read': 0.38; 'handle': 0.39; 'use': 0.39; 'both': 0.40;
 'provide': 0.60; 'best': 0.61; 'skip:o 20': 0.63; '8bit%:9': 0.64;
 'less': 0.65; 'let': 0.66; 'url:net': 0.68; 'know.': 0.68;
 'everyday': 0.69; 'natural': 0.69; 'url-ip:134.209/16': 0.69;
 'url-ip:134/8': 0.69; 'future': 0.72; 'features': 0.75; 'skip:f
 20': 0.75; '8bit%:100': 0.76; '8bit%:95': 0.84; 'cleaner': 0.84;
 'hopes': 0.91; 'url:start': 0.91; 'will,': 0.91; 'manager.': 0.93;
 'pain': 0.93
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1718272883; x=1718877683; darn=python.org;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=cRV+ggLf6hDdueYM3r2GnCmHu5xeziYri7k0tNVLvRY=;
 b=QIH+DT5xdIyEI03+yQNCXPAimViXzMDGmemPFz6T1DQyaNgqLSPSwIFleMxwUrWUXw
 w3ZblQSat2rTARE4lCdThSAXJfVoHjx3BK7RfHFYNG5IeCfsY7+ywR0OBvOX9U+i+7Xp
 sIvgIw6hd9/kOT1tmReGYCbqymilTPQdkxHm07nnxtk4uBGrWUnypUI4yhZ0OpiTsdZ+
 TcXJ/lB6z8lJpN14pr98lkUoX6sIZQ4YHZ+1R/lcL+2vcnT0F+55uhGnlhElvfjclu5x
 7TbqiCpiHWNiSCIrxiwA9uD5AdoRb4zICPALe3ff08iyH2VKtfcJicoeEjS05jw2BvZ+
 5efw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1718272883; x=1718877683;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=cRV+ggLf6hDdueYM3r2GnCmHu5xeziYri7k0tNVLvRY=;
 b=Ci+2TEzG8LxOoUIKyQuKupdXCGyHFFYToq4PKypuUH6rzsTjRz7mayWzpgH7LcFsYv
 uAvnrG/YWKzIP+rVCXP+S+hNhgxR+IWk1cbb1Hy3NZAfsJLYRotUhAXOdrb3TeFJzHcf
 JVYnh8v51hxx97G4B9Q9SHF+YdSvf6a1fSKEKyVf3rUthQO0XSjkaraxkUP9lOV2IeJo
 yMvllht4XLN8mb4FAw41GHaQbGNo+QweHDr1JeMG0wrrlqhdlLSFDoM7Lx6/TA1EG/Ak
 GKclGQtFzez02SKFTNq4RYpVKmJOAobztkcVHU1AUdaGGDTtIVeWb0JuWimkjeXqr0jq
 rWtg==
X-Gm-Message-State: AOJu0YzpJdX5f5ROelJ7V/U/mGrQ42xV7NRYP8QI9/DyU7O8+BcJXKAW
 COwjEBBroz6QPjwKnq1lDpxJBYrESdX4I3Ip98IEpTi00hge29Jt3kjwjCRiV94Y6mYHem5oqGx
 dnyT9Y1WIo2ZsG7YewU9DKjLrsP0xh/S2
X-Google-Smtp-Source: AGHT+IHX+Nzez12clkx8pa2RiN8H7JG9RLMPzk1dGSA23NEbwJ/ZHsO0CZhrDdAZa7jWlXAnMPgMdJSg2TtFqwazcos=
X-Received: by 2002:a05:6870:5687:b0:254:6e4e:23d7 with SMTP id
 586e51a60fabf-25514e74ffemr4913004fac.50.1718272882564; Thu, 13 Jun 2024
 03:01:22 -0700 (PDT)
X-Mailman-Approved-At: Thu, 13 Jun 2024 09:15:31 -0400
X-Content-Filtered-By: Mailman/MimeDel 2.1.39
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
 <python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
 <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
 <mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CAAtpb8kxWfLVKYW3w3uJRyyQi-3FPxZHYfS2BLe0R6UYSitgZw@mail.gmail.com>
Bytes: 6509

Hello. I read this is a good place to give some suggestions for features in
python. If not, please let me know.

This is an example of a code I normally use in my everyday work:
import logging
try:
  with open('sample_data/READM.md') as f:
    print (len(f.read()))
except FileNotFoundError:
  logging.error("File not found")


As you can see I have 2 levels of indentation, which can add some pain to
the work with the context manager. This code without context manager, can
be replaced by this code:

import logging
try:
  f =3D open('sample_data/READM.md') as f:
  print (len(f.read()))
except FileNotFoundError:
  logging.error("File not found")
finally:
  f.close()

And while this offers less indentations, it skips the usage of the very
handy context manager.

I would like to suggest an alternative syntax, that will, in a sense, apply
the best of both worlds:

import logging
with open('sample_data/README.md') as f:
  print (len(f.read()))
except FileNotFoundError:
  logging.error("File not")

As "with" applies the behavior of the "try / finally" it feels like a
natural part of this syntax. This could provide a cleaner code.
If this idea is accepted, there are several things that need to be
discussed, like what to do with "else" or "finally" statement following a
context manager. I'm not sure about the proper way to handle this.

With hopes for an even more readable future
Yair
--=20
=D7=91=D7=91=D7=A8=D7=9B=D7=94,
=D7=99=D7=90=D7=99=D7=A8 =D7=90=D7=A9=D7=9C =D7=9B=D7=94=D7=A0=D7=A1=D7=A7=
=D7=99
=D7=9E=D7=AA=D7=9B=D7=A0=D7=AA =D7=95=D7=98=D7=9B=D7=A0=D7=90=D7=99 =D7=9E=
=D7=99=D7=9C=D7=99=D7=9D
https://www.inspect-element.net/YouAreHere/#/start