GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-100039: enhance __signature__ to work with str and callables by ethanfurman · Pull Request #100168 · python/cpython

Conversation

@ethanfurman

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

Uh oh!

There was an error while loading. Please reload this page.

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.

  • Issue: [Enum] __text_signature__ of EnumType.__call__ and derivatives #100039

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ethanfurman
enhance __signature__ to work with str and callables
d2df0c6
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 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
@bedevere-bot bedevere-bot mentioned this pull request Dec 11, 2022
[Enum] __text_signature__ of EnumType.__call__ and derivatives #100039
Closed
@netlify

netlify Bot commented Dec 11, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

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...

QR Code

Use your smartphone camera to open QR code link.

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot added the awaiting core review label Dec 11, 2022
@ethanfurman
ethanfurman requested review from JelleZijlstra, iritkatriel, larryhastings and mdboom December 11, 2022 05:09
ethanfurman added 3 commits December 10, 2022 22:51
@ethanfurman
enhance __signature__ to work with str and callables
86d93cd
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
fix enum test
0ea1d38
@ethanfurman
Merge remote-tracking branch 'refs/remotes/origin/enum-signature' int…
e6a5cc5
…o enum-signature
@ethanfurman

ethanfurman commented Dec 11, 2022

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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

JelleZijlstra
JelleZijlstra reviewed Dec 12, 2022
View reviewed changes
Comment thread Lib/enum.py
@classmethod
def __signature__(cls):
if cls._member_names_:
return '(*values)'

@JelleZijlstra JelleZijlstra Dec 12, 2022

Copy link
Copy Markdown
Member

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.

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

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@ethanfurman ethanfurman Dec 12, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

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.

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))>

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ethanfurman
ethanfurman merged commit a5a7cea into python:main Dec 16, 2022
@bedevere-bot bedevere-bot removed the awaiting core review label Dec 16, 2022
carljm added a commit to carljm/cpython that referenced this pull request Dec 16, 2022
@carljm
Merge branch 'main' into fastmock
1b6241a
* 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
@shihai1991
Merge remote-tracking branch 'origin/main' into bpo_34697
2878571
* 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
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
pythongh-115937: remove extra processing for the __signature__ attribute
bf8b07f
This is an alternative to python#100168.
This was referenced Feb 27, 2024
gh-115937: remove extra processing for the __signature__ attribute #115984
Closed
Incorrect description of the __signature__ attribute in docs #115937
Closed
skirpichev added a commit to skirpichev/cpython that referenced this pull request Mar 1, 2024
@skirpichev
pythongh-116110: remove extra processing for the __signature__ attribute
1f3c7f3
This is an alternative to python#100168.
skirpichev added a commit to skirpichev/cpython that referenced this pull request Mar 2, 2024
@skirpichev
pythongh-116110: remove extra processing for the __signature__ attribute
816ac0d
This is an alternative to python#100168.
@skirpichev skirpichev mentioned this pull request Mar 2, 2024
gh-116110: remove extra processing for the __signature__ attribute #116234
Merged
ethanfurman pushed a commit that referenced this pull request Oct 8, 2024
@skirpichev
gh-116110: remove extra processing for the __signature__ attribute (G…
eafd14f
…H-116234)

This is an alternative to GH-100168.
efimov-mikhail pushed a commit to efimov-mikhail/cpython that referenced this pull request Oct 9, 2024
@skirpichev @efimov-mikhail
pythongh-116110: remove extra processing for the __signature__ attrib…
3b823fd
…ute (pythonGH-116234)

This is an alternative to pythonGH-100168.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@JelleZijlstra JelleZijlstra JelleZijlstra left review comments
@mdboom mdboom Awaiting requested review from mdboom
@larryhastings larryhastings Awaiting requested review from larryhastings
@iritkatriel iritkatriel Awaiting requested review from iritkatriel

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

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

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@ethanfurman @JelleZijlstra @bedevere-bot
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.