• 
      

    Allow skipping warnings on subclasses and deferring warning classes.

    Review Request #13123 — Created June 22, 2023 and submitted — Latest diff uploaded

    Information

    housekeeping
    master

    Reviewers

    While converting Djblets to housekeeping, we hit an interesting case
    where we needed to allow a deprecated base class to remain a base class
    for now, but to warn when otherwise used. Furthermore, the base class
    was for deprecation warnings, and needed to use a versioned warning
    class when otherwise subclassed.

    To handle that, two additions were made:

    1. Subclasses of a ClassDeprecatedMixin or ClassMovedMixin can now
      set housekeeping_skip_warning = True to avoid a warning being
      emitted.

    2. All warning_cls parameters can now take a callable that returns a
      warning class when it's time to emit. This can help avoid circular
      reference issues in this particular type of case.

    Unit tests pass.

    Tested this with upcoming work on moving Djblets to housekeeping.

    Commits

    Files