Details
Description
Consider the following code:
""" 5 or more space indentation and a ) or ] or } """ from __future__ import (barry_as_FLUFL, annotations, # 5 or more space indentation inside parentheses ) from typing import Literal from PySide6.QtCore import QObject egg = ['spam', 'egg'] # 5 or more space indentation inside brackets spam = {'spam', 'egg'} # 5 or more space indentation inside braces def bar(spam: Literal[')'], egg: Literal['(']): # 5 or more space indentation inside parentheses pass class Spam(QObject): """ this line does NOT cause any trouble :-) """ class Egg: pass def spam(self) -> None: self.tr('NOT in the Egg class!')
When I feed any of them to pyside6-lupdate, I get the following TS file:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1"> <context> <name>Egg</name> <message> <source>NOT in the Egg class!</source> </message> </context> </TS>
The context name is incorrect. It happens if I have a line that is indented by more than 4 spaces (i.e., of imported stuff or docs, copyright, etc.) and inside parentheses/brackets/braces before the class. I got several cases here to test. Any single one of them reproduces the issue.
The same problem occurs with lupdate for PyQt5, and I guess that PySide2 may experience it as well.