-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
PEP 682: Discussions-To and minor fixes #2317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 3 commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,13 +2,13 @@ PEP: 682 | |
Title: Format Specifier for Signed Zero | ||
Author: John Belmonte <[email protected]> | ||
Sponsor: Mark Dickinson <[email protected]> | ||
Discussions-To: | ||
Discussions-To: https://discuss.python.org/t/pep-682-format-specifier-for-signed-zero/13596 | ||
Status: Draft | ||
Type: Standards Track | ||
Content-Type: text/x-rst | ||
Created: 29-Jan-2022 | ||
Python-Version: 3.11 | ||
Post-History: | ||
Post-History: 08-Feb-2022 | ||
|
||
|
||
Abstract | ||
|
@@ -27,9 +27,7 @@ zero to be normalized to positive zero. | |
Motivation | ||
========== | ||
|
||
Here is negative zero: | ||
|
||
.. code-block:: pycon | ||
Here is negative zero:: | ||
|
||
>>> x = -0. | ||
>>> x | ||
|
@@ -38,9 +36,7 @@ Here is negative zero: | |
When formatting a number, negative zero can result from rounding. Assuming | ||
the user's intention is truly to discard precision, the distinction between | ||
negative and positive zero of the rounded result might be considered an | ||
unwanted artifact: | ||
|
||
.. code-block:: pycon | ||
unwanted artifact:: | ||
|
||
>>> for x in (.002, -.001, .060): | ||
... print(f'{x: .1f}') | ||
|
@@ -49,18 +45,14 @@ unwanted artifact: | |
0.1 | ||
|
||
There are various approaches to clearing the sign of a negative zero. It | ||
can be achieved without a conditional by adding positive zero: | ||
|
||
.. code-block:: pycon | ||
can be achieved without a conditional by adding positive zero:: | ||
|
||
>>> x = -0. | ||
>>> x + 0. | ||
0.0 | ||
|
||
To normalize negative zero when formatting, it is necessary to perform | ||
a redundant (and error-prone) pre-rounding of the input: | ||
|
||
.. code-block:: pycon | ||
a redundant (and error-prone) pre-rounding of the input:: | ||
|
||
>>> for x in (.002, -.001, .060): | ||
... print(f'{round(x, 1) + 0.: .1f}') | ||
|
@@ -113,11 +105,11 @@ one-dimensional numerical arrays would be complicated by such pre-rounding: | |
return f"[{','.join(f'{term:{format_spec}}' for term in v)}]" | ||
|
||
To date, there doesn't appear to be other widely-used languages or libraries | ||
belm0 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
providing such a formatting option for negative zero. However, the same | ||
``z`` option syntax and semantics has been `proposed for C++ std::format()`_. | ||
While the proposal was withdrawn for C++20, a consensus proposal is promised | ||
for C++23. (The original `feature request`_ prompting this PEP was argued | ||
without knowledge of the C++ proposal.) | ||
providing a formatting option for negative zero. However, the same ``z`` | ||
option syntax and semantics specified below have been `proposed for C++ | ||
std::format()`_. While the proposal was withdrawn for C++20, a consensus | ||
proposal is promised for C++23. (The original `feature request`_ prompting | ||
this PEP was argued without knowledge of the C++ proposal.) | ||
|
||
.. _`proposed for C++ std::format()`: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1496r2.pdf | ||
.. _`feature request`: https://bugs.python.org/issue45995 | ||
|
@@ -138,9 +130,7 @@ where ``z`` is allowed for numerical types other than integer. Support for | |
allowing the specifier to be used in f-strings, built-in ``format()``, and | ||
``str.format()``. The %-formatting style will not support the new option. | ||
|
||
Synopsis: | ||
|
||
.. code-block:: pycon | ||
Synopsis:: | ||
|
||
>>> x = -.00001 | ||
>>> f'{x:z.1f}' | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to summarize:
pycon
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
interesting-- the new rendering deduces console blocks anyway
Screen shot after merge of this PR, and confirming other edits are reflected:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As @AA-Turner explained on the other PR, completely nuking the explict
.. code-block
declaration is not the correct way to fix this. Instead, you should simply changepycon
topython
to use the standard Python script file syntax highlighting that doesn't have this problem (which is currently the default, but that is an implementation detail that may change) rather than removing it completely.There's not so much benefit to doing so on existing PEPs that would justify the noise, except on Active/Process PEPs as they are updated, so long as we keep the default
python
, and if not then console blocks are no different than any other non-plain-text code block in that regard.Indeed—my testing also seems to confirm there is no difference when rendered via the new system, at least for these particular (relatively simple) blocks.