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 — bpo-46553: allow bare typing.ClassVar annotations by GBeauregard · Pull Request #30983 · python/cpython

Conversation

@GBeauregard

@GBeauregard GBeauregard commented Jan 28, 2022 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

This is a simple matter of just adding ClassVar to the list of types allowed to be bare before the later call that raises for bare types.

These are used in the wild and covered by dataclasses unit tests.
Several static type checkers support this pattern.

Note we adjust one test from ClassVar[ClassVar] to
ClassVar[ClassVar[int]] so that it still fails. This is surprising, but
not a result of weirdness we're doing in this patch. This is a
limitation of the current way runtime type checking works that this case
is allowed when bare special forms are allowed. For example, before this
patch ClassVar[Final] is a valid runtime annotation despite nesting these
forms being generally disallowed, so it's expected allowing bare ClassVar
makes ClassVar[ClassVar] valid as well.

https://bugs.python.org/issue46553

Sorry, something went wrong.

Uh oh!

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

All reactions
@GBeauregard
typing: allow bare ClassVar annotations
dd54a57
These are used in the wild and covered by dataclasses unit tests.
Several static type checkers support this pattern.

Note we adjust one test from ClassVar[ClassVar] to
ClassVar[ClassVar[int]] so that it still fails. This is surprising, but
not a result of weirdness we're doing in this patch. This is a
limitation of the current way runtime type checking works that this case
is allowed when bare special forms are allowed. For example, before this
patch `ClassVar[Final]` is a valid annotation despite nesting these
forms being generally disallowed. Addressing this limitation could be
future work.
@GBeauregard
GBeauregard requested review from Fidget-Spinner and gvanrossum as code owners January 28, 2022 08:44
@the-knights-who-say-ni the-knights-who-say-ni added the CLA signed label Jan 28, 2022
@bedevere-bot bedevere-bot added the awaiting review label Jan 28, 2022
@GBeauregard GBeauregard changed the title typing: allow bare ClassVar annotations bpo-46553: allow bare typing.ClassVar annotations Jan 28, 2022
blurb-it Bot and others added 2 commits January 28, 2022 08:47
@blurb-it
📜🤖 Added by blurb_it.
25dbc0b
@GBeauregard
Update 2022-01-28-08-47-53.bpo-46553.f7Uc96.rst
3ac306a
gvanrossum
gvanrossum approved these changes Jan 28, 2022
View reviewed changes
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting review labels Jan 28, 2022
@gvanrossum
gvanrossum merged commit 5445e17 into python:main Jan 28, 2022
@bedevere-bot bedevere-bot removed the awaiting merge label Jan 28, 2022
@bedevere-bot

bedevere-bot commented Jan 28, 2022

Copy link
Copy Markdown

@gvanrossum: Please replace # with GH- in the commit message next time. Thanks!

All reactions

Sorry, something went wrong.

Uh oh!

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

@GBeauregard
GBeauregard deleted the fix-classvar-bare branch February 6, 2022 09:03
@JelleZijlstra JelleZijlstra mentioned this pull request Apr 13, 2022
Add typing to 3.11 What's New #91491
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@gvanrossum gvanrossum gvanrossum approved these changes
@Fidget-Spinner Fidget-Spinner Awaiting requested review from Fidget-Spinner

Uh oh!

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

Assignees

No one assigned

Labels

None yet

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.

4 participants

@GBeauregard @bedevere-bot @gvanrossum @the-knights-who-say-ni
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.