src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11147
dee6e106b4d3
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

# -*- coding: utf-8 -*-

# Copyright (c) 2020 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
#


"""
Module implementing message translations for the code style plugin messages
(miscellaneous part).
"""

from PyQt6.QtCore import QCoreApplication

_miscellaneousMessages = {
    ## Coding line
    "M-101": QCoreApplication.translate(
        "MiscellaneousChecker",
        "coding magic comment not found",
    ),
    "M-102": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unknown encoding ({0}) found in coding magic comment",
    ),
    ## Copyright
    "M-111": QCoreApplication.translate(
        "MiscellaneousChecker",
        "copyright notice not present",
    ),
    "M-112": QCoreApplication.translate(
        "MiscellaneousChecker",
        "copyright notice contains invalid author",
    ),
    ## Shadowed Builtins
    "M-131": QCoreApplication.translate(
        "MiscellaneousChecker",
        '"{0}" is a Python builtin and is being shadowed; '
        "consider renaming the variable",
    ),
    "M-132": QCoreApplication.translate(
        "MiscellaneousChecker",
        '"{0}" is used as an argument and thus shadows a '
        "Python builtin; consider renaming the argument",
    ),
    ## Comprehensions
    "M-180": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary generator - rewrite as a list comprehension",
    ),
    "M-181": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary generator - rewrite as a set comprehension",
    ),
    "M-182": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary generator - rewrite as a dict comprehension",
    ),
    "M-183": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary list comprehension - rewrite as a set comprehension",
    ),
    "M-184": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary list comprehension - rewrite as a dict comprehension",
    ),
    "M-185": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} literal - rewrite as a {1} literal",
    ),
    "M-186": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} literal - rewrite as a {1} literal",
    ),
    "M-188": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} call - rewrite as a literal",
    ),
    "M-189a": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} passed to tuple() - remove the outer call to {1}()",
    ),
    "M-189b": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} passed to tuple() - rewrite as a {1} literal",
    ),
    "M-190a": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} passed to list() - remove the outer call to {1}()",
    ),
    "M-190b": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} passed to list() - rewrite as a {1} literal",
    ),
    "M-191": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary list call - remove the outer call to list()",
    ),
    "M-193a": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} call around {1}() - toggle reverse argument to sorted()",
    ),
    "M-193b": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} call around {1}() - use sorted(..., reverse={2!r})",
    ),
    "M-193c": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} call around {1}()",
    ),
    "M-194": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} call within {1}()",
    ),
    "M-195": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary subscript reversal of iterable within {0}()",
    ),
    "M-196": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} comprehension - rewrite using {0}()",
    ),
    "M-197": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary use of map - use a {0} instead",
    ),
    "M-198": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} passed to dict() - remove the outer call to dict()",
    ),
    "M-199": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary list comprehension passed to {0}() prevents short-circuiting"
        " - rewrite as a generator",
    ),
    "M-200": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unnecessary {0} comprehension - rewrite using dict.fromkeys()",
    ),
    ## Dictionaries with sorted keys
    "M-251": QCoreApplication.translate(
        "MiscellaneousChecker",
        "sort keys - '{0}' should be before '{1}'",
    ),
    ## Property
    "M-260": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the number of arguments for property getter method is wrong"
        " (should be 1 instead of {0})",
    ),
    "M-261": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the number of arguments for property setter method is wrong"
        " (should be 2 instead of {0})",
    ),
    "M-262": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the number of arguments for property deleter method is wrong"
        " (should be 1 instead of {0})",
    ),
    "M-263": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the name of the setter method is wrong (should be '{0}' instead of '{1}')",
    ),
    "M-264": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the name of the deleter method is wrong (should be '{0}' instead of '{1}')",
    ),
    "M-265": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the name of the setter decorator is wrong (should be '{0}' instead of '{1}')",
    ),
    "M-266": QCoreApplication.translate(
        "MiscellaneousChecker",
        "the name of the deleter decorator is wrong (should be '{0}' instead of '{1}')",
    ),
    "M-267": QCoreApplication.translate(
        "MiscellaneousChecker",
        "multiple decorators were used to declare property '{0}'",
    ),
    ## Naive datetime usage
    "M-301": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime()' without 'tzinfo' argument should be avoided",
    ),
    "M-302": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.today()' should be avoided.\n"
        "Use 'datetime.datetime.now(tz=)' instead.",
    ),
    "M-303": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.utcnow()' should be avoided.\n"
        "Use 'datetime.datetime.now(tz=datetime.timezone.utc)' instead.",
    ),
    "M-304": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.utcfromtimestamp()' should be avoided.\n"
        "Use 'datetime.datetime.fromtimestamp(..., tz=datetime.timezone.utc)' instead.",
    ),
    "M-305": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.now()' without 'tz' argument should be avoided",
    ),
    "M-306": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.fromtimestamp()' without 'tz' argument"
        " should be avoided",
    ),
    "M-307": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.strptime()' should be followed by"
        " '.replace(tzinfo=)'",
    ),
    "M-308": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.datetime.fromordinal()' should be avoided",
    ),
    "M-311": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.date()' should be avoided.\n"
        "Use 'datetime.datetime(, tzinfo=).date()' instead.",
    ),
    "M-312": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.date.today()' should be avoided.\n"
        "Use 'datetime.datetime.now(tz=).date()' instead.",
    ),
    "M-313": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.date.fromtimestamp()' should be avoided.\n"
        "Use 'datetime.datetime.fromtimestamp(tz=).date()' instead.",
    ),
    "M-314": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.date.fromordinal()' should be avoided",
    ),
    "M-315": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.date.fromisoformat()' should be avoided",
    ),
    "M-321": QCoreApplication.translate(
        "MiscellaneousChecker",
        "use of 'datetime.time()' without 'tzinfo' argument should be avoided",
    ),
    ## sys.version and sys.version_info usage
    "M-401": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version[:3]' referenced (Python 3.10), use 'sys.version_info'",
    ),
    "M-402": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version[2]' referenced (Python 3.10), use 'sys.version_info'",
    ),
    "M-403": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version' compared to string (Python 3.10), use 'sys.version_info'",
    ),
    "M-411": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version_info[0] == 3' referenced (Python 4), use '>='",
    ),
    "M-412": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'six.PY3' referenced (Python 4), use 'not six.PY2'",
    ),
    "M-413": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version_info[1]' compared to integer (Python 4),"
        " compare 'sys.version_info' to tuple",
    ),
    "M-414": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version_info.minor' compared to integer (Python 4),"
        " compare 'sys.version_info' to tuple",
    ),
    "M-421": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version[0]' referenced (Python 10), use 'sys.version_info'",
    ),
    "M-422": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version' compared to string (Python 10), use 'sys.version_info'",
    ),
    "M-423": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'sys.version[:1]' referenced (Python 10), use 'sys.version_info'",
    ),
    ## Bugbear
    "M-501": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Do not use bare 'except:', it also catches unexpected events like memory"
        " errors, interrupts, system exit, and so on. Prefer excepting specific"
        " exceptions. If you're sure what you're doing, be explicit and write"
        " 'except BaseException:'.",
    ),
    "M-502": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Python does not support the unary prefix increment",
    ),
    "M-503": QCoreApplication.translate(
        "MiscellaneousChecker",
        "assigning to 'os.environ' does not clear the environment -"
        " use 'os.environ.clear()'",
    ),
    "M-504": QCoreApplication.translate(
        "MiscellaneousChecker",
        """using 'hasattr(x, "__call__")' to test if 'x' is callable is"""
        """ unreliable. Use 'callable(x)' for consistent results.""",
    ),
    "M-505": QCoreApplication.translate(
        "MiscellaneousChecker",
        "using .strip() with multi-character strings is misleading. Use .replace(),"
        " .removeprefix(), .removesuffix(), or regular expressions to remove string"
        " fragments.",
    ),
    "M-506": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Do not use mutable data structures for argument defaults. They are created"
        " during function definition time. All calls to the function reuse this one"
        " instance of that data structure, persisting changes between them.",
    ),
    "M-507": QCoreApplication.translate(
        "MiscellaneousChecker",
        "loop control variable {0} not used within the loop body -"
        " start the name with an underscore",
    ),
    "M-508": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Do not perform function calls in argument defaults. The call is performed"
        " only once at function definition time. All calls to your function will reuse"
        " the result of that definition-time function call.  If this is intended,"
        " assign the function call to a module-level variable and use that variable as"
        " a default value.",
    ),
    "M-509": QCoreApplication.translate(
        "MiscellaneousChecker",
        "do not call getattr with a constant attribute value",
    ),
    "M-510": QCoreApplication.translate(
        "MiscellaneousChecker",
        "do not call setattr with a constant attribute value",
    ),
    "M-511": QCoreApplication.translate(
        "MiscellaneousChecker",
        "do not call assert False since python -O removes these calls",
    ),
    "M-512": QCoreApplication.translate(
        "MiscellaneousChecker",
        "return/continue/break inside finally blocks cause exceptions to be silenced."
        " Exceptions should be silenced in except{0} blocks. Control statements can be"
        " moved outside the finally block.",
    ),
    "M-513": QCoreApplication.translate(
        "MiscellaneousChecker",
        "A length-one tuple literal is redundant. Write 'except{1} {0}:' instead of"
        " 'except{1} ({0},):'.",
    ),
    "M-514": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Redundant exception types in 'except{3} ({0}){1}:'. Write 'except{3} {2}{1}:',"
        " which catches exactly the same exceptions.",
    ),
    "M-515": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Result of comparison is not used. This line doesn't do anything. Did you"
        " intend to prepend it with assert?",
    ),
    "M-516": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Cannot raise a literal. Did you intend to return it or raise an Exception?",
    ),
    "M-517": QCoreApplication.translate(
        "MiscellaneousChecker",
        "'assertRaises(Exception)' and 'pytest.raises(Exception)' should "
        "be considered evil. They can lead to your test passing even if the "
        "code being tested is never executed due to a typo. Assert for a more "
        "specific exception (builtin or custom), or use 'assertRaisesRegex' "
        "(if using 'assertRaises'), or add the 'match' keyword argument (if "
        "using 'pytest.raises'), or use the context manager form with a target.",
    ),
    "M-518": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Found useless {0} expression. Consider either assigning it to a variable or"
        " removing it.",
    ),
    "M-519": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Use of 'functools.lru_cache' or 'functools.cache' on methods can lead to"
        " memory leaks. The cache may retain instance references, preventing garbage"
        " collection.",
    ),
    "M-520": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Found for loop that reassigns the iterable it is iterating with each"
        " iterable value.",
    ),
    "M-521": QCoreApplication.translate(
        "MiscellaneousChecker",
        "f-string used as docstring. This will be interpreted by python as a joined"
        " string rather than a docstring.",
    ),
    "M-522": QCoreApplication.translate(
        "MiscellaneousChecker",
        "No arguments passed to 'contextlib.suppress'. No exceptions will be"
        " suppressed and therefore this context manager is redundant.",
    ),
    "M-523": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Function definition does not bind loop variable '{0}'.",
    ),
    "M-524": QCoreApplication.translate(
        "MiscellaneousChecker",
        "{0} is an abstract base class, but none of the methods it defines are"
        " abstract. This is not necessarily an error, but you might have forgotten to"
        " add the @abstractmethod decorator, potentially in conjunction with"
        " @classmethod, @property and/or @staticmethod.",
    ),
    "M-525": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Exception '{0}' has been caught multiple times. Only the first except{1} will"
        " be considered and all other except{1} catches can be safely removed.",
    ),
    "M-526": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Star-arg unpacking after a keyword argument is strongly discouraged,"
        " because it only works when the keyword parameter is declared after all"
        " parameters supplied by the unpacked sequence, and this change of ordering can"
        " surprise and mislead readers.",
    ),
    "M-527": QCoreApplication.translate(
        "MiscellaneousChecker",
        "{0} is an empty method in an abstract base class, but has no abstract"
        " decorator. Consider adding @abstractmethod.",
    ),
    "M-528": QCoreApplication.translate(
        "MiscellaneousChecker",
        "No explicit stacklevel argument found. The warn method from the"
        " warnings module uses a stacklevel of 1 by default. This will only show a"
        " stack trace for the line on which the warn method is called."
        " It is therefore recommended to use a stacklevel of 2 or"
        " greater to provide more information to the user.",
    ),
    "M-529": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Using 'except{0} ():' with an empty tuple does not handle/catch "
        "anything. Add exceptions to handle.",
    ),
    "M-530": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Except handlers should only be names of exception classes",
    ),
    "M-531": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Using the generator returned from 'itertools.groupby()' more than once"
        " will do nothing on the second usage. Save the result to a list, if the"
        " result is needed multiple times.",
    ),
    "M-532": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Possible unintentional type annotation (using ':'). Did you mean to"
        " assign (using '=')?",
    ),
    "M-533": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Set should not contain duplicate item '{0}'. Duplicate items will be replaced"
        " with a single item at runtime.",
    ),
    "M-534": QCoreApplication.translate(
        "MiscellaneousChecker",
        "re.{0} should get '{1}' and 'flags' passed as keyword arguments to avoid"
        " confusion due to unintuitive argument positions.",
    ),
    "M-535": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Static key in dict comprehension: {0!r}.",
    ),
    "M-536": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Don't except 'BaseException' unless you plan to re-raise it.",
    ),
    "M-537": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Class '__init__' methods must not return or yield any values.",
    ),
    "M-539": QCoreApplication.translate(
        "MiscellaneousChecker",
        "ContextVar with mutable literal or function call as default. This is only"
        " evaluated once, and all subsequent calls to `.get()` will return the same"
        " instance of the default.",
    ),
    "M-540": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Exception with added note not used. Did you forget to raise it?",
    ),
    "M-541": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Repeated key-value pair in dictionary literal.",
    ),
    ## Bugbear, opininonated
    "M-569": QCoreApplication.translate(
        "MiscellaneousChecker",
        "Editing a loop's mutable iterable often leads to unexpected results/bugs.",
    ),
    ## Bugbear++
    "M-581": QCoreApplication.translate(
        "MiscellaneousChecker",
        "unncessary f-string",
    ),
    "M-582": QCoreApplication.translate(
        "MiscellaneousChecker",
        "cannot use 'self.__class__' as first argument of 'super()' call",
    ),
    ## Format Strings
    "M-601": QCoreApplication.translate(
        "MiscellaneousChecker",
        "found {0} formatter",
    ),
    "M-611": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format string does contain unindexed parameters",
    ),
    "M-612": QCoreApplication.translate(
        "MiscellaneousChecker",
        "docstring does contain unindexed parameters",
    ),
    "M-613": QCoreApplication.translate(
        "MiscellaneousChecker",
        "other string does contain unindexed parameters",
    ),
    "M-621": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call uses too large index ({0})",
    ),
    "M-622": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call uses missing keyword ({0})",
    ),
    "M-623": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call uses keyword arguments but no named entries",
    ),
    "M-624": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call uses variable arguments but no numbered entries",
    ),
    "M-625": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call uses implicit and explicit indexes together",
    ),
    "M-631": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call provides unused index ({0})",
    ),
    "M-632": QCoreApplication.translate(
        "MiscellaneousChecker",
        "format call provides unused keyword ({0})",
    ),
    ## Future statements
    "M-701": QCoreApplication.translate(
        "MiscellaneousChecker",
        "expected these __future__ imports: {0}; but only got: {1}",
    ),
    "M-702": QCoreApplication.translate(
        "MiscellaneousChecker",
        "expected these __future__ imports: {0}; but got none",
    ),
    ## Gettext
    "M-711": QCoreApplication.translate(
        "MiscellaneousChecker",
        "gettext import with alias _ found: {0}",
    ),
    ##~ print() statements
    "M-801": QCoreApplication.translate(
        "MiscellaneousChecker",
        "print statement found",
    ),
    ## one element tuple
    "M-811": QCoreApplication.translate(
        "MiscellaneousChecker",
        "one element tuple found",
    ),
    ## Mutable Defaults
    "M-821": QCoreApplication.translate(
        "MiscellaneousChecker",
        "mutable default argument of type {0}",
    ),
    "M-822": QCoreApplication.translate(
        "MiscellaneousChecker",
        "mutable default argument of type {0}",
    ),
    "M-823": QCoreApplication.translate(
        "MiscellaneousChecker",
        "mutable default argument of function call '{0}'",
    ),
    ##~ return statements
    "M-831": QCoreApplication.translate(
        "MiscellaneousChecker",
        "None should not be added at any return if function has no return"
        " value except None",
    ),
    "M-832": QCoreApplication.translate(
        "MiscellaneousChecker",
        "an explicit value at every return should be added if function has"
        " a return value except None",
    ),
    "M-833": QCoreApplication.translate(
        "MiscellaneousChecker",
        "an explicit return at the end of the function should be added if"
        " it has a return value except None",
    ),
    "M-834": QCoreApplication.translate(
        "MiscellaneousChecker",
        "a value should not be assigned to a variable if it will be used as a"
        " return value only",
    ),
    ## line continuation
    "M-841": QCoreApplication.translate(
        "MiscellaneousChecker",
        "prefer implied line continuation inside parentheses, "
        "brackets and braces as opposed to a backslash",
    ),
    ## implicitly concatenated strings
    "M-851": QCoreApplication.translate(
        "MiscellaneousChecker",
        "implicitly concatenated string or bytes literals on one line",
    ),
    "M-852": QCoreApplication.translate(
        "MiscellaneousChecker",
        "implicitly concatenated string or bytes literals over continuation line",
    ),
    "M-853": QCoreApplication.translate(
        "MiscellaneousChecker",
        "explicitly concatenated string or bytes should be implicitly concatenated",
    ),
    ## commented code
    "M-891": QCoreApplication.translate(
        "MiscellaneousChecker",
        "commented code lines should be removed",
    ),
    ## structural pattern matching
    "M-901": QCoreApplication.translate(
        "MiscellaneousChecker",
        "matching a default value should raise a `ValueError` exception",
    ),
    "M-902": QCoreApplication.translate(
        "MiscellaneousChecker",
        "matching a default value should not contain a `return` statement before "
        "raising a `ValueError` exception",
    ),
}

_miscellaneousMessagesSampleArgs = {
    ## Coding line
    "M-102": ["enc42"],
    ## Shadowed Builtins
    "M-131": ["list"],
    "M-132": ["list"],
    ## Comprehensions
    "M-185": ["list", "set"],
    "M-186": ["list", "dict"],
    "M-188": ["list"],
    "M-189a": ["tuple", "tuple"],
    "M-189b": ["list", "tuple"],
    "M-190a": ["list", "list"],
    "M-190b": ["tuple", "list"],
    "M-193a": ["reversed", "sorted"],
    "M-193b": ["reversed", "sorted", "True"],
    "M-193c": ["list", "sorted"],
    "M-194": ["list", "sorted"],
    "M-195": ["sorted"],
    "M-196": ["list"],
    "M-197": ["list"],
    "M-198": ["dict comprehension"],
    "M-199": ["any"],
    "M-200": ["dict"],
    ## Dictionaries with sorted keys
    "M-251": ["bar", "foo"],
    ## Property
    "M-260": [2],
    "M-261": [1],
    "M-262": [2],
    "M-263": ["foo", "bar"],
    "M-264": ["foo", "bar"],
    "M-265": ["foo", "bar"],
    "M-266": ["foo", "bar"],
    "M-267": ["foo"],
    ## Bugbear
    "M-507": ["x"],
    "M-512": [""],
    "M-513": ["Exception", ""],
    "M-514": ["OSError, IOError", " as err", "OSError", ""],
    "M-518": ["List"],
    "M-523": ["x"],
    "M-524": ["foobar"],
    "M-525": ["OSError", ""],
    "M-527": ["foo"],
    "M-529": [""],
    "M-533": ["foo"],
    "M-534": ["split", "maxsplit"],
    "M-535": ["foo"],
    ## Format Strings
    "M-601": ["%s"],
    "M-621": [5],
    "M-622": ["foo"],
    "M-631": [5],
    "M-632": ["foo"],
    ## Future statements
    "M-701": ["print_function, unicode_literals", "print_function"],
    "M-702": ["print_function, unicode_literals"],
    ## Gettext
    "M-711": ["lgettext"],
    ## Mutable Defaults
    "M-821": ["Dict"],
    "M-822": ["Call"],
    "M-823": ["dict"],
}

eric ide

mercurial