[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2021-01-06 Thread Vladimir Ryabtsev


Vladimir Ryabtsev  added the comment:

The issue won't be fixed, but other useful changes applied.

--
resolution:  -> wont fix
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-12-15 Thread Carol Willing


Carol Willing  added the comment:


New changeset 3f9fe23c05280dc5736c07bb0e968cdaf8c503d0 by Vladimir in branch 
'master':
bpo-42179: Clarify exception chaining (GH-23160)
https://github.com/python/cpython/commit/3f9fe23c05280dc5736c07bb0e968cdaf8c503d0


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-09 Thread Vladimir Ryabtsev


Vladimir Ryabtsev  added the comment:

All right, you won. I hope beginner users will be happy :)

I removed my proposal paragraph about __cause__ and __context__ and kept only 
changes about exception type (https://bugs.python.org/issue42179#msg380435).

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-08 Thread Inada Naoki

Inada Naoki  added the comment:

>> 1. Such understanding of a tutorial is debatable. Tutorial is just a 
>> material for learning written with some system in mind, which is more 
>> interesting to read than dry reference material. A tutorial, generally 
>> dpeaking, may be both for beginners and for professionals.
>
> OK, I will send this topic to python-dev first.

For the record, there is a long thread in python-dev about this issue:

* main thread: 
https://mail.python.org/archives/list/python-...@python.org/thread/MXMEFFYB6JXAKSS36SZ7DX4ASP6APWFP/
* another thread: 
https://mail.python.org/archives/list/python-...@python.org/thread/WNHVZLEO3ZVDOFP2FHRBUQR4GY24RIJJ/

## High level discussion: focus on new user vs write more and more details.

More detail:
* Abdur-Rahmaan Janhangeer

Focus on new user:
* Paul Moore 
* Brett Cannon
* Guido van Rossum
* Kyle Stanley
* Carol Willing
* Serhiy Storchaka

## About this specific case. (Adding __context__ and __suppress_context vs 
removing __cause__)

Add __context__:
(no one)

Remove __cause__:
* Kyle Stanley
* Éric Araujo (in GH-23160)

Riccardo Polignieri asked that to be very careful about removing something, but 
he did not vote for adding __context__ and __supress_context__.

--

I merged PR-23162 for keep focus on new users and consistent for now.

But I have not closed this issue yet because documentation WG may revisit the 
issue. (see 
https://mail.python.org/archives/list/python-...@python.org/message/IWW2YBLJK4T3OWSKDUDVDVXPWDGIFWTC/
 ).

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread miss-islington


miss-islington  added the comment:


New changeset e74fb2d7666eea43ad738528a565bb56bc88c28d by Miss Islington (bot) 
in branch '3.9':
bpo-42179: Doc/tutorial: Remove mention of __cause__ (GH-23162)
https://github.com/python/cpython/commit/e74fb2d7666eea43ad738528a565bb56bc88c28d


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread miss-islington


Change by miss-islington :


--
nosy: +miss-islington
nosy_count: 7.0 -> 8.0
pull_requests: +22086
pull_request: https://github.com/python/cpython/pull/23173

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Inada Naoki


Inada Naoki  added the comment:


New changeset bde33e428d5b5f88ec7667598fd27d1091840537 by Inada Naoki in branch 
'master':
bpo-42179: Doc/tutorial: Remove mention of __cause__ (GH-23162)
https://github.com/python/cpython/commit/bde33e428d5b5f88ec7667598fd27d1091840537


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Zachary Ware


Change by Zachary Ware :


Removed file: https://bugs.python.org/file49575/Cellular-Z 20200909 14:25:47 
SLOT1.CSV

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread David Martinez


Change by David Martinez :


Added file: https://bugs.python.org/file49575/Cellular-Z 20200909 14:25:47 
SLOT1.CSV

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Carol Willing


Carol Willing  added the comment:

Thanks Vladimir for raising the issue, and Inada-san and Eric for following up 
on it.

I recommend the following:
- merge PR-23162 including its reference to builtin exceptions
- after merge of PR-23162, reworking PR-23160 to provide a brief note about 
__cause__ and __contex__ before the reference link to builtin exceptions

This would provide a clear tutorial example for the majority of users. For the 
fraction of users, like Vladimir, a sentence as part of the reference link 
could address a bit more about __cause__ and __context__ without confusing 
folks.

--
nosy: +willingc

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Vladimir Ryabtsev


Vladimir Ryabtsev  added the comment:

Also, the choice of the exception type in the example looks not very apt: you 
raise "IOError" but the traceback message says "OSError" (which is due to 
strange design decision "IOError = OSError"). For the tutorial, I would choose 
an exception that does not disguise as another exception.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Vladimir Ryabtsev


Vladimir Ryabtsev  added the comment:

We have automatic chaining, so you don't need to use "from X" unless you want 
to have some control on the traceback message. Even without knowing of this 
syntax (and without using "from exc"), a user will get a traceback message 
similar to what is shown in the example. What is the purpose of the entire 
section then?

As I see it, the purpose might be providing some details about how exactly 
chaining works, so a user: a) could make an informed decision whether they need 
"from X" or not, b) would know how to retrieve the linked exception 
programmatically.

I generally feel that we don't want to deprive a user from special attributes, 
in Python they are everywhere, you cannot even construct a class instance 
without __init__().

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Éric Araujo

Éric Araujo  added the comment:

I prefer the patch by Inada-san!

>> Describing the default behavior and "from None" is enough for new users
> Strange that you think that "from None" is more useful for beginners than 
> these special attributes.

Doesn’t feel strange to me:  `raise Exc from exc` or `from None` shows how to 
use the mecanism, whereas the special attributes are about the implementation.  
A tutorial can show how to use language features like for loops or with 
statements, but shouldn’t explain how to implement the protocols, that’s too 
much detail if you’re just starting to learn programming.

--
nosy: +eric.araujo, maxking, rhettinger

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Vladimir Ryabtsev

Vladimir Ryabtsev  added the comment:

> I can not find confusion caused by this tutorial section

Inada, have you read the very first message in this ticket? It explains why 
this wording may cause confusion (and it did in me), and describes the problem 
part. A link for your convenience: 
https://docs.python.org/3/tutorial/errors.html#exception-chaining

> Describing the default behavior and "from None" is enough for new users

Strange that you think that "from None" is more useful for beginners than these 
special attributes.

Without understanding of __cause__ and __context__, stack traceback message 
looks like magic. Say you want to handle an exception and retrieve its cause 
(context) in runtime (this is what exception chaining for) – this section makes 
no clues about how to do that.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Inada Naoki


Change by Inada Naoki :


--
pull_requests: +22074
pull_request: https://github.com/python/cpython/pull/23162

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Inada Naoki

Inada Naoki  added the comment:

> 1. Such understanding of a tutorial is debatable. Tutorial is just a material 
> for learning written with some system in mind, which is more interesting to 
> read than dry reference material. A tutorial, generally dpeaking, may be both 
> for beginners and for professionals.

OK, I will send this topic to python-dev first.

> 2. The question about exception chaining is popular on Stackoverflow in 
> people who came to Python with Java or C# background (see “python inner 
> exception”).
> 3. Whatever material is given, it should not cause confusion, but now it does.

I searched it but I can not find confusion caused by this tutorial section. 
Please write a concrete URL caused by current tutorial?

> Since this section has been added recently, it is better to fix it rather 
> than remove entirely, aren’t you agree?

I prefer removing mention to __cause__, instead of adding mention to 
__context__.

No need to remove entire section. We can introduce high level overview of 
context chaining. Describing the default behavior and "from None" is enough for 
new users.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-05 Thread Vladimir Ryabtsev

Vladimir Ryabtsev  added the comment:

1. Such understanding of a tutorial is debatable. Tutorial is just a material 
for learning written with some system in mind, which is more interesting to 
read than dry reference material. A tutorial, generally dpeaking, may be both 
for beginners and for professionals.

2. The question about exception chaining is popular on Stackoverflow in people 
who came to Python with Java or C# background (see “python inner exception”).

3. Whatever material is given, it should not cause confusion, but now it does. 
Since this section has been added recently, it is better to fix it rather than 
remove entirely, aren’t you agree?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-04 Thread Inada Naoki


Inada Naoki  added the comment:

Please note that tutorial is a tutorial. It is document to help new user who 
are learning Python.
Do you believe special attributes like __cause__ and __contexts__ are really 
worth to teach for tutorial readers?

Generally speaking, I think we should *reduce* some details from tutorial.

--
nosy: +methane

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-11-04 Thread Vladimir Ryabtsev


Change by Vladimir Ryabtsev :


--
keywords: +patch
pull_requests: +22072
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23160

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42179] Clarify chaining exceptions in tutorial/errors.rst

2020-10-28 Thread Vladimir Ryabtsev


New submission from Vladimir Ryabtsev :

A new section has been added to the page as a result of 
https://bugs.python.org/issue37826. The change: 
https://github.com/python/cpython/commit/dcfe111eb5602333135b8776996332a8dcf59392

The wording it uses (in the beginning of section 8.5), defines chaining as 
setting __cause__ attribute in an exception, and later states that "Exception 
chaining happens automatically when an exception is raised inside an exception 
handler or finally section". This may lead the reader to a wrong idea that 
re-raising an exception without "from" in "except" and "finally" automatically 
sets __cause__. In reality it sets only __context__ attribute, which is similar 
concept to __cause__, but work a bit differently, as explained in 
library/exceptions.rst. I suggest to mention that difference and provide a link 
to the main article.

--
assignee: docs@python
components: Documentation
messages: 379823
nosy: Vladimir Ryabtsev, docs@python
priority: normal
severity: normal
status: open
title: Clarify chaining exceptions in tutorial/errors.rst
versions: Python 3.10, Python 3.9

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com