← 返回首页
gh-100039: enhance __signature__ to work with str and callables by ethanfurman · Pull Request #100168 · python/cpython · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

gh-100039: enhance __signature__ to work with str and callables#100168

Merged
ethanfurman merged 4 commits into
python:mainfrom
ethanfurman:enum-signature
Dec 16, 2022
Merged

gh-100039: enhance __signature__ to work with str and callables#100168
ethanfurman merged 4 commits into
python:mainfrom
ethanfurman:enum-signature

Conversation

ethanfurman commented Dec 11, 2022
edited by bedevere-bot
Loading

Copy link
Copy Markdown
Member

Callables should be either class- or static-methods. Enum now uses the classmethod version to greatly improve the help given for enums and flags.

Callables should be either class- or static-methods. Enum now uses the classmethod version to greatly improve the help given for enums and flags.
ethanfurman added type-feature A feature request or enhancement stdlib Standard Library Python modules in the Lib/ directory 3.12 only security fixes labels Dec 11, 2022

netlify Bot commented Dec 11, 2022
edited
Loading

Copy link
Copy Markdown

Deploy Preview for python-cpython-preview ready!

Name Link
🔨 Latest commit e6a5cc5
🔍 Latest deploy log https://app.netlify.com/sites/python-cpython-preview/deploys/63957f2292d276000808b8fd
😎 Deploy Preview https://deploy-preview-100168--python-cpython-preview.netlify.app
📱 Preview on mobile Toggle QR Code...



Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

Callables should be either class- or static-methods. Enum now uses the classmethod version to greatly improve the help given for enums and flags.

Copy link
Copy Markdown
Member Author

Note that __signature__ doesn't appear to be documented as a public API, hence the lack of doc updates.

Comment thread Lib/enum.py
@classmethod
def __signature__(cls):
if cls._member_names_:
return '(*values)'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

Why *values? If I understand correctly this corresponds to calls like Color(1), which only accept exactly one argument.

ethanfurman Dec 12, 2022
edited
Loading

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

In 3.12 multiple values are accepted to match multiple values being used to create the member:

class Point(Enum): ORIGIN = 0, 0 >>> Point(0, 0) <Point.ORIGIN: (0, 0))>

ethanfurman merged commit a5a7cea into python:main Dec 16, 2022
carljm added a commit to carljm/cpython that referenced this pull request Dec 16, 2022
* main: pythongh-99540: Constant hash for _PyNone_Type to aid reproducibility (pythonGH-99541) pythongh-100039: enhance __signature__ to work with str and callables (pythonGH-100168) pythongh-99830: asyncio: Document returns of remove_{reader,writer} (python#100302) "Compound statement" docs: Fix with-statement step indexing (python#100286) pythonGH-90043: Handle NaNs in COMPARE_OP_FLOAT_JUMP (pythonGH-100278)
shihai1991 added a commit to shihai1991/cpython that referenced this pull request Dec 18, 2022
* origin/main: (1306 commits) Correct CVE-2020-10735 documentation (python#100306) pythongh-100272: Fix JSON serialization of OrderedDict (pythonGH-100273) pythongh-93649: Split tracemalloc tests from _testcapimodule.c (python#99551) Docs: Use `PY_VERSION_HEX` for version comparison (python#100179) pythongh-97909: Fix markup for `PyMethodDef` members (python#100089) pythongh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (python#99890) pythongh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (python#99890) pythonGH-98831: Add DECREF_INPUTS(), expanding to DECREF() each stack input (python#100205) pythongh-78707: deprecate passing >1 argument to `PurePath.[is_]relative_to()` (pythonGH-94469) pythongh-99540: Constant hash for _PyNone_Type to aid reproducibility (pythonGH-99541) pythongh-100039: enhance __signature__ to work with str and callables (pythonGH-100168) pythongh-99830: asyncio: Document returns of remove_{reader,writer} (python#100302) "Compound statement" docs: Fix with-statement step indexing (python#100286) pythonGH-90043: Handle NaNs in COMPARE_OP_FLOAT_JUMP (pythonGH-100278) Improve stats presentation for calls. (pythonGH-100274) Better stats for `LOAD_ATTR` and `STORE_ATTR` (pythonGH-100295) pythongh-81057: Move the Cached Parser Dummy Name to _PyRuntimeState (python#100277) Document that zipfile's pwd parameter is a `bytes` object (python#100209) pythongh-99767: mark `PyTypeObject.tp_watched` as internal use only in table (python#100271) Fix typo in introduction.rst (python#100266) ...
ethanfurman deleted the enum-signature branch February 1, 2024 01:39
skirpichev added a commit to skirpichev/cpython that referenced this pull request Feb 27, 2024
skirpichev added a commit to skirpichev/cpython that referenced this pull request Mar 1, 2024
skirpichev added a commit to skirpichev/cpython that referenced this pull request Mar 2, 2024
ethanfurman pushed a commit that referenced this pull request Oct 8, 2024
efimov-mikhail pushed a commit to efimov-mikhail/cpython that referenced this pull request Oct 9, 2024
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.12 only security fixes stdlib Standard Library Python modules in the Lib/ directory type-feature A feature request or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Footer

© 2026 GitHub, Inc.