Files
openide/python/python-psi-impl/resources/messages/PyPsiBundle.properties
Mikhail Golubev 97b22aaa13 PY-42200 Support parenthesized context managers in Python 3.9+
In case of syntactic ambiguity with previous versions of the grammar, such as
"with (expr)" or "with (expr1, expr2)", PyWithStatement is still parsed as
having its own parentheses, not a parenthesized expression or a tuple as
a single context expression. The latter case, even though syntactically legal,
is still reported by the compatibility inspection in Python <3.9.

These changes also include proper formatter and editing support (e.g. not
inserting backslashes on line breaks inside parentheses), as well as
Complete Current Statement, which now takes possible parentheses into account
while inserting a missing colon.

The changes in the formatter are somewhat ad-hoc, intended to minimize the effect
on other constructs. "With" statement is somewhat special in the sense that it's
the first compound statement (having a statement list) with its own list-like
part in parentheses.

Existing tests on with statement processing were expanded and uniformly named.

Co-authored-by: Semyon Proshev <semyon.proshev@jetbrains.com>

GitOrigin-RevId: 15c33e97f177e81b5ed23891063555df016feb05
2022-05-04 12:31:37 +00:00

1202 lines
73 KiB
Properties

# Message we display for inspection if user uses custom class type members that do not exist
custom.type.mimic.name=Dynamic class based on {0}
### Refactoring
refactoring.extract.method.error.interrupted.execution.flow=Cannot perform refactoring when execution flow is interrupted
refactoring.extract.method.error.star.import=Cannot perform refactoring with a star import statement inside a code block
refactoring.extract.method.error.yield=Cannot perform refactoring with a 'yield' statement inside a code block
refactoring.move.module.members.error.cannot.place.elements.into.nonpython.file=Cannot place elements into a non-Python file
# introduce
refactoring.introduce.name.error=Incorrect name
refactoring.introduce.selection.error=Cannot perform refactoring using the selected elements
# introduce variable
refactoring.introduce.variable.dialog.title=Extract Variable
refactoring.introduce.variable.scope.error=The name conflicts with an existing variable or parameter
# introduce constant
refactoring.introduce.constant.dialog.title=Extract Constant
refactoring.introduce.constant.scope.error=The name is already declared in the scope
refactoring.introduce.constant.cannot.extract.selected.expression=Selected expression cannot be extracted into a constant
# extract method
refactoring.extract.method=Extract method
refactoring.extract.method.error.bad.selection=Cannot perform the Extract Method refactoring using the selected elements
refactoring.extract.method.error.name.clash=The method name clashes with an already existing name
refactoring.extract.method.error.returns=Cannot extract a method with return instructions inside a code fragment
refactoring.extract.method.error.local.variable.modifications=Cannot perform refactoring from the expression with local variable modifications inside a code fragment.
refactoring.extract.method.error.local.variable.modifications.and.returns=Cannot perform refactoring from the expression with local variables modifications and return instructions inside a code fragment
refactoring.extract.method.error.empty.fragment=Cannot perform refactoring from an empty code fragment
refactoring.extract.method.error.class.level=Cannot perform refactoring at a class level
# inline
refactoring.inline.local.multiassignment=Definition is in multi-assign
# inline function
refactoring.inline.function.title=Inline Function
refactoring.inline.this.only=Inline this invocation only and keep the declaration
refactoring.inline.function=Inline the function {0}
refactoring.inline.method=Inline the method {0}
refactoring.inline.all.keep.declaration=Inline all invocations and keep the declaration
refactoring.inline.all.remove.declaration=Inline all invocations and remove the declaration
refactoring.inline.all.border.title=Inline
refactoring.inline.label.function=Function {0}
refactoring.inline.label.method=Method {0}
refactoring.name.label.text={0} has {1} occurrence{2, choice, 0#|1#s}
refactoring.inline.function.command.name=Inlining {0}
refactoring.inline.function.function.to.inline=Function to inline
refactoring.inline.function.invocations.to.be.inlined=Invocations to be inlined in {0} files
refactoring.inline.function.is.decorator=The function {0} is used as a decorator and cannot be inlined. The function definition will not be removed
refactoring.inline.function.is.reference=The function {0} is used as a reference and cannot be inlined. The function definition will not be removed
refactoring.inline.function.uses.unpacking=The function {0} uses argument unpacking and cannot be inlined. The function definition will not be removed
refactoring.inline.function.generator=Cannot inline generators
refactoring.inline.function.async=Cannot inline async functions
refactoring.inline.function.constructor=Cannot inline constructor calls
refactoring.inline.function.builtin=Cannot inline builtin functions
refactoring.inline.function.special.method=Cannot inline special methods
refactoring.inline.function.skeleton.only=Cannot inline a function from the binary module
refactoring.inline.function.decorator=Cannot inline functions with decorators
refactoring.inline.function.self.referrent=Cannot inline functions that reference themselves
refactoring.inline.function.star=Cannot inline functions with * arguments
refactoring.inline.function.overrides.method=Cannot inline methods that override other methods
refactoring.inline.function.is.overridden=Cannot inline overridden methods
refactoring.inline.function.global=Cannot inline functions with global variables
refactoring.inline.function.nonlocal=Cannot inline functions with nonlocal variables
refactoring.inline.function.nested=Cannot inline functions with another function declaration
refactoring.inline.function.interrupts.flow=Cannot inline functions that interrupt control flow
refactoring.progress.title.updating.existing.usages=Updating existing usages...
### Annotators ###
ANN.deleting.none=Deleting None
ANN.assign.to.none=Assignment to None
ANN.cant.assign.to.call=Cannot assign to function call
ANN.cant.delete.call=Cannot delete function call
ANN.cant.aug.assign.to.generator=Augmented assign to generator expression not possible
ANN.cant.aug.assign.to.tuple.or.generator=Augmented assign to tuple literal or generator expression not possible
ANN.cant.assign.to.generator=Assign to generator expression not possible
ANN.cant.assign.to.operator=Cannot assign to operator
ANN.cant.assign.to.parens=Cannot assign to ()
ANN.cant.aug.assign.to.list.or.comprh=Augmented assign to list literal or comprehension not possible
ANN.cant.assign.to.comprh=Cannot assign to list comprehension
ANN.cant.assign.to.dict.comprh=Cannot assign to dict comprehension
ANN.cant.assign.to.set.comprh=Cannot assign to set comprehension
ANN.cant.aug.assign.to.comprh=Augmented assign to list comprehension not possible
ANN.cant.aug.assign.to.dict.comprh=Augmented assign to dict comprehension not possible
ANN.cant.aug.assign.to.set.comprh=Augmented assign to set comprehension not possible
ANN.cant.aug.assign.starred.assignment.target.must.be.in.list.or.tuple=Starred assignment target must be in a list or tuple
ANN.cant.assign.to.literal=Cannot assign to literal
ANN.cant.delete.literal=Cannot delete literal
ANN.cant.assign.to.lambda=Cannot assign to lambda
ANN.break.outside.loop='break' outside loop
ANN.continue.outside.loop='continue' outside loop
ANN.duplicate.param.name=duplicate parameter name
ANN.starred.param.after.kwparam=* parameter after ** parameter
ANN.regular.param.after.vararg=regular parameter after * parameter
ANN.regular.param.after.keyword=regular parameter after ** parameter
ANN.non.default.param.after.default=non-default parameter follows default parameter
ANN.named.parameters.after.star=named parameters must follow bare *
ANN.named.parameters.before.slash=named parameters must precede bare /
ANN.tuple.py3=tuple parameter unpacking is not supported in Python 3
ANN.multiple.args=multiple * parameters are not allowed
ANN.multiple.kwargs=multiple ** parameters are not allowed
ANN.multiple.slash=multiple / parameters are not allowed
ANN.slash.param.after.vararg=/ parameter must precede * parameter
ANN.slash.param.after.keyword=/ parameter must precede ** parameter
ANN.star.import.at.top.only='import *' only allowed at module level
ANN.missing.closing.quote=Missing closing quote [{0}]
ANN.missing.closing.triple.quotes=Missing closing triple quotes
ANN.default.except.must.be.last=default 'except:' must be last
ANN.no.exception.to.reraise=No exception to reraise
ANN.name.used.both.as.global.and.param=Name ''{0}'' is used both as a parameter and as a global
ANN.assignment.to.keyword=Assignment to keyword
ANN.cannot.assign.to.debug=Cannot assign to __debug__
ANN.unparenthesized.assignment.expression.statement=Unparenthesized assignment expressions are prohibited at the top level of an expression statement
ANN.unparenthesized.assignment.expression.value=Unparenthesized assignment expressions are prohibited at the top level of the right hand side of an assignment statement
ANN.assignment.expressions.within.a.comprehension.cannot.be.used.in.a.class.body=Assignment expressions within a comprehension cannot be used in a class body
ANN.assignment.expression.as.a.target=Assignment expression cannot be used as a target here
ANN.assignment.expression.in.an.iterable=Assignment expression cannot be used in a comprehension iterable
ANN.ignore.errors.like.this=Ignore errors like this
ANN.function.cannot.be.async=function \"{0}\" cannot be async
ANN.python.does.not.support.yield.from.inside.async.functions=Python does not support 'yield from' inside async functions
ANN.yield.outside.of.function='yield' outside of function
ANN.non.empty.return.inside.asynchronous.generator=non-empty 'return' inside asynchronous generator
ANN.return.outside.of.function='return' outside of function
ANN.can.t.use.starred.expression.here=Can't use starred expression here
ANN.illegal.target.for.variable.annotation=An illegal target for a variable annotation
ANN.variable.annotation.cannot.be.combined.with.tuple.unpacking=A variable annotation cannot be combined with tuple unpacking
ANN.variable.annotation.cannot.be.used.in.assignment.with.multiple.targets=A variable annotation cannot be used in assignment with multiple targets
ANN.generator.expression.must.be.parenthesized.if.not.sole.argument=Generator expression must be parenthesized if not sole argument
ANN.fstrings.expression.fragment.inside.fstring.nested.too.deeply=Expression fragment inside an f-string is nested too deeply
ANN.fstrings.missing.conversion.character=A conversion character is expected: should be one of 's', 'r', 'a'
ANN.fstrings.illegal.conversion.character=An illegal conversion character ''{0}'': should be one of ''s'', ''r'', ''a''
ANN.fstrings.expression.fragments.cannot.include.backslashes=Expression fragments inside f-strings cannot include backslashes
ANN.fstrings.single.right.brace.not.allowed.inside.fstrings=A single '}' is not allowed inside f-strings
ANN.fstrings.expression.fragments.cannot.include.line.comments=Expression fragments inside f-strings cannot include line comments
ANN.patterns.single.star.pattern.cannot.be.used.outside.sequence.patterns=Single star pattern cannot be used outside sequence patterns
ANN.patterns.double.star.pattern.cannot.be.used.outside.mapping.patterns=Double star pattern cannot be used outside mapping patterns
ANN.patterns.invalid.complex.number.literal=Invalid complex number literal
ANN.patterns.key.pattern.can.only.be.value.or.literal.pattern=Key pattern can only be a value pattern or a literal pattern
ANN.patterns.pattern.makes.remaining.alternatives.unreachable=Pattern makes remaining alternatives unreachable
ANN.patterns.pattern.makes.remaining.case.clauses.unreachable=Pattern makes remaining case clauses unreachable
ANN.patterns.pattern.does.not.bind.names=Pattern does not bind {0,choice,1#name|2#names} {1}
ANN.patterns.attribute.name.is.repeated=Attribute name ''{0}'' is repeated
ANN.patterns.name.already.bound=Name ''{0}'' is already bound
### parsing
PARSE.expected.expression=Expression expected
PARSE.expected.rbracket=']' expected
PARSE.expected.expr.or.comma.or.bracket=Expected expression, ',' or ']'
PARSE.expected.in='in' expected
PARSE.expected.for.or.bracket=']' or 'for' expected
PARSE.expected.comma=',' expected
PARSE.expected.colon=':' expected
PARSE.expected.rpar=')' expected
PARSE.expected.lpar='(' expected
PARSE.expected.rbrace='}' expected
PARSE.expected.tick='`' (backtick) expected
PARSE.expected.name=Name expected
PARSE.expected.colon.or.rbracket=':' or ']' expected
PARSE.expected.comma.or.rpar=',' or ')' expected
PARSE.expected.else='else' expected
PARSE.expected.identifier=Identifier expected
PARSE.expected.comma.lpar.rpar=',' or '(' or ')' expected
PARSE.expected.statement.break=Statement break expected
PARSE.expected.@.or.def='@' or 'def' expected
PARSE.expected.formal.param.name=Formal parameter name expected
PARSE.0.expected=''{0}'' expected
PARSE.expected.ellipsis='...' expected
PARSE.string.literal.expected=string literal expected
PARSE.expected.symbols=''{0}'' or ''{1}'' expected
PARSE.expected.symbols.first.quotation=''{0}'' or {1} expected
PARSE.expected.symbols.second.quotation={0} or ''{1}'' expected
PARSE.declarator.should.be.empty=declarator should be empty
PARSE.string.literal=string literal
PARSE.newline.expected=newline expected
PARSE.eq.expected='=' expected
PARSE.from.expected='from' expected
PARSE.gt.expected='>' expected
PARSE.expected.fstring.quote={0} expected
PARSE.expected.fstring.rbrace='}' expected
PARSE.expected.fstring.colon.or.rbrace=: or '}' expected
PARSE.expected.fstring.type.conversion.or.colon.or.rbrace=Type conversion, ':' or '}' expected
PARSE.single.star.parameter.not.supported.py2=Single star parameter is not supported in Python 2
PARSE.async.keyword.not.expected.here='async' keyword is not expected here
PARSE.keyword.cannot.be.used.as.identifier.py2=''{0}'' keyword can''t be used as an identifier in Python 2
PARSE.expected.number=Number expected
PARSE.expected.case.clause=Case clause expected
PARSE.expected.pattern=Pattern expected
PARSE.expected.name.or.wildcard=Name or '_' expected
statement.expected.found.0=Statement expected, found {0}
unexpected.indent=Unexpected indent
unindent.does.not.match.any.outer.indent=Unindent does not match any outer indentation level
except.or.finally.expected='except' or 'finally' expected
expected.statement=Statement expected
indent.expected=Indent expected
cannot.assign.to.yield.expression=Cannot assign to 'yield' expression
end.of.statement.expected=End of statement expected
import.expected='import' expected
def.or.with.or.for.expected='def' or 'with' or 'for' expected
rbracket.or.comma.expected=']' or ',' expected
unexpected.expression.syntax=Unexpected expression syntax
tuple.expression.expected=Tuple expression expected
value.expression.expected=Value expression expected
unexpected.expression.part=Unexpected expression part
unexpected.f.string.token=Unexpected f-string token
can.t.assign.to.await.expression=Cannot assign to await expression
for.expected='for' expected
rarrow.expected='->' expected
unexpected.tokens=Unexpected tokens
PARSE.function.type.annotations.py2=Type annotations are unsupported in Python 2
PARSE.function.return.type.annotations.py2=Return type annotations are unsupported in Python 2
PARSE.console.multiline.magic.warn=Multiline magic cannot be used as an expression
PARSE.console.help.request.warn=IPython introspection syntax error
### quick doc generator
QDOC.module.path.unknown=(Module path is unknown)
QDOC.epydoc.python2.sdk.not.found=You need a configured Python 2 SDK to render <a href='http://epydoc.sourceforge.net/'>Epydoc</a> docstrings
QDOC.local.sdk.not.found=You need a configured local Python SDK to render docstrings.
QDOC.assigned.to=Assigned to:
QDOC.documentation.is.copied.from=Documentation is copied from:
QDOC.accessor.kind=Accessor kind:
QDOC.raises=Raises:
QDOC.keyword.args=Keyword args:
QDOC.returns=Returns:
QDOC.params=Params:
### Formatter
formatter.panel.dict.alignment.do.not.align=Do not align
formatter.panel.dict.alignment.align.on.colon=Align on colon
formatter.panel.dict.alignment.align.on.value=Align on value
ignore.overridden.functions=Ignore overridden functions
### Intentions ###
INTN.category.python=Python
INTN.replace.octal.numeric.literal=Convert octal numeric literal to supported form
INTN.convert.builtin.import=Convert builtin module import to supported form
QFIX.NAME.convert.builtin=Convert builtin module import
INTN.NAME.convert.import.unqualify=Convert 'import module' to 'from module import'
INTN.convert.to.from.import=Convert to ''from {0} import {1}''
INTN.NAME.convert.import.qualify=Convert 'from module import' to 'import module'
INTN.convert.to.plain.import=Convert to ''import {0}''
INTN.convert.except.to=Convert 'except exceptClass, Target' to 'except exceptClass as Target'
INTN.NAME.toggle.import.alias=Switch using import aliases
INTN.add.import.alias=Add alias
INTN.add.import.alias.to.name=Add alias to ''{0}''
INTN.add.import.alias.dialog.message=Alias for ''{0}'':
INTN.add.import.alias.title=Add Alias
INTN.remove.import.alias=Remove alias ''{0}''
INTN.replace.noteq.operator=Replace not equal operator
QFIX.NAME.remove.string.prefix=Remove prefix
QFIX.remove.string.prefix=Remove leading {0}
INTN.replace.backquote.expression=Replace backquote expression
INTN.replace.raise.statement=Convert raise statement to supported form
INTN.replace.list.comprehensions=Convert list comprehensions to supported form
# PyConvertToFStringIntention
INTN.convert.to.fstring.literal=Convert to f-string literal
INTN.replace.with.method=Replace with str.format method call
# ConvertFormatOperatorToMethodIntention
INTN.format.operator.to.method=Convert format operator to 'str.format' method call
INTN.replace.list.comprehensions.with.for=Convert list comprehensions to 'for' loop
INTN.NAME.split.if=Split 'if' statement
INTN.split.if=Split into 2 'if' statements
INTN.NAME.negate.comparison=Negate comparison
INTN.negate.comparison=Negate ''{0}'' to ''{1}''
INTN.string.concatenation.to.format=Replace string concatenation with 'str.format'
INTN.replace.plus.with.format.operator=Replace + with string formatting operator
INTN.replace.plus.with.str.format=Replace + with str.format method call
INTN.NAME.flip.comparison=Flip comparison
INTN.flip.comparison=Flip ''{0}''
INTN.flip.comparison.to.operator=Flip ''{0}'' to ''{1}''
INTN.NAME.join.if=Join 'if' statements
INTN.join.if=Join two 'if' statements
INTN.convert.dict.constructor.to.dict.literal=Convert dict constructor to dict literal
INTN.convert.dict.literal.to.dict.constructor=Convert dict literal to dict constructor
INTN.quoted.string=Convert single-quoted to double-quoted strings and vice versa
INTN.quoted.string.single.to.double=Convert single-quoted string to double-quoted string
INTN.quoted.string.double.to.single=Convert double-quoted string to single-quoted string
INTN.convert.lambda.to.function=Convert lambda to function
INTN.convert.variadic.param=Convert variadic parameters to normal
# PyConvertTripleQuotedStringIntention
INTN.triple.quoted.string=Convert triple-quoted string to single-quoted string
# PyBaseConvertCollectionLiteralIntention
INTN.NAME.convert.collection.literal=Convert collection to {0}
INTN.convert.collection.literal=Convert {0} to {1}
# PyConvertTypeCommentToVariableAnnotation
INTN.NAME.convert.type.comment.to.variable.annotation=Convert type comment to variable annotation
INTN.convert.type.comment.to.variable.annotation=Convert to a variable annotation
INTN.NAME.demorgan.law=De Morgan's law
# PyTransformConditionalExpressionIntention
INTN.transform.into.if.else.statement=Transform conditional expressions into 'if/else' statements
# PyGenerateDocstringIntention
INTN.NAME.insert.docstring.stub=Insert docstring stub
INTN.insert.docstring.stub=Insert a documentation string stub
INTN.add.parameters.to.docstring=Add parameters to docstring
#SpecifyTypeInDocstringIntention
INTN.NAME.specify.type.in.docstring=Specify type for reference in docstring
INTN.specify.type.in.docstring=Specify type for the reference in docstring
INTN.specify.return.type.in.docstring=Specify return type in docstring
#SpecifyTypeInPy3AnnotationsIntention
INTN.NAME.specify.type.in.annotation=Specify type for reference using annotation
INTN.specify.type.in.annotation=Specify type for the reference using annotation
INTN.specify.return.type.in.annotation=Specify return type using annotation
#PyAnnotateTypesIntention
INTN.NAME.add.type.hints.for.function=Add type hints for function
INTN.add.type.hints.for.function=Add type hints for function ''{0}''
# PyAnnotateVariableTypeIntention
INTN.NAME.add.type.hint.for.variable=Add type hint for variable
INTN.add.type.hint.for.variable=Add type hint for variable ''{0}''
INTN.add.type.hint.for.variable.PEP484.incompatible.type=Type ''{0}'' cannot be expressed inline in PEP 484 format
#TypeAssertionIntention
INTN.insert.assertion=Insert type assertion
#PyYieldFromIntention
INTN.yield.from=Transform explicit iterations with 'yield' into 'yield from' expressions
#PyConvertStaticMethodToFunctionIntention
INTN.convert.static.method.to.function=Convert static method to function
#PyConvertMethodToPropertyIntention
INTN.convert.method.to.property=Convert method to property
#PyConvertImportIntentionAction
INTN.convert.relative.to.absolute=Convert relative import to absolute
INTN.convert.absolute.to.relative=Convert absolute import to relative
#PyInvertIfConditionIntention
INTN.invert.if.condition=Invert 'if' condition
### Quick fixes ###
QFIX.add.qualifier=Add qualifier
QFIX.NAME.auto.import=Import
QFIX.auto.import.import.this.name=Import this name
QFIX.auto.import.import.name=Import ''{0}''
QFIX.NAME.local.auto.import=Import locally
QFIX.local.auto.import.import.locally={0} locally
QFIX.augment.assignment=Replace assignment with augmented assignment
QFIX.NAME.remove.call=Remove call
QFIX.replace.equality=Replace equality
QFIX.dict.creation=Replace dictionary creation
QFIX.NAME.remove.dict.key=Remove this key
QFIX.NAME.move.except.up=Move except clause up
QFIX.NAME.add.field.to.class=Add field to class
QFIX.add.field.to.class=Add field ''{0}'' to class {1}
QFIX.add.field.to.class.popup.content.added.init=Added a __init__ to class <code>{0}</code><br/>to accommodate new field <code>{1}</code>
QFIX.NAME.remove.parameter=Remove parameter
QFIX.NAME.rename.parameter=Rename parameter
QFIX.rename.parameter=Rename to ''{0}''
QFIX.NAME.remove.statement=Remove statement
QFIX.NAME.remove.with.target=Remove 'with' target
QFIX.NAME.remove.exception.target=Remove exception target
QFIX.NAME.remove.assignment.target=Remove assignment target
QFIX.failed.to.add.field=<br/>Failed to add a field!<br/><br/>
QFIX.redundant.parentheses=Remove redundant parentheses
QFIX.NAME.simplify.boolean.expression=Simplify boolean expression
QFIX.simplify.boolean.expression=Replace boolean expression with ''{0}''
QFIX.chained.comparison=Simplify chained comparison
QFIX.move.from.future.import=Move 'from __future__ import' to a correct place
QFIX.list.creation=Replace list creation
QFIX.add.super=Add super class call
QFIX.NAME.remove.assignment=Remove assignment
QFIX.NAME.remove.argument=Remove argument
QFIX.add.parameter.self=Add parameter ''{0}''
QFIX.statement.effect=Replace with function call
QFIX.remove.trailing.semicolon=Remove trailing semicolon
QFIX.introduce.variable=Introduce variable for statement
QFIX.NAME.make.list=Replace tuple with list
QFIX.NAME.add.specifier=Add format specifier character
QFIX.add.global=Add global statement
QFIX.create.property=Create property
QFIX.add.property=Add property for the field
QFIX.use.property=Use property for the field
QFIX.make.public=Make public
QFIX.NAME.update.parameters=Update parameters
QFIX.convert.to.new.style=Convert to New-style class
QFIX.change.base.class=Change base class
QFIX.classic.class.transform=Inherit from object
QFIX.NAME.rename.argument=Rename argument
QFIX.NAME.add.exception.base=Add Exception base class
QFIX.add.encoding=Add encoding declaration
QFIX.remove.trailing.suffix=Remove trailing suffix
QFIX.action.failed=Action failed
QFIX.create.class=Create class
QFIX.create.class.0=Create class ''{0}''
QFIX.create.class.in.module=Create class ''{0}'' in module {1}
QFIX.optimize.imports=Optimize imports
QFIX.unresolved.reference=Replace ''{0}'' with ''{1}.{0}''
QFIX.NAME.unresolved.reference.add.param=Create parameter for reference
QFIX.unresolved.reference.add.param=Create parameter ''{0}''
#PyRenameUnresolvedRefQuickFix
QFIX.rename.unresolved.reference=Rename reference
# UnresolvedRefCreateFunctionQuickFix
QFIX.unresolved.reference.create.function=Create function
QFIX.NAME.unresolved.reference.create.function=Create function ''{0}''
#UnresolvedRefTrueFalseQuickFix
QFIX.NAME.replace.with.true.or.false=Replace with True or False
QFIX.replace.with.true.or.false=Replace with {0}
#PyRemoveUnderscoresInNumericLiteralsQuickFix
QFIX.NAME.remove.underscores.in.numeric=Remove underscores in numeric literals
# ReplaceFunctionWithSetLiteralQuickFix
QFIX.replace.function.set.with.literal=Replace function call with set literal
#RemoveArgumentEqualDefaultQuickFix
QFIX.remove.argument.equal.default=Remove arguments equal to default
#PyDefaultArgumentQuickFix
QFIX.default.argument=Replace mutable default argument
#PyMoveAttributeToInitQuickFix
QFIX.move.attribute=Move attribute to __init__ method
#DocstringQuickFix
QFIX.NAME.docstring=Fix docstring
QFIX.docstring.add.parameter=Add docstring parameter ''{0}''
QFIX.docstring.remove.parameter=Remove docstring parameter ''{0}''
QFIX.docstring.insert.stub=Insert docstring
#PyMakeMethodStaticQuickFix
QFIX.NAME.make.static=Make method static
#PyMakeFunctionFromMethodQuickFix
QFIX.NAME.make.function=Make function from method
#ConvertIndents
QFIX.convert.indents=Convert indents
QFIX.convert.indents.to.tabs=Convert indents to tabs
QFIX.convert.indents.to.spaces=Convert indents to spaces
# ConvertDocstringQuickFix
QFIX.convert.single.quoted.docstring=Convert docstring to the triple double-quoted string form
# RemoveUnnecessaryBackslashQuickFix
QFIX.remove.unnecessary.backslash=Remove unnecessary backslash in expression
#RemoveDecoratorQuickFix
QFIX.remove.decorator=Remove decorator
#PyMakeFunctionReturnTypeQuickFix
QFIX.NAME.make.function.return.type=Make function return inferred type
QFIX.make.function.return.type=Make ''{0}'' return ''{1}''
# Add method quick fix
QFIX.NAME.add.method.to.class=Add method to class
QFIX.add.method.to.class=Add method {0}() to class {1}
QFIX.failed.to.add.method=<br/>Failed to add a method!<br/><br/>
QFIX.NAME.create.function.in.module=Create function in module
QFIX.create.function.in.module=Create function {0}() in module {1}
QFIX.failed.to.add.function=<br/>Failed to add a function!<br/><br/>
# InstallAndImportQuickFix
QFIX.install.and.import.package=Install and import package
QFIX.NAME.install.and.import.package=Install and import package ''{0}''
# PyAsyncCallInspection
QFIX.coroutine.is.not.awaited=Coroutine is not awaited
# Actions and associated commands
ACT.CMD.use.import=Use an imported module
ACT.qualify.with.module=Qualify with an imported module
ACT.from.some.module.import=Import from \u2026
filetype.python.docstring.description=Python docstring
filetype.python.function.type.annotation.description=Python PEP-484 function type comment
filetype.python.type.hint.description=Python PEP-484 type hint
python.docstring.format=Docstring format:
python.docstring.select.type=Select Docstring Type
### Inspections: INSP ###
INSP.GROUP.python=Python
INSP.abstract.class.set.as.metaclass=Set ''{0}'' as metaclass
INSP.abstract.class.add.to.superclasses=Add ''{0}'' to superclasses
INSP.named.tuple=Invalid definition of 'typing.NamedTuple'
INSP.shadows.name.from.outer.scope=Shadows name ''{0}'' from outer scope
INSP.trailing.semicolon=Trailing semicolon in the statement
INSP.protected.member.ignore.annotations=Ignore annotations
INSP.protected.member.ignore.test.functions=Ignore test functions
INSP.docstring.types.fix.docstring=Fix docstring
INSP.docstring.types.change.type=Change {0} type from {1} to {2}
INSP.interpreter.configure.python.interpreter=Configure Python interpreter
INSP.interpreter.interpreter.settings=Interpreter settings
INSP.interpreter.use.interpreter=Use {0}
INSP.interpreter.use.suggested.interpreter=Use suggested interpreter
INSP.method.parameters.metaclass.method.first.argument.name=Metaclass method first argument name
INSP.package.requirements.requirements.have.been.ignored=Requirements have been ignored
INSP.package.requirements.requirement.has.been.ignored=''{0}'' has been ignored
INSP.package.requirements.add.import=Add import
INSP.package.requirements.administrator.privileges.required=Administrator Privileges Required
INSP.package.requirements.administrator.privileges.required.description=\
Installing packages into ''{0}'' requires administrator privileges.\n\n\
Configure a per-project virtual environment as your project interpreter\n\
to avoid installing packages to a protected area of the file system.
INSP.package.requirements.administrator.privileges.required.button.configure=Configure
INSP.package.requirements.administrator.privileges.required.button.install.anyway=Install Anyway
INSP.package.requirements.requirements.file.empty=Requirements file is empty
QFIX.add.imported.packages.to.requirements=Add imported packages to requirements\u2026
INSP.pep8.ignore.base.class=Ignore Base Class
INSP.pep8.ignore.method.names.for.descendants.of.class=Ignore method names for descendants of class
INSP.stub.packages.compatibility.ignore=Ignore ''{0}'' compatibility
INSP.stub.packages.compatibility.ignored.packages=Ignored stub packages
INSP.stub.packages.compatibility.ignored.packages.label=Ignored stub packages:
INSP.stub.packages.compatibility.incompatible.packages.message=''{0}{1}{2}'' is incompatible with ''{3}{4}{5}''. Expected ''{6}'' version: [{7}]
INSP.arguments.not.declared.but.provided.by.decorator=Following arguments are not declared but provided by decorator: {0}
INSP.pep8.coding.style.violation=PEP 8 coding style violation
INSP.shadowing.names=Shadowing names from outer scopes
INSP.stub.packages.compatibility=Incompatible stub packages
INSP.stub.packages=Stub packages advertiser
# PyCallingNonCallableInspection
INSP.NAME.calling.non.callable=Attempt to call a non-callable object
INSP.class.object.is.not.callable=''{0}'' object is not callable
INSP.symbol.is.not.callable=''{0}'' is not callable
INSP.expression.is.not.callable=Expression is not callable
# PyArgumentListInspection
INSP.NAME.incorrect.call.arguments=Incorrect call arguments
INSP.unexpected.arg=Unexpected argument
INSP.unexpected.arg(s)=Unexpected argument(s)
INSP.parameter.unfilled=Parameter ''{0}'' unfilled
INSP.parameter(s).unfilled=Parameter(s) unfilled
INSP.possible.callees=Possible callees
INSP.function.lacks.positional.argument=Function ''{0}'' lacks a positional argument
INSP.expected.dict.got.type=Expected a dictionary, got {0}
INSP.expected.iterable.got.type=Expected an iterable, got {0}
# PyMethodParametersInspection
INSP.NAME.problematic.first.parameter=Improper first parameter
INSP.must.have.first.parameter=Method must have a first parameter, usually called ''{0}''
INSP.probably.mistyped.self=Did not you mean 'self'?
INSP.usually.named.self=Usually first parameter of a method is named 'self'
INSP.usually.named=Usually first parameter of such methods is named ''{0}''
INSP.first.param.must.not.be.tuple=First parameter of a non-static method must not be a tuple
# PyNestedDecoratorsInspection
INSP.NAME.nested.decorators=Problematic nesting of decorators
INSP.decorator.receives.unexpected.builtin=This decorator will not receive a callable it may expect; the built-in decorator returns a special object
# PyRedeclarationInspection
INSP.NAME.redeclaration=Redeclared names without usages
INSP.redeclared.name=Redeclared ''{0}'' defined above without usage
# PyUnresolvedReferencesInspection
INSP.try.except.import.error=''{0}'' in the try block with ''except ImportError'' should also be defined in the except block
INSP.unused.import.statement=Unused import statement <code>#ref</code>
# PyInterpreterInspection
INSP.NAME.invalid.interpreter=An invalid interpreter
INSP.interpreter.pipenv.interpreter.associated.with.another.project=Pipenv interpreter is associated with another project: ''{0}''
INSP.interpreter.pipenv.interpreter.associated.with.another.module=Pipenv interpreter is associated with another module: ''{0}''
INSP.interpreter.pipenv.interpreter.not.associated.with.any.project=Pipenv interpreter is not associated with any project
INSP.interpreter.pipenv.interpreter.not.associated.with.any.module=Pipenv interpreter is not associated with any module
INSP.interpreter.invalid.python.interpreter.selected.for.project=Invalid Python interpreter selected for the project
INSP.interpreter.invalid.python.interpreter.selected.for.module=Invalid Python interpreter selected for the module
INSP.interpreter.python.has.reached.its.end.of.life.and.is.no.longer.supported.in.pycharm=Python {0} has reached its end-of-life date and it is no longer supported in PyCharm
INSP.interpreter.python.has.reached.its.end.life.and.is.no.longer.supported.in.python.plugin=Python {0} has reached its end-of-life date and it is no longer supported in the Python plugin
INSP.interpreter.no.python.interpreter.configured.for.project=No Python interpreter configured for the project
INSP.interpreter.no.python.interpreter.configured.for.module=No Python interpreter configured for the module
# ReturnValueFromInitInspection
INSP.NAME.init.return=__init__ method that returns a value
INSP.cant.return.value.from.init=Cannot return a value from __init__
# PyUnreachableCodeInspection
INSP.NAME.unreachable.code=Unreachable code
INSP.unreachable.code=This code is unreachable
# PyStringFormatInspection
INSP.NAME.str.format=Errors in string formatting operations
INSP.format.requires.no.mapping=Format does not require a mapping
INSP.str.format.key.has.no.argument=Key ''{0}'' has no corresponding argument
INSP.str.format.unexpected.argument.type=Unexpected type {0}
INSP.too.few.keys=Too few mapping keys
INSP.no.format.specifier.char=Format specifier character missing
INSP.format.requires.mapping=Format requires a mapping
INSP.too.many.args.for.fmt.string=Too many arguments for format string
INSP.too.few.args.for.fmt.string=Too few arguments for format string
INSP.incompatible.options=The format options in chunk "{0}" are incompatible
INSP.unsupported.format.character=Unsupported format character ''{0}''
INSP.manual.to.auto.field.numbering=Cannot switch from manual field specification to automatic field numbering
INSP.auto.to.manual.field.numbering=Cannot switch from automatic field numbering to manual field specification
INSP.str.format.unsupported.format.character.b=Unsupported format character 'b'
INSP.str.format.can.not.use.star.in.formats.when.using.mapping=Cannot use '*' in formats when using a mapping
# PyMethodOverridingInspection
INSP.NAME.method.over=Method signature does not match signature of overridden method
INSP.signature.mismatch=Signature of method ''{0}'' does not match signature of the base method in class ''{1}''
# PyInitNewSignatureInspection
INSP.NAME.new.init.signature=Incompatible signatures of __new__ and __init__
INSP.new.incompatible.to.init=Signature is not compatible to __init__
INSP.init.incompatible.to.new=Signature is not compatible to __new__
# PyTrailingSemicolonInspection
INSP.NAME.trailing.semicolon=Prohibited trailing semicolon in a statement
# PyUnboundLocalVariableInspection
INSP.NAME.unbound=Unbound local variables
INSP.unbound.local.variable=Local variable ''{0}'' might be referenced before assignment
INSP.unbound.nonlocal.variable=Nonlocal variable ''{0}'' must be bound in an outer function scope
INSP.unbound.name.undefined=Name ''{0}'' can be undefined
INSP.unbound.function.too.large=Function ''{0}'' is too large to analyse
# PyListCreationInspection
INSP.NAME.list.creation=Non-optimal list declaration
INSP.list.creation.this.list.creation.could.be.rewritten.as.list.literal=This list creation could be rewritten as a list literal
# PyTupleAssignmentBalanceInspection
INSP.NAME.tuple.assignment.balance=Tuple assignment balance is incorrect
INSP.tuple.assignment.balance.only.one.starred.expression.allowed.in.assignment=Only one starred expression allowed in assignment
INSP.tuple.assignment.balance.need.more.values.to.unpack=Need more values to unpack
INSP.tuple.assignment.balance.too.many.values.to.unpack=Too many values to unpack
# PyClassicStyleClassInspection
INSP.NAME.classic.class.usage=Classic style class usage
INSP.classic.class.usage.old.style.class=Old-style class
INSP.classic.class.usage.old.style.class.ancestors=Old-style class, because all classes from whom it inherits are old-style
# PyExceptionInheritance
INSP.NAME.exception.not.inherit=Exceptions do not inherit from standard 'Exception' class
INSP.exception.inheritance.exception.does.not.inherit.from.base.exception.class=Exception doesn't inherit from base 'Exception' class
# PyDefaultArgumentInspection
INSP.NAME.default.argument=The default argument is mutable
INSP.default.arguments.default.argument.value.mutable=Default argument value is mutable
# PyDocstringTypesInspection
INSP.NAME.docstring.types=Type in docstring does not match inferred type
INSP.docstring.types.dynamically.inferred.type.does.not.match.specified.type=Dynamically inferred type ''{0}'' doesn''t match specified type ''{1}''
# PyStatementEffectInspection
INSP.NAME.statement.effect=Statement has no effect
INSP.statement.effect.statement.seems.to.have.no.effect=Statement seems to have no effect
INSP.statement.effect.statement.having.no.effect.can.be.replaced.with.function.call=Statement seems to have no effect and can be replaced with a function call to have effect
# PySuperArgumentsInspection
INSP.NAME.wrong.super.arguments=Wrong arguments to call super
INSP.class.is.not.subtype.of.class=''{0}'' is not an instance or a subclass of ''{1}''
# PyNonAsciiCharInspection
INSP.NAME.non.ascii=File contains non-ASCII character
INSP.non.ascii.char.non.ascii.character.in.file.but.no.encoding.declared=Non-ASCII character ''{0}'' in the file, but no encoding declared
# PyMandatoryEncodingInspection
INSP.NAME.mandatory.encoding=No encoding specified for file
INSP.mandatory.encoding.label.encoding.comment.format=Encoding comment format:
INSP.mandatory.encoding.label.select.default.encoding=Select default encoding:
INSP.mandatory.encoding.checkbox.enable.in.python.3=Enable in Python 3+
INSP.mandatory.encoding.no.encoding.specified.for.file=No encoding specified for file
# PyTupleItemAssignmentInspection
INSP.NAME.tuple.item.assignment=Tuple item assignment is prohibited
INSP.tuples.never.assign.items=Tuples don't support item assignment
# PyPropertyAccessInspection
INSP.NAME.property.access=Inappropriate access to properties
INSP.property.cannot.be.set=Property ''{0}'' cannot be set
INSP.property.cannot.be.read=Property ''{0}'' cannot be read
INSP.property.cannot.be.deleted=Property ''{0}'' cannot be deleted
# PyPropertyDefinitionInspection
INSP.NAME.property.definition=Incorrect property definition
INSP.doc.param.should.be.str=The doc parameter should be a string
INSP.strange.arg.want.callable=Strange argument; a callable is expected
INSP.func.property.name.mismatch=Names of function and decorator don't match; property accessor is not created
INSP.getter.return.smth=Getter should return or yield something
INSP.setter.should.not.return=Setter should not return a value
INSP.deleter.should.not.return=Deleter should not return a value
INSP.getter.signature.advice=Getter signature should be (self)
INSP.setter.signature.advice=Setter signature should be (self, value)
INSP.deleter.signature.advice=Deleter signature should be (self)
# PyProtectedMemberInspection
INSP.NAME.protected.member=Accessing a protected member of a class or a module
INSP.protected.member.access.to.protected.member.of.class=Access to a protected member {0} of a class
INSP.protected.member.access.to.protected.member.of.module=Access to a protected member {0} of a module
INSP.protected.member.name.not.declared.in.all=''{0}'' is not declared in __all__
# PyOldStyleClassesInspection
INSP.NAME.oldstyle.class=Old-style class contains new-style class features
INSP.oldstyle.class.slots=Old-style class contains __slots__ definition
INSP.oldstyle.class.getattribute=Old-style class contains __getattribute__ definition
INSP.oldstyle.class.super=Old-style class contains call for super method
# PyCompatibilityInspection
INSP.NAME.compatibility=Code is incompatible with specific Python versions
INSP.compatibility.this.syntax.available.only.since.py3=This syntax available only since Python 3
INSP.compatibility.check.for.compatibility.with.python.versions=Check for compatibility with python versions:
INSP.compatibility.inspection.unsupported.feature.prefix=Python {0,choice,1#version|2#versions} {1} {0,choice,1#does|2#do} not {2}
INSP.compatibility.feature.support.variable.annotations=support variable annotations
INSP.compatibility.feature.support.this.syntax=support this syntax
INSP.compatibility.feature.have.module.builtins=have module builtins
INSP.compatibility.feature.have.module.builtin=have module __builtin__
INSP.compatibility.feature.support.starred.expressions.as.assignment.targets=support starred expressions as assignment targets
INSP.compatibility.feature.support.starred.expressions.in.tuples.lists.and.sets=support starred expressions in tuples, lists, and sets
INSP.compatibility.feature.support.unpacking.without.parentheses.in.return.statements=support unpacking without parentheses in return statements
INSP.compatibility.feature.support.unpacking.without.parentheses.in.yield.statements=support unpacking without parentheses in yield statements
INSP.compatibility.feature.support.starred.expressions.in.dicts=support starred expressions in dicts
INSP.compatibility.feature.support.diamond.operator=support <>, use != instead
INSP.compatibility.feature.support.matrix.multiplication.operators=support matrix multiplication operators
INSP.compatibility.feature.support.long.integer.literal.suffix=support a trailing ''{0}''
INSP.compatibility.feature.support.old.style.octal.literals=support this syntax. It requires '0o' prefix for octal literals
INSP.compatibility.feature.support.underscores.in.numeric.literals=support underscores in numeric literals
INSP.compatibility.feature.support.string.literal.prefix=support a ''{0}'' prefix
INSP.compatibility.feature.allow.to.mix.bytes.and.non.bytes.literals=allow to mix bytes and non-bytes literals
INSP.compatibility.feature.support.this.syntax.in.list.comprehensions=support this syntax in list comprehensions
INSP.compatibility.feature.support.raise.with.no.arguments.outside.except.block=support this syntax. Raise with no arguments can only be used in an except block
INSP.compatibility.feature.support.backquotes=support backquotes, use repr() instead
INSP.compatibility.feature.support.print.statement=support this syntax. The print statement has been replaced with a print() function
INSP.compatibility.feature.support.super.without.arguments=support this syntax. super() should have arguments in Python 2
INSP.compatibility.py35.does.not.support.yield.inside.async.functions=Python version 3.5 does not support 'yield' inside async functions
INSP.compatibility.feature.support.yield.from=support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.
INSP.compatibility.pre35.versions.do.not.allow.return.with.argument.inside.generator=Python versions < 3.3 do not allow 'return' with argument inside generator.
INSP.compatibility.feature.support.ellipsis.outside.slices=support '...' outside of sequence slicings
INSP.compatibility.feature.have.nonlocal.keyword=have nonlocal keyword
INSP.compatibility.keyword.argument.repeated=Keyword argument repeated
INSP.compatibility.feature.allow.keyword.arguments.after.kwargs=allow keyword arguments after **expression
INSP.compatibility.feature.allow.duplicate.kwargs=allow duplicate **expressions
INSP.compatibility.feature.allow.duplicate.positional.varargs=allow duplicate *expressions
INSP.compatibility.feature.allow.positional.arguments.after.expression=allow positional arguments after *expression
INSP.compatibility.positional.argument.after.keyword.argument=Positional argument after keyword argument
INSP.compatibility.positional.argument.after.kwargs=Positional argument after **expression
INSP.compatibility.feature.allow.trailing.comma.after.kwargs=allow a trailing comma after **expression
INSP.compatibility.feature.allow.trailing.comma.after.positional.vararg=allow a trailing comma after *expression
INSP.compatibility.py35.does.not.support.async.inside.comprehensions.and.generator.expressions=Python version 3.5 does not support 'async' inside comprehensions and generator expressions
INSP.compatibility.py35.does.not.support.await.inside.comprehensions=Python version 3.5 does not support 'await' inside comprehensions
INSP.compatibility.feature.support.positional.only.parameters=support positional-only parameters
INSP.compatibility.support.equality.signs.in.fstrings=support equality signs in f-strings
INSP.compatibility.feature.support.assignment.expressions=support assignment expressions
INSP.compatibility.feature.support.continue.inside.finally.clause=support 'continue' inside 'finally' clause
INSP.compatibility.feature.support.arbitrary.expressions.as.decorator=support arbitrary expressions as a decorator
INSP.compatibility.feature.have.type.long=have type long. Use int instead.
INSP.compatibility.feature.have.method=have method {0}
INSP.compatibility.feature.have.module=have module {0}
INSP.compatibility.feature.allow.async.and.await.as.names=allow 'async' and 'await' as names
INSP.compatibility.old.dict.methods.not.available.in.py3=dict.iterkeys(), dict.iteritems(), and dict.itervalues() methods are not available in Python 3
INSP.compatibility.basestring.type.not.available.in.py3=basestring type is not available in Python 3
INSP.compatibility.new.union.syntax.not.available.in.earlier.version=allow writing union types as X | Y
INSP.compatibility.feature.support.match.statements=support match statements
INSP.compatibility.feature.support.parenthesized.context.expressions=support parenthesized context expressions
# PyUnnecessaryBackslashInspection
INSP.NAME.unnecessary.backslash=Unnecessary backslash
INSP.unnecessary.backslash.unnecessary.backslash.in.expression=Unnecessary backslash in the expression
# PySingleQuotedDocstringInspection
INSP.NAME.single.quoted.docstring=Single quoted docstring
INSP.message.single.quoted.docstring=Triple double-quoted strings should be used for docstrings.
# PyMissingConstructorInspection
INSP.NAME.missing.super.constructor=Missed call to '__init__' of the super class
INSP.missing.super.constructor.message=Call to __init__ of super class is missed
# PySetFunctionToLiteralInspection
INSP.NAME.set.function.to.literal=Function call can be replaced with set literal
# PyDecoratorInspection
INSP.NAME.decorator.outside.class=Class-specific decorator is used outside the class
INSP.decorators.method.only.decorator.on.method.outside.class=Decorator {0} on a method outside the class
# PyPackageRequirementsInspection
INSP.NAME.requirements=Unsatisfied package requirements
INSP.requirements.column.name.ignore.packages=Ignore Packages
INSP.requirements.ignore.packages.label=Ignored packages:
INSP.requirements.package.requirements.not.satisfied=Package {1,choice,1#requirement|2#requirements} {0} {1,choice,1#is|2#are} not satisfied
INSP.requirements.package.containing.module.not.listed.in.project.requirements=Package containing module ''{0}'' is not listed in the project requirements
QFIX.NAME.install.requirements=Install {0,choice,1#requirement|2#requirements}
QFIX.NAME.ignore.requirements=Ignore {0,choice,1#requirement|2#requirements}
# PyClassHasNoInitInspection
INSP.NAME.class.has.no.init=Class has no `__init__` method
INSP.class.has.no.init=Class has no __init__ method
#PyNoneFunctionAssignmentInspection
INSP.NAME.none.function.assignment=Assigning function calls that don't return anything
INSP.none.function.assignment=Function ''{0}'' doesn''t return anything
# PyTestParametrizedInspection
INSP.NAME.pytest-parametrized=Incorrect arguments in @pytest.mark.parametrize
# PyUnusedLocalInspection
INSP.NAME.unused=Unused local symbols
INSP.unused.locals.parameter.isnot.used=Parameter ''{0}'' value is not used
INSP.unused.locals.local.variable.isnot.used=Local variable ''{0}'' value is not used
INSP.unused.locals.replace.with.wildcard=Replace with _
INSP.unused.locals.local.function.isnot.used=Local function ''{0}'' is not used
INSP.unused.locals.local.class.isnot.used=Local class ''{0}'' is not used
INSP.unused.locals.ignore.variables.starting.with=Ignore variables starting with '_'
INSP.unused.locals.ignore.range.iteration.variables=Ignore range iteration variables
INSP.unused.locals.ignore.lambda.parameters=Ignore lambda parameters
INSP.unused.locals.ignore.variables.used.in.tuple.unpacking=Ignore variables used in tuple unpacking
# PyChainedComparsonsInspection
INSP.NAME.chained.comparisons=Too complex chained comparisons
INSP.chained.comparisons.ignore.statements.with.constant.in.the.middle=Ignore statements with a constant in the middle
INSP.simplify.chained.comparison=Simplify chained comparison
# PyAugmentAssignmentInspection
INSP.NAME.augment.assignment=Assignment can be replaced with augmented assignment
INSP.assignment.can.be.replaced.with.augmented.assignment=Assignment can be replaced with an augmented assignment
# PyBroadExceptionInspection
INSP.NAME.too.broad.exception.clauses=Unclear exception clauses
INSP.too.broad.exception.clause=Too broad exception clause
# PyByteLiteralInspection
INSP.NAME.byte.literal=A byte literal contains a non-ASCII character
INSP.byte.literal.contains.illegal.characters=Byte literal contains characters > 255
# PyComparisonWithNoneInspection
INSP.NAME.comparison.with.none=Using equality operators to compare with None
INSP.comparison.with.none.performed.with.equality.operators=Comparison with None performed with equality operators
# PyDictCreationInspection
INSP.NAME.dict.creation=Dictionary creation can be rewritten by dictionary literal
INSP.dict.creation.this.dictionary.creation.could.be.rewritten.as.dictionary.literal=This dictionary creation could be rewritten as a dictionary literal
# PyDictDuplicateKeysInspection
INSP.NAME.duplicate.keys=Dictionary contains duplicate keys
INSP.duplicate.keys.dictionary.contains.duplicate.keys=Dictionary contains duplicate keys ''{0}''
# PyFromFutureImportInspection
INSP.NAME.from.future.import=Improper position of from __future__ import
INSP.from.future.import.from.future.imports.must.occur.at.beginning.file=from __future__ imports must occur at the beginning of the file
# PyMethodFirstArgAssignmentInspection
INSP.NAME.first.arg.assign=First argument of the method is reassigned
INSP.first.arg.assign.method.parameter.reassigned=Method''s parameter ''{0}'' reassigned
# PyMethodMayBeStaticInspection
INSP.NAME.method.may.be.static=Method is not declared static
INSP.method.may.be.static=Method <code>#ref</code> may be 'static'
# PyAbstractClassInspection
INSP.NAME.abstract.class=Class must implement all abstract methods
INSP.abstract.class.class.must.implement.all.abstract.methods=Class {0} must implement all abstract methods
#PyAssignmentToLoopOrWithParameterInspection
INSP.NAME.assignment.to.loop.or.with.parameter=Assignments to 'for' loop or 'with' statement parameter
INSP.assignment.to.loop.or.with.parameter=Variable ''{0}'' is already declared in ''for'' loop or ''with'' statement above
# PyArgumentEqualDefaultInspection
INSP.NAME.argument.equal.default=The function argument is equal to the default parameter value
INSP.argument.equals.to.default=Argument equals to the default parameter value
#PyAsyncCallInspection
INSP.NAME.coroutine.is.not.awaited=Coroutine ''{0}'' is not awaited
INSP.async.call=Missing `await` syntax in coroutine calls
# PyAttributeOutsideInitInspection
INSP.NAME.attribute.outside.init=An instance attribute is defined outside `__init__`
INSP.attribute.outside.init=Instance attribute {0} defined outside __init__
# PyMissingOrEmptyDocstringInspection
INSP.NAME.missing.or.empty.docstring=Missing or empty docstring
INSP.no.docstring=Missing docstring
INSP.empty.docstring=Empty docstring
# PyUnresolvedReferencesInspection
INSP.NAME.unresolved.refs=Unresolved references
INSP.unresolved.refs.module.not.found=Module ''{0}'' not found
INSP.unresolved.refs.unresolved.reference=Unresolved reference ''{0}''
INSP.unresolved.refs.unresolved.attribute.for.class=Unresolved attribute reference ''{0}'' for class ''{1}''
INSP.unresolved.refs.cannot.find.reference.in.type=Cannot find reference ''{0}'' in ''{1}''
INSP.unresolved.refs.class.object.has.no.attribute=''{0}'' object has no attribute ''{1}''
INSP.unresolved.refs.import.resolves.to.its.containing.file=Import resolves to its containing file
INSP.unresolved.refs.class.does.not.define.operator=Class ''{0}'' does not define ''{1}'', so the ''{2}'' operator cannot be used on its instances
INSP.unresolved.refs.column.name.ignore.references=Ignore References
INSP.unresolved.refs.ignore.references.label=Ignored references:
unresolved.docstring.param.reference=Function ''{0}'' does not have a parameter ''{1}''
unresolved.import.reference=No module named ''{0}''
filetype.python.stub.description=Python stub
# PyRedundantParenthesesInspection
INSP.NAME.redundant.parentheses=Redundant parentheses
INSP.redundant.parens.ignore.empty.lists.of.base.classes=Ignore empty lists of base classes
INSP.redundant.parens.ignore.tuples=Ignore tuples
INSP.redundant.parens.ignore.argument.of.operator=Ignore argument of % operator
# PySimplifyBooleanCheckInspection
INSP.NAME.check.can.be.simplified=Redundant boolean variable check
INSP.expression.can.be.simplified=Expression can be simplified
INSP.simplify.boolean.check.ignore.comparison.to.zero=Ignore comparison to zero
# PyIncorrectDocstringInspection
INSP.NAME.incorrect.docstring=Incorrect docstring
INSP.missing.parameter.in.docstring=Missing parameter {0} in docstring
INSP.unexpected.parameter.in.docstring=Unexpected parameter {0} in docstring
# PyExceptClausesOrderInspection
INSP.NAME.bad.except.clauses.order=Wrong order of 'except' clauses
INSP.bad.except.exception.class.already.caught=Exception class ''{0}'' has already been caught
INSP.bad.except.superclass.of.exception.class.already.caught=''{0}'', superclass of the exception class ''{1}'', has already been caught
#PyGlobalUndefinedInspection
INSP.NAME.global.undefined=Global variable is not defined at the module level
INSP.global.variable.undefined=Global variable ''{0}'' is undefined at the module level
#PyDataclassInspection
INSP.NAME.dataclass.definition.and.usages=Invalid definition and usage of Data Classes
INSP.dataclasses.operator.not.supported.between.instances.of.class=''{0}'' not supported between instances of ''{1}''
INSP.dataclasses.operator.not.supported.between.instances.of.classes=''{0}'' not supported between instances of ''{1}'' and ''{2}''
INSP.dataclasses.object.could.have.no.attribute.because.it.declared.as.init.only=''{0}'' object could have no attribute ''{1}'' because it is declared as init-only
INSP.dataclasses.object.attribute.read.only=''{0}'' object attribute ''{1}'' is read-only
INSP.dataclasses.eq.must.be.true.if.order.true='eq' must be true if 'order' is true
INSP.dataclasses.argument.ignored.if.class.already.defines.method=''{0}'' is ignored if the class already defines ''{1}'' method
INSP.dataclasses.order.argument.should.be.false.if.class.defines.one.of.order.methods='order' should be False if the class defines one of order methods
INSP.dataclasses.frozen.attribute.should.be.false.if.class.defines.setattr.or.delattr='frozen' should be False if the class defines '__setattr__' or '__delattr__'
INSP.dataclasses.unsafe.hash.attribute.should.be.false.if.class.defines.hash='unsafe_hash' should be False if the class defines '__hash__'
INSP.dataclasses.frozen.dataclasses.can.not.inherit.non.frozen.one=Frozen dataclasses can not inherit non-frozen one and vice versa
INSP.dataclasses.method.is.ignored.if.class.already.defines.parameter=''{0}'' is ignored if the class already defines ''{1}'' parameter
INSP.dataclasses.hash.ignored.if.class.already.defines.cmp.or.order.or.frozen.parameters='__hash__' is ignored if the class already defines 'cmp/order' and 'frozen' parameters
INSP.dataclasses.mutable.attribute.default.not.allowed.use.default.factory=Mutable default ''{0}'' is not allowed. Use ''default_factory''
INSP.dataclasses.attribute.default.is.set.using.attr.ib=A default is set using 'attr.ib()'
INSP.dataclasses.attribute.default.set.using.method=A default is set using ''{0}''
INSP.dataclasses.method.should.take.only.n.parameter=''{0}'' should take only {1} {1,choice,1#parameter|2#parameters}
INSP.dataclasses.attribute.lacks.type.annotation=Attribute ''{0}'' lacks a type annotation
INSP.dataclasses.cannot.specify.both.default.and.factory=Cannot specify both 'default' and 'factory'
INSP.dataclasses.attribute.useless.until.post.init.declared=Attribute ''{0}'' is useless until ''__post_init__'' is declared
INSP.dataclasses.field.cannot.have.default.factory=Field cannot have a default factory
INSP.dataclasses.cannot.specify.both.default.and.default.factory=Cannot specify both 'default' and 'default_factory'
INSP.dataclasses.post.init.would.not.be.called.until.init.parameter.set.to.true='__post_init__' would not be called until 'init' parameter is set to True
INSP.dataclasses.post.init.should.take.all.init.only.variables.including.inherited.in.same.order.they.defined='__post_init__' should take all init-only variables (incl. inherited) in the same order as they are defined
INSP.dataclasses.post.init.should.take.all.init.only.variables.in.same.order.they.defined='__post_init__' should take all init-only variables in the same order as they are defined
INSP.dataclasses.attrs.post.init.would.not.be.called.until.init.parameter.set.to.true='__attrs_post_init__' would not be called until 'init' parameter is set to True
INSP.dataclasses.attrs.post.init.should.not.take.any.parameters.except.self='__attrs_post_init__' should not take any parameters except 'self'
INSP.dataclasses.method.should.be.called.on.dataclass.instances.or.types=''{0}'' method should be called on dataclass instances or types
INSP.dataclasses.method.should.be.called.on.dataclass.instances=''{0}'' method should be called on dataclass instances
INSP.dataclasses.method.should.be.called.on.attrs.instances=''{0}'' method should be called on attrs instances
INSP.dataclasses.method.should.be.called.on.attrs.types=''{0}'' method should be called on attrs types
# PyHighlightingAnnotator
INSP.python.trailing.suffix.not.support=Python does not support a trailing ''{0}''
# PyDeprecationInspection
INSP.NAME.deprecated.function.class.or.module=Deprecated function, class, or module
INSP.deprecation.abc.decorator.deprecated.use.alternative=''{0}'' is deprecated since Python 3.3. Use ''{1}'' with ''{2}'' instead
# PyDunderSlotsInspection
INSP.NAME.dunder.slots=Invalid usages of classes with '__slots__' definitions
INSP.dunder.slots.name.in.slots.conflicts.with.class.variable=''{0}'' in __slots__ conflicts with a class variable
INSP.dunder.slots.class.object.attribute.read.only=''{0}'' object attribute ''{1}'' is read-only
# PyFinalInspection
INSP.NAME.final.classes.methods.and.variables=Invalid usages of final classes, methods, and variables
INSP.final.super.classes.are.marked.as.final.and.should.not.be.subclassed={0} {1,choice,1#is|2#are} marked as ''@final'' and should not be subclassed
INSP.final.final.should.be.placed.on.first.overload='@final' should be placed on the first overload
INSP.final.method.marked.as.final.should.not.be.overridden=''{0}'' is marked as ''@final'' and should not be overridden
INSP.final.final.should.be.placed.on.implementation='@final' should be placed on the implementation
INSP.final.final.could.not.be.mixed.with.abstract.decorators='Final' could not be mixed with abstract decorators
INSP.final.final.class.could.not.contain.abstract.methods='Final' class could not contain abstract methods
INSP.final.no.need.to.mark.method.in.final.class.as.final=No need to mark method in 'Final' class as '@final'
INSP.final.non.method.function.could.not.be.marked.as.final=Non-method function could not be marked as '@final'
INSP.final.final.could.not.be.used.in.annotations.for.function.parameters='Final' could not be used in annotations for function parameters
INSP.final.final.could.not.be.used.in.annotation.for.function.return.value='Final' could not be used in annotation for a function return value
INSP.final.if.assigned.value.omitted.there.should.be.explicit.type.argument.to.final=If assigned value is omitted, there should be an explicit type argument to 'Final'
INSP.final.final.name.should.be.initialized.with.value='Final' name should be initialized with a value
INSP.final.already.declared.name.could.not.be.redefined.as.final=Already declared name could not be redefined as 'Final'
INSP.final.either.instance.attribute.or.class.attribute.could.be.type.hinted.as.final=Either instance attribute or class attribute could be type hinted as 'Final'
INSP.final.final.attribute.could.not.be.overridden=''{0}'' is ''Final'' and could not be overridden
INSP.final.final.attribute.should.be.declared.in.class.body.or.init='Final' attribute should be declared in class body or '__init__'
INSP.final.final.target.could.not.be.reassigned=''{0}'' is ''Final'' and could not be reassigned
INSP.final.final.could.only.be.used.as.outermost.type='Final' could only be used as the outermost type
INSP.final.final.could.not.be.used.inside.loop='Final' could not be used inside a loop
# PyInconsistentIndentationInspection
INSP.NAME.inconsistent.indentation=Inconsistent indentation
INSP.inconsistent.indentation.mix.tabs.spaces=Inconsistent indentation: mix of tabs and spaces
INSP.inconsistent.indentation.previous.line.used.tabs.this.line.uses.spaces=Inconsistent indentation: previous line used tabs, this line uses spaces
INSP.inconsistent.indentation.previous.line.used.spaces.this.line.uses.tabs=Inconsistent indentation: previous line used spaces, this line uses tabs
# PyMissingTypeHintsInspection
INSP.NAME.missing.type.hints=Missing type hinting for function definition
INSP.missing.type.hints.type.hinting.missing.for.function.definition=Type hinting is missing for a function definition
INSP.missing.type.hints.add.type.hints=Add type hints
INSP.missing.type.hints.add.type.hints.for=Add type hints for ''{0}''
INSP.missing.type.hints.checkbox.only.when.types.are.known=Only when types are known (collected from run-time or inferred)
# PyOverloadsInspection
INSP.NAME.overloads.in.regular.python.files=Overloads in regular Python files
INSP.overloads.series.overload.decorated.methods.should.always.be.followed.by.implementation=A series of @overload-decorated methods should always be followed by an implementation that is not @overload-ed
INSP.overloads.series.overload.decorated.functions.should.always.be.followed.by.implementation=A series of @overload-decorated functions should always be followed by an implementation that is not @overload-ed
INSP.overloads.this.method.overload.signature.not.compatible.with.implementation=Signature of this @overload-decorated method is not compatible with the implementation
INSP.overloads.this.function.overload.signature.not.compatible.with.implementation=Signature of this @overload-decorated function is not compatible with the implementation
# PyPep8NamingInspection
INSP.NAME.pep8.naming=PEP 8 naming convention violation
INSP.pep8.naming.column.name.excluded.base.classes=Excluded Base Classes
INSP.pep8.naming.column.name.ignored.errors=Ignored Errors
QFIX.NAME.ignore.errors.like.this=Ignore errors like this
INSP.pep8.naming.class.names.should.use.camelcase.convention=Class names should use CamelCase convention
INSP.pep8.naming.function.name.should.be.lowercase=Function name should be lowercase
INSP.pep8.naming.argument.name.should.be.lowercase=Argument name should be lowercase
INSP.pep8.naming.variable.in.function.should.be.lowercase=Variable in function should be lowercase
INSP.pep8.naming.constant.variable.imported.as.non.constant=Constant variable imported as non-constant
INSP.pep8.naming.lowercase.variable.imported.as.non.lowercase=Lowercase variable imported as non-lowercase
INSP.pep8.naming.camelcase.variable.imported.as.lowercase=CamelCase variable imported as lowercase
INSP.pep8.naming.camelcase.variable.imported.as.constant=CamelCase variable imported as constant
# PyProtocolInspection
INSP.NAME.protocol.definition.and.usages=Invalid protocol definitions and usages
INSP.protocol.all.bases.protocol.must.be.protocols=All bases of a protocol must be protocols
INSP.protocol.only.runtime.checkable.protocols.can.be.used.with.instance.class.checks=Only @runtime_checkable protocols can be used with instance and class checks
INSP.protocol.newtype.cannot.be.used.with.protocol.classes=NewType cannot be used with protocol classes
INSP.protocol.element.type.incompatible.with.protocol=Type of ''{0}'' is incompatible with ''{1}''
# PyShadowingBuiltinsInspection
INSP.NAME.shadowing.builtins=Shadowing built-in names
INSP.shadowing.builtins.shadows.built.in.name=Shadows built-in name ''{0}''
INSP.shadowing.builtins.column.name.ignore.built.ins=Ignore Built-Ins
INSP.shadowing.builtins.ignore.built.ins.label=Ignored built-ins:
QFIX.NAME.ignore.shadowed.built.in.name=Ignore shadowed built-in name
QFIX.ignore.shadowed.built.in.name=Ignore shadowed built-in name "{0}"
# PyTypeCheckerInspection
INSP.NAME.type.checker=Incorrect type
INSP.type.checker.expected.type.got.type.instead=Expected type ''{0}'', got ''{1}'' instead
INSP.type.checker.typed.dict.extra.key=Extra key ''{0}'' for TypedDict ''{1}''
INSP.type.checker.typed.dict.missing.keys=TypedDict ''{0}'' has missing {1,choice,1#key|2#keys}: {2}
INSP.type.checker.expected.to.return.type.got.no.return=Expected to return ''{0}'', got no return
INSP.type.checker.init.should.return.none=__init__ should return None
INSP.type.checker.type.does.not.have.expected.attribute=Type ''{0}'' doesn''t have expected {1,choice,1#attribute|2#attributes} {2}
INSP.type.checker.only.concrete.class.can.be.used.where.matched.protocol.expected=Only a concrete class can be used where ''{0}'' (matched generic type ''{1}'') protocol is expected
INSP.type.checker.only.concrete.class.can.be.used.where.protocol.expected=Only a concrete class can be used where ''{0}'' protocol is expected
INSP.type.checker.expected.matched.type.got.type.instead=Expected type ''{0}'' (matched generic type ''{1}''), got ''{2}'' instead
INSP.type.checker.unexpected.types.prefix=Unexpected type(s):
INSP.type.checker.expected.types.prefix=Possible type(s):
# PyTypedDictInspection
INSP.NAME.typed.dict=Invalid TypedDict definition and usages
INSP.typeddict.typeddict.key.must.be.string.literal.expected.one=TypedDict key must be a string literal; expected one of ({0})
INSP.typeddict.typeddict.has.no.key=TypedDict "{0}" has no key ''{1}''
INSP.typeddict.typeddict.has.no.keys=TypedDict "{0}" has no keys ({1})
INSP.typeddict.first.argument.has.to.match.variable.name=First argument has to match the variable name
INSP.typeddict.typeddict.cannot.inherit.from.non.typeddict.base.class=TypedDict cannot inherit from a non-TypedDict base class
INSP.typeddict.specifying.metaclass.not.allowed.in.typeddict=Specifying a metaclass is not allowed in TypedDict
INSP.typeddict.cannot.overwrite.typeddict.field.while.merging=Cannot overwrite TypedDict field ''{0}'' while merging
INSP.typeddict.invalid.statement.in.typeddict.definition.expected.field.name.field.type=Invalid statement in TypedDict definition; expected 'field_name: field_type'
INSP.typeddict.right.hand.side.values.are.not.supported.in.typeddict=Right-hand side values are not supported in TypedDict
INSP.typeddict.cannot.overwrite.typeddict.field=Cannot overwrite TypedDict field
INSP.typeddict.key.cannot.be.deleted=Key ''{0}'' of TypedDict ''{1}'' cannot be deleted
INSP.typeddict.this.operation.might.break.typeddict.consistency=This operation might break TypedDict consistency
INSP.typeddict.key.should.be.string=Key should be string
INSP.typeddict.value.must.be.type=Value must be a type
INSP.typeddict.total.value.must.be.true.or.false=Value of 'total' must be True or False
INSP.typeddict.typeddict.cannot.have.key=TypedDict "{0}" cannot have key ''{1}''
INSP.typeddict.cannot.add.non.string.key.to.typeddict=Cannot add a non-string key to TypedDict "{0}"
# PyTypeHintsInspection
INSP.NAME.type.hints=Invalid type hints definitions and usages
INSP.type.hints.builtin.cannot.be.parameterized.directly=Builtin ''{0}'' cannot be parameterized directly
INSP.type.hints.invalid.type.self=Invalid type 'self'
INSP.type.hints.literal.must.have.at.least.one.parameter='Literal' must have at least one parameter
INSP.type.hints.annotated.must.be.called.with.at.least.two.arguments='Annotated' must be called with at least two arguments
INSP.type.hints.type.specified.both.in.type.comment.and.annotation=Types specified both in a type comment and annotation
INSP.type.hints.typevar.expression.must.be.always.directly.assigned.to.variable=A 'TypeVar()' expression must always directly be assigned to a variable
INSP.type.hints.type.variables.must.not.be.redefined=Type variables must not be redefined
INSP.type.hints.typevar.expects.string.literal.as.first.argument='TypeVar()' expects a string literal as first argument
INSP.type.hints.argument.to.typevar.must.be.string.equal.to.variable.name=The argument to 'TypeVar()' must be a string equal to the variable name to which it is assigned
INSP.type.hints.bivariant.type.variables.are.not.supported=Bivariant type variables are not supported
INSP.type.hints.typevar.constraints.cannot.be.combined.with.bound=Constraints cannot be combined with bound=\u2026
INSP.type.hints.single.typevar.constraint.not.allowed=A single constraint is not allowed
INSP.type.hints.typevar.constraints.cannot.be.parametrized.by.type.variables=Constraints cannot be parametrized by type variables
INSP.type.hints.type.variables.cannot.be.used.with.instance.class.checks=Type variables cannot be used with instance and class checks
INSP.type.hints.type.cannot.be.used.with.instance.class.checks=''{0}'' cannot be used with instance and class checks
INSP.type.hints.parameterized.generics.cannot.be.used.with.instance.class.checks=Parameterized generics cannot be used with instance and class checks
INSP.type.hints.generics.should.be.specified.through.square.brackets=Generics should be specified through square brackets
INSP.type.hints.cannot.inherit.from.plain.generic=Cannot inherit from plain 'Generic'
INSP.type.hints.cannot.inherit.from.generic.multiple.times=Cannot inherit from 'Generic[...]' multiple times
INSP.type.hints.some.type.variables.are.not.listed.in.generic=Some type variables ({0}) are not listed in ''Generic[{1}]''
INSP.type.hints.illegal.literal.parameter='Literal' may be parameterized with literal ints, byte and unicode strings, bools, Enum values, None, other literal types, or type aliases to other literal types
INSP.type.hints.parameters.to.generic.must.all.be.type.variables=Parameters to 'Generic[...]' must all be type variables
INSP.type.hints.parameters.to.generic.must.all.be.unique=Parameters to 'Generic[...]' must all be unique
INSP.type.hints.illegal.callable.format='Callable' must be used as 'Callable[[arg, ...], result]'
INSP.type.hints.illegal.first.parameter='Callable' first parameter must be a parameter expression
INSP.type.hints.parameters.to.generic.types.must.be.types=Parameters to generic types must be types
INSP.type.hints.type.comment.cannot.be.matched.with.unpacked.variables=Type comment cannot be matched with unpacked variables
INSP.type.hints.type.signature.has.too.few.arguments=Type signature has too few arguments
INSP.type.hints.type.signature.has.too.many.arguments=Type signature has too many arguments
INSP.type.hints.type.self.not.supertype.its.class=The type of self ''{0}'' is not a supertype of its class ''{1}''
INSP.type.hints.non.self.attribute.could.not.be.type.hinted=Non-self attribute could not be type hinted
INSP.type.hints.type.alias.must.be.used.as.standalone.type.hint='TypeAlias' must be used as standalone type hint
INSP.type.hints.type.alias.must.be.immediately.initialized=Type alias must be immediately initialized
INSP.type.hints.type.alias.must.be.top.level.declaration=Type alias must be top-level declaration
INSP.type.hints.type.alias.cannot.be.parameterized='TypeAlias' cannot be parameterized
QFIX.remove.function.annotations=Remove function annotations
QFIX.replace.with.target.name=Replace with the target name
QFIX.remove.generic.parameters=Remove generic parameters
QFIX.replace.with.square.brackets=Replace with square brackets
QFIX.surround.with.square.brackets=Surround with square brackets
QFIX.remove.square.brackets=Remove square brackets
QFIX.replace.with.typing.alias=Replace with typing alias
QFIX.remove.type.comment=Remove the type comment
QFIX.remove.annotation=Remove the annotation
QFIX.replace.with.type.name=Replace with the type name
QFIX.replace.with.old.union.style=Replace with an old-style Union
QFIX.add.from.future.import.annotations=Add 'from __future__ import annotations'
# PyInspectionsSuppressor
INSP.python.suppressor.suppress.for.function=Suppress for a function
INSP.python.suppressor.suppress.for.class=Suppress for a class
INSP.python.suppressor.suppress.for.statement=Suppress for a statement
find.usages.unnamed=<unnamed>
find.usages.keyword.argument=keyword argument
find.usages.variable=variable
find.usages.imported.module.alias=imported module alias
find.usages.class=class
find.usages.function=function
find.usages.method=method
find.usages.parameter=parameter
python.find.usages=Find Usages
python.find.usages.base.method.question=Method {0} overrides method of class {1}.\nDo you want to find usages of the base method?
python.find.usages.usage.in.superclass.list=Usage in the superclass list
python.find.usages.usage.in.isinstance=Usage in isinstance()
python.find.usages.untyped.probable.usage=Untyped (probable) usage
python.find.usages.usage.in.import.statement=Usage in an import statement
# PyPackagesInspection
INSP.NAME.relative.import=Suspicious relative imports
INSP.relative.import.relative.import.outside.package=Relative import outside of a package
debugger.cleaning.signature.cache=Cleaning the Cache of Dynamically Collected Types
ANN.patterns.repeated.star.pattern=Repeated star pattern
# PyElementPresentation
element.presentation.location.string.in.class=({0} in {1})
element.presentation.location.string.in.class.stub=({0} in {1} stub)
element.presentation.location.string.module=({0})
element.presentation.location.string.module.stub=({0} stub)