Skip to content

Event(..., delay=..., internal=True) error shows the placeholder id instead of the attribute name #679

Closed

Description

@fgmacedo

Found during the adversarial review of the 3.2.2 release notes.

Declaring go = Event(a.to(b), delay=50, internal=True) correctly raises InvalidDefinition (#668), but the message names the placeholder id: Event __event__<uuid> cannot be both delayed and internal. Event.__new__ runs the check before the class attribute name is known; only an explicit id= shows a useful name. The doctest in the notes hides it with IGNORE_EXCEPTION_DETAIL.

Expected: the error names the event (go), e.g. by deferring the check until the metaclass binds the attribute name.

Related minor: send("go", delay=0) cannot override a declared delay, because 0 is treated as "not given" (falsy check). An explicit delay=0 should win, the same way an explicit internal=False does.

Activity

  1. added this to the 3.2.2 milestone on Oct 13, 2026
  2. added a commit that references this issue on Oct 13, 2026
    2279678
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions