Add helpers for deprecating classes.

Review Request #13013 — Created May 4, 2023 and submitted

chipx86
housekeeping
master
beanbag-misc

This introduces ClassDeprecatedMixin and ClassMovedMixin.

ClassDeprecatedMixin marks a class as deprecated, emitting a warning
when directly instantiated or subclassed. Warnings are not emitted when
instantiating or subclassing any subclasses of the class, though.

ClassMovedMixin is similar, but it communicates that a class has moved
elsewhere. It can either take the new class to point to as parameter, or
it can be mixxed into a class that subclasses the new class (useful when
a legacy base class needs to subclass a newer base class).

These make use of __init_subclass__ and keyword arguments in the
subclass list to handle storing state and notifying on subclass. This
gives us metaclass-like functionality without the subclass having to
define state in the class body.

Unit tests pass on all supported versions of Python.

Summary
Add helpers for deprecating classes.
chipx86
chipx86
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to master (02bf47b)
Loading...