Skip to content

v3.13.0

Latest

Choose a tag to compare

@flamehaven01 flamehaven01 released this 08 Nov 12:11
· 1 commit to main since this release

Summary

Fewer placeholder findings on null objects, base-class defaults and framework
hooks that declare their defaults, and a few more stubs caught.

What moves when you upgrade

  • Declared defaults are not stubs. A class named as a null object or a base
    (NullRenderer, BaseFeature), a constant answer in a subclass of such a
    base, an empty @click.group() body, and raise NotImplementedError where a
    base or sibling methods fix the interface no longer produce placeholder
    findings. A log line in front, a constructed success answer or a docstring
    that says "placeholder" keeps the finding.
  • A declared no-op is not a stub. An empty body whose docstring summary
    sentence says no-op or does nothing, in a method whose signature a base fixes
    or a callback registered by value, is no longer reported. The words alone
    never exempt: a denial or demand in that sentence, "placeholder", "for now",
    a declaration only in a later sentence, or a function with no base or
    registration keeps the finding.
  • More stubs are caught. Print or log lines before raise NotImplementedError, a class built from literals with a success mark, a
    swallowed failure followed by a constant the comment calls invented, a
    documented parameter never read, and a function that only builds values it
    throws away.
  • Scores of files with declared defaults go down; the scoring formula, bands
    and JSON keys are unchanged. Analysis cache analysis-cache-v37.
  • The VS Code extension carries the core's version again (3.13.0; it had
    stayed at 3.8.9). Its views read the same JSON fields as before.

Known limitations

  • A base no-op overridden in another file, a no-op hook whose reason is only
    in its docstring, a null object not named as one, and a helper returning a
    fixed symbol can still be reported: the evidence is not in one file or name.
  • An ignored input whose call site is in another module, and a hollow result
    only the meaning of names reveals (a "mail sent" with no recipient), are not
    found.
  • An empty pass body under a registering decorator is treated as declared
    (@register(...) def load_checkpoint(...): pass is not reported).
  • ignored_parameter can report parameters kept by a signature that siblings,
    a framework callback or a base interface fix.
  • return_constant_stub can report functions whose name or docstring says the
    constant is the answer (*_prompt, *_message, a tool acknowledgement).
  • Interface no-ops are reported when their base is outside the module or their
    reason is only in a comment, including a @singledispatch default that
    raises NotImplementedError.