-
Notifications
You must be signed in to change notification settings - Fork 461
Open
Labels
Description
(Happens on current master)
Sample file:
_(b'foo')now run pybabel extract test.py -o messages.pot and you'll get this error:
> pybabel extract test.py -o messages.pot
extracting messages from test.py
Traceback (most recent call last):
File "/home/dev/babel/venv/bin/pybabel", line 8, in <module>
sys.exit(main())
^^^^^^
File "/home/dev/babel/babel/messages/frontend.py", line 998, in main
return CommandLineInterface().run(sys.argv)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dev/babel/babel/messages/frontend.py", line 924, in run
return cmdinst.run()
^^^^^^^^^^^^^
File "/home/dev/babel/babel/messages/frontend.py", line 522, in run
for filename, lineno, message, comments, context in extracted:
^^^^^^^^^
File "/home/dev/babel/babel/messages/extract.py", line 282, in check_and_call_extract_file
for message_tuple in extract_from_file(
^^^^^^^^^^^^^^^^^^
File "/home/dev/babel/babel/messages/extract.py", line 324, in extract_from_file
return list(extract(method, fileobj, keywords, comment_tags,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dev/babel/babel/messages/extract.py", line 451, in extract
for lineno, funcname, messages, comments in results:
^^^^^^^
File "/home/dev/babel/babel/messages/extract.py", line 562, in extract_python
messages.append(''.join(buf))
^^^^^^^^^^^^
TypeError: sequence item 0: expected str instance, bytes foundIt seems like we're trying to call .join() on a byte string. I suggest just fixing the crash but keeping byte strings disallowed - they won't work with gettext anyway because gettext uses normal strings internally.