• 
      

    Add a mixin for setting file_patterns based off tool settings.

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

    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.

    Summary ID
    Add a mixin for setting file_patterns based off tool settings.
    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.
    ea8a0e0df5405ceffa19c9c1ac0d0901d4333be8
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-3.0.x (96b5da2)