• 
      

    Added support for options in @spina, and prepare for new options.

    Review Request #12904 — Created March 22, 2023 and submitted — Latest diff uploaded

    Information

    Spina
    master

    Reviewers

    This updates the @spina decorator to support the kinds of options
    available to base classes. Subclasses can now set names and apply
    mixins.

    A new _prepareSubclass handles the common functionality for the
    mixins, and will soon handle new options as well for both base classes
    and subclasses.

    To support passing in options to the decrator, the bulk of the logic
    from spinaSubclass has been moved into an internal
    _makeSpinaSubclass function. The existing spinaSubclass now chooses
    how to call that and what to return based on whether or not options are
    provided. If options are provided, a function is returned that itself
    take in the decorated class. This works much like how Python decorators
    do.

    We declare types for both variations of the decorator.

    Tested this (along with upcoming changes) in Review Board, ensuring all
    tests run.

    Commits

    Files