# HG changeset patch # User pjenvey # Date 1184791752 0 # Node ID 81c21bbd812f4bc5ae77a1cfee995ba5dff9d134 # Parent 9d0a19b4518b7d16837bfa9d599cb9603f536cee fix skipping of class definitions without parens fixes #55 diff --git a/babel/messages/extract.py b/babel/messages/extract.py --- a/babel/messages/extract.py +++ b/babel/messages/extract.py @@ -295,6 +295,10 @@ if funcname: message_lineno = lineno call_stack += 1 + elif in_def and tok == OP and value == ':': + # End of a class definition without parens + in_def = False + continue elif call_stack == -1 and tok == COMMENT: # Strip the comment token from the line value = value.decode(encoding)[1:].strip() diff --git a/babel/messages/tests/extract.py b/babel/messages/tests/extract.py --- a/babel/messages/tests/extract.py +++ b/babel/messages/tests/extract.py @@ -70,12 +70,15 @@ pass def ngettext(y='arg 1',z='arg 2',**pageargs): pass +class Meta: + verbose_name = _('log entry') """) messages = list(extract.extract_python(buf, extract.DEFAULT_KEYWORDS.keys(), [], {})) self.assertEqual([(3, '_', u'Page arg 1', []), - (3, '_', u'Page arg 2', [])], + (3, '_', u'Page arg 2', []), + (8, '_', u'log entry', [])], messages) def test_multiline(self):