-
-
Notifications
You must be signed in to change notification settings - Fork 31.9k
gh-119535: python𝜋 #119536
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
The head ref may contain hidden characters: "python\u03C0"
gh-119535: python𝜋 #119536
Conversation
Lib/venv/__init__.py
Outdated
|
||
suffixes = ['python', 'python3', f'python3.{sys.version_info[1]}'] | ||
if sys.version_info[:2] == (3, 14): | ||
suffixes.append('pythonπ') |
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.
I think using python-pi
or python_pi
would be better. I think using special characters may cause garbled characters on some platform.
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.
Hmm, what platform / filesystem are you concerned about, and what would the impact to the user on that platform be? (note in this branch we know os.name == "posix"
)
A Greek letter isn't really that special. It's fully normalised Unicode (non-normalised Unicode can still be a little surprising). Looks like even FAT has supported this since around the time I was born via LFN.
See also https://peps.python.org/pep-0011/#legacy-c-locale part of PEP 11
This is decidedly one of the advantages of being alive in 2024 :-)
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.
Linux console with no framebuffer?
Console fonts without this glyph? I sometimes do math with the Diofant in the framebuffer console (yes, it has unicode support). I works well with greek letters, do some pretty-printing to display formulas. But I doubt it's able to display e.g. chinese texts an non-garbadge. (Perhaps, with other font, which I don't have...)
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.
IIUC https://wiki.archlinux.org/title/Linux_console says that the Linux console uses UTF-8, but we may indeed have to worry about whether the console font is missing π. The same page says the kernel built-in font can render the CP437 character set, which does have π (and dates back to the original IBM PC).
It's possible I misunderstood something, but even the case where the font is missing the glyph, is the worst thing that can happen that a user will see an unrendered glyph if ls
-ing? That doesn't seem that bad, and sounds in line with the vibes of what PEP 11 describes as "won't fix". (And of course, if users report problems du
8000
ring prerelease we can revert)
Edit: note the CP437 stuff probably doesn't apply to U+1d70b which the PR has been updated to use. It might also have worse font support
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.
Terminals cope with missing glyphs already (usually by rendering an ASCII ?
, or a dedicated replacement character).
If the active encoding is sufficiently wrong, they don't even see the raw unicode:
$ ls -d _[bd]*
_build🐸 _deploy🐸
$ LANG=C ls -d _[bd]*
'_build'$'\360\237\220\270' '_deploy'$'\360\237\220\270'
So yeah, as far as easter eggs go, this one is as close to genuinely harmless as they get.
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.
LGTM. Easter eggs are fun, and I can't see any serious harm in doing this, because I seriously doubt anybody will use it for any serious use :-)
I don't have a strong opinion on https://github.com/python/cpython/pull/119536/files#r1788711396.
Sad that the Windows users won't get the Easter egg! (But I don't think that should block merging this 😆)
Misc/NEWS.d/next/Library/2024-05-25-06-19-46.gh-issue-119535.RXmed8.rst
Outdated
Show resolved
Hide resolved
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.
Alex took all I wanted to say!
A
Misc/NEWS.d/next/Library/2024-05-25-06-19-46.gh-issue-119535.RXmed8.rst
Outdated
Show resolved
Hide resolved
Lib/venv/__init__.py
Outdated
|
||
suffixes = ['python', 'python3', f'python3.{sys.version_info[1]}'] | ||
if sys.version_info[:2] == (3, 14): | ||
suffixes.append('pythonπ') |
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.
From @ambv , this should use the mathematical symbol variant of 𝜋, rather than the Greek letter variant:
suffixes.append('pythonπ') | |
suffixes.append('python𝜋') |
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.
@hauntsaninja Let's include this, remove the NEWS, and keep the version check. Thanks!
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.
Thanks, I've made the updates!
(Note that U+1d70b isn't NFKC normalised. I know in some cases non-normalised Unicode can cause issues in filesystems, but I think that's usually about NFC/NFD normalisation)
Can you update the title of the PR? |
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.
Now, everyone: shhh!
This reverts commit 3fc673e.
pythonπ
in Python 3.14 venv's #119535