python / cpython

The Python programming language
https://www.python.org
Other
62.6k stars 30.04k forks source link

Add examples to docs for str methods #106318

Open hauntsaninja opened 1 year ago

hauntsaninja commented 1 year ago

@adorilson already opened a PR for this over at https://github.com/python/cpython/pull/105670. If people have higher level feedback on the suggestion, this issue is a good place to do it.

Maybe cc @CAM-Gerlach in case you're interested :-)

Linked PRs

terryjreedy commented 1 year ago

The main question is whether the examples are worth the space. For some readers, details are definitely useful. I wonder if some of them might better be put inline in the description.

adorilson commented 1 year ago

Hi, folks. Thank you for your review and suggestions. All of them were applied (letting For example at the end of the paragraph). Maybe except in the splitlines method. It is because there is a table between the first paragraph and the example. So, we can:

1) Leave as is 2) Move the example (maybe just the first one) to after the first paragraph

Another idea here?

Another thing is about versionadded:: 3.2. What do you think about removing it. The reason is that 3.2 is an old version (after end-of-file)? There are some rules about this?

rhettinger commented 1 year ago

The main question is whether the examples are worth the space.

I think the answer is mostly "No". In my courses, I ask people to read the string docs to become familiar with the methods. What I've learned is a) the docs are clear enough without having an example, and b) it already is too long and tedious to read.

IMO, a well-intended effort to add examples would be counter-productive and make the docs less useful. Also, it is already trivially easy to run experiments to verify understanding (the string methods require almost no setup to try out).

FWIW, the argparse docs are a example (no pun intended) of the consequences of going overboard with examples. Instead of one or two informative examples for the whole module, they are were added at a fine-grained level. As a result, we almost never can get anyone to read the docs top to bottom to gain a full understanding of the module.

AlexWaygood commented 1 year ago

Perhaps we could put these examples in expandable sections that are hidden by default, like we recently did for the "relevant PEPs" section of the typing docs: https://docs.python.org/3.12/library/typing.html#relevant-peps.

adorilson commented 1 year ago

Perhaps we could put these examples in expandable sections that are hidden by default, like we recently did for the "relevant PEPs" section of the typing docs: https://docs.python.org/3.12/library/typing.html#relevant-peps.

Do you mean something like this? And @rhettinger, what do you think about it?

image

AlexWaygood commented 1 year ago

Do you mean something like this?

yes

AA-Turner commented 1 year ago

The only problem is that man pages, LaTeX, epub, etc (to my knowledge) don't have the concept of expandable sections. See https://github.com/sphinx-doc/sphinx/pull/10532#issuecomment-1166589848 for some context.

On the other hand, this would be useful even if we make the collapsible content HTML only.

A

adorilson commented 11 months ago

Hi, people.

I opened a new PR (#111743 ). As said there, I would like a "go ahead" to confirm that the work will be valid.

ezio-melotti commented 8 months ago

We recently had a few discussions related to this, including in the last docs-community meeting or on Discord. The relevant bits are:

Until a better solution for collapsible sections is found, and if adding more example inline it's not desirable for the str methods, it might be better to just add the examples at the bottom of the page (like I did for the str.format docs) or possibly in a separate page (this needs a broader discussion though, especially if a similar approach gets adopted for builtin functions and possibly other pages).