* add babel.support.NullTranslations class similar to gettext.NullTranslations
but with all of Babel's new *gettext methods (#277)
* "init" and "update" commands support "--width" option (#284)
+ * fix 'input_dirs' option for setuptools integration (#232, initial patch by
+ Étienne Bersac)
Version 0.9.6
import logging
from optparse import OptionParser
import os
+import re
import shutil
from StringIO import StringIO
import sys
('strip-comments', None,
'strip the comment TAGs from the comments.'),
('input-dirs=', None,
- 'directories that should be scanned for messages'),
+ 'directories that should be scanned for messages. Separate multiple '
+ 'directories with commas(,)'),
]
boolean_options = [
'no-default-keywords', 'no-location', 'omit-header', 'no-wrap',
raise DistutilsOptionError("'--sort-output' and '--sort-by-file' "
"are mutually exclusive")
- if not self.input_dirs:
+ if self.input_dirs:
+ self.input_dirs = re.split(',\s*', self.input_dirs)
+ else:
self.input_dirs = dict.fromkeys([k.split('.',1)[0]
for k in self.distribution.packages
]).keys()
from babel.dates import format_datetime
from babel.messages import frontend
from babel.util import LOCALTZ
+from babel.messages.pofile import read_po
this_dir = os.path.abspath(os.path.dirname(__file__))
self.cmd.sort_by_file = True
self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
+ def test_input_dirs_is_treated_as_list(self):
+ self.cmd.input_dirs = self.datadir
+ self.cmd.output_file = self._pot_file()
+ self.cmd.finalize_options()
+ self.cmd.run()
+
+ catalog = read_po(open(self._pot_file(), 'U'))
+ msg = catalog.get('bar')
+ self.assertEqual(1, len(msg.locations))
+ self.assertTrue('file1.py' in msg.locations[0][0])
+
+ def test_input_dirs_handle_spaces_after_comma(self):
+ self.cmd.input_dirs = 'foo, bar'
+ self.cmd.output_file = self._pot_file()
+ self.cmd.finalize_options()
+
+ self.assertEqual(['foo', 'bar'], self.cmd.input_dirs)
+
def test_extraction_with_default_mapping(self):
self.cmd.copyright_holder = 'FooBar, Inc.'
self.cmd.msgid_bugs_address = 'bugs.address@email.tld'