• 
      

    Add a mixin for setting file_patterns based off tool settings.

    Review Request #11546 — Created March 22, 2021 and submitted — Latest diff uploaded

    Information

    ReviewBot
    release-3.0.x

    Reviewers

    A common pattern in Review Bot tools is to allow users to set a list of
    supported file extensions. The tools that support this all do it a bit
    differently, in terms of what they expect or allow, and how they set it.

    This change introduces a new mixin, FilePatternsFromSettingMixin,
    which standardizes how this works. It offers three new class attributes
    for a tool:

    • file_extensions_setting - The name of a configurable tool setting
      where custom file extensions are set.

    • file_patterns_setting - The name of a configurable tool setting
      where custom glob file patterns are set.

    • include_default_file_patterns - Whether any class-level defaults for
      file_patterns should always be included in the final result.

    This simplifies tools, leading to fewer differences in behavior, and
    encourages more customization.

    The new implementation handles escaping of file extensions in order to
    avoid issues with patterns, as well as handling inconsistencies in
    lists of extensions and patterns (extra commas, whitespace, or duplicates).

    Unit tests pass on Python 2.7 and 3.x.

    Commits

    Files