Hello community, here is the log from the commit of package i18nspector for openSUSE:Factory checked in at 2015-02-06 22:38:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/i18nspector (Old) and /work/SRC/openSUSE:Factory/.i18nspector.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "i18nspector" Changes: -------- --- /work/SRC/openSUSE:Factory/i18nspector/i18nspector.changes 2014-11-24 11:09:58.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.i18nspector.new/i18nspector.changes 2015-02-06 22:38:20.000000000 +0100 @@ -1,0 +2,10 @@ +Sun Feb 1 09:46:31 UTC 2015 - lazy.k...@opensuse.org + +- Update to 0.18. + * Rename --debian as --unpack-deb. Don't make it default even on + Debian(-like) systems. + * Make the plural expression parser more robust. + * Improve the test suite. +- Update the keyring file. + +------------------------------------------------------------------- Old: ---- i18nspector-0.17.2.tar.gz i18nspector-0.17.2.tar.gz.asc New: ---- i18nspector-0.18.tar.gz i18nspector-0.18.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ i18nspector.spec ++++++ --- /var/tmp/diff_new_pack.05qfGd/_old 2015-02-06 22:38:21.000000000 +0100 +++ /var/tmp/diff_new_pack.05qfGd/_new 2015-02-06 22:38:21.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package i18nspector # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: i18nspector -Version: 0.17.2 +Version: 0.18 Release: 0 Summary: Tool for Checking gettext POT/PO/MO Files License: MIT @@ -60,7 +60,7 @@ %py3_compile . %check -make test +make %{?_smp_mflags} test %files %defattr(-,root,root,-) ++++++ i18nspector-0.17.2.tar.gz -> i18nspector-0.18.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/doc/changelog new/i18nspector-0.18/doc/changelog --- old/i18nspector-0.17.2/doc/changelog 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/doc/changelog 2015-01-27 23:25:05.000000000 +0100 @@ -1,3 +1,12 @@ +i18nspector (0.18) unstable; urgency=low + + * Rename --debian as --unpack-deb. Don't make it default even on + Debian(-like) systems. + * Make the plural expression parser more robust. + * Improve the test suite. + + -- Jakub Wilk <jw...@jwilk.net> Tue, 27 Jan 2015 23:24:53 +0100 + i18nspector (0.17.2) unstable; urgency=low * Fix parsing Language header fields containing commas. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/doc/i18nspector.1 new/i18nspector-0.18/doc/i18nspector.1 --- old/i18nspector-0.17.2/doc/i18nspector.1 2014-11-19 15:11:26.000000000 +0100 +++ new/i18nspector-0.18/doc/i18nspector.1 2015-01-27 23:25:07.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH I18NSPECTOR 1 "2014-11-19" "i18nspector 0.17.2" "" +.TH I18NSPECTOR 1 "2015-01-27" "i18nspector 0.18" "" .SH NAME i18nspector \- checking tool for gettext POT, PO and MO files . @@ -32,7 +32,7 @@ .. .SH SYNOPSIS .sp -\fBi18nspector\fP [\-\-language \fIlang\fP] [\-\-debian] \fIfile\fP [\fIfile\fP …] +\fBi18nspector\fP [\-\-language \fIlang\fP] [\-\-unpack\-deb] \fIfile\fP [\fIfile\fP …] .SH OPTIONS .INDENT 0.0 .TP @@ -41,10 +41,8 @@ code, possibly followed by underscore and a 2\-letter ISO 3166 territory code. .TP -.B \-\-debian -Allow checking Debian (binary or source) packages. -This option is enabled by default on modern Debian systems and its -derivatives; it needs to be explicitly enabled on other systems. +.B \-\-unpack\-deb +Allow unpacking Debian (binary or source) packages. .TP .B \-h\fP,\fB \-\-help Show the help message and exit. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/doc/i18nspector.txt new/i18nspector-0.18/doc/i18nspector.txt --- old/i18nspector-0.17.2/doc/i18nspector.txt 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/doc/i18nspector.txt 2015-01-27 23:25:05.000000000 +0100 @@ -7,12 +7,12 @@ ---------------------------------------------- :manual section: 1 -:version: i18nspector 0.17.2 +:version: i18nspector 0.18 :date: |date| Synopsis -------- -**i18nspector** [--language *lang*] [--debian] *file* [*file* …] +**i18nspector** [--language *lang*] [--unpack-deb] *file* [*file* …] Options ------- @@ -20,10 +20,8 @@ Assume this language. *lang* should be a 2- or 3-letter ISO 639 language code, possibly followed by underscore and a 2-letter ISO 3166 territory code. ---debian - Allow checking Debian (binary or source) packages. - This option is enabled by default on modern Debian systems and its - derivatives; it needs to be explicitly enabled on other systems. +--unpack-deb + Allow unpacking Debian (binary or source) packages. -h, --help Show the help message and exit. --version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/doc/todo.txt new/i18nspector-0.18/doc/todo.txt --- old/i18nspector-0.17.2/doc/todo.txt 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/doc/todo.txt 2015-01-27 23:25:05.000000000 +0100 @@ -74,7 +74,6 @@ Add support for configuration files. Once it's implemented: - * Disable --debian by default. * Disable --pedantic by default. Add support for profiles: severity of a tag may depend on whether you are diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/lib/cli.py new/i18nspector-0.18/lib/cli.py --- old/i18nspector-0.17.2/lib/cli.py 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/lib/cli.py 2015-01-27 23:25:05.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright © 2012, 2013, 2014 Jakub Wilk <jw...@jwilk.net> +# Copyright © 2012, 2013, 2014, 2015 Jakub Wilk <jw...@jwilk.net> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the “Software”), to deal @@ -37,7 +37,7 @@ from . import tags from . import terminal -__version__ = '0.17.2' +__version__ = '0.18' def initialize_terminal(): if sys.stdout.isatty(): @@ -112,7 +112,7 @@ def check_all(files, *, options): for filename in files: - if options.debian: + if options.unpack_deb: try: check_deb(filename, options=options) except UnsupportedFileType: @@ -123,12 +123,10 @@ def main(): initialize_terminal() - is_like_debian = misc.OSRelease().is_like('debian') ap = argparse.ArgumentParser(description=__doc__) ap.add_argument('--version', action='version', version='%(prog)s {}'.format(__version__)) ap.add_argument('-l', '--language', metavar='<lang>', help='assume this langauge') - debian_help = 'allow checking Debian packages' + (' (enabled on this system)' if is_like_debian else '') - ap.add_argument('--debian', action='store_true', default=is_like_debian, help=debian_help) + ap.add_argument('--unpack-deb', action='store_true', help='allow unpacking Debian packages') ap.add_argument('--file-type', metavar='<file-type>', help=argparse.SUPPRESS) ap.add_argument('--traceback', action='store_true', help=argparse.SUPPRESS) ap.add_argument('files', metavar='<file>', nargs='+') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/lib/gettext.py new/i18nspector-0.18/lib/gettext.py --- old/i18nspector-0.17.2/lib/gettext.py 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/lib/gettext.py 2015-01-27 23:25:05.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright © 2012, 2013, 2014 Jakub Wilk <jw...@jwilk.net> +# Copyright © 2012, 2013, 2014, 2015 Jakub Wilk <jw...@jwilk.net> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the “Software”), to deal @@ -94,8 +94,8 @@ (r'!', 'not'), (r'&&', 'and'), (r'[|][|]', 'or'), - (r'[<>]=?', None), - (r'[*/%]', None), + (r'(?<![<>])[<>]=?', None), + (r'(?<![*/])[*/%]', None), (r'[+-]', None), (r'n', None), (r'[?:]', None), @@ -130,6 +130,14 @@ else: # unary plus and unary minus are not supported raise PluralExpressionSyntaxError(value) + elif value == '(': + if prev_value in {'n', ')'} or prev_value.isdigit(): + # function calls are not supported + raise PluralExpressionSyntaxError(value) + else: + yield value + elif (prev_value, value) == ('(', ')'): + raise PluralExpressionSyntaxError(value) else: yield value if not value.isspace(): @@ -161,6 +169,8 @@ if len(stack) != 1: raise PluralExpressionSyntaxError [s] = stack + if (s == '') or s.isspace(): + raise PluralExpressionSyntaxError s = _subst_ifelse(s) try: fn = intexpr.Expression(s) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/lib/misc.py new/i18nspector-0.18/lib/misc.py --- old/i18nspector-0.17.2/lib/misc.py 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/lib/misc.py 2015-01-27 23:25:05.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright © 2012, 2013, 2014 Jakub Wilk <jw...@jwilk.net> +# Copyright © 2012, 2013, 2014, 2015 Jakub Wilk <jw...@jwilk.net> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the “Software”), to deal @@ -54,46 +54,6 @@ for k, v in sorted(d.items()): yield v -class OSRelease(object): - - ''' - /etc/os-release parser - - File format documentation: - http://www.freedesktop.org/software/systemd/man/os-release.html - ''' - - def __init__(self, path='/etc/os-release'): - self._id = None - self._id_like = () - try: - file = open(path, 'rt', encoding='UTF-8') - except EnvironmentError as exc: - if exc.errno == errno.ENOENT: - return - raise - with file: - for line in file: - self._parse_line(line) - - def _parse_line(self, line): - try: - name, value = line.split('=', 1) - [value] = shlex.split(value) - except ValueError: - return - if name == 'ID': - self._id = value - elif name == 'ID_LIKE': - self._id_like = frozenset(value.split()) - - def is_like(self, ident): - if ident is None: - raise TypeError('ident must not be None') - if self._id == ident: - return True - return ident in self._id_like - def utc_now(): ''' timezone-aware variant of datetime.now() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/tests/blackbox_tests/__init__.py new/i18nspector-0.18/tests/blackbox_tests/__init__.py --- old/i18nspector-0.17.2/tests/blackbox_tests/__init__.py 2014-11-19 15:11:24.000000000 +0100 +++ new/i18nspector-0.18/tests/blackbox_tests/__init__.py 2015-01-27 23:25:05.000000000 +0100 @@ -187,7 +187,7 @@ while True: try: return queue.get(timeout=1) - # This semi-active waiting is ugly, but here doesn't seem be any + # This semi-active waiting is ugly, but there doesn't seem be any # obvious better way. except mp.queues.Empty: if process.exitcode is None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/tests/coverage.txt new/i18nspector-0.18/tests/coverage.txt --- old/i18nspector-0.17.2/tests/coverage.txt 2014-11-19 15:11:25.000000000 +0100 +++ new/i18nspector-0.18/tests/coverage.txt 2015-01-27 23:25:06.000000000 +0100 @@ -4,14 +4,14 @@ ------------------------------------------------------------- lib 0 0 0 0 100% lib.checker 885 833 540 540 4% 79-83, 86-98, 102, 108-187, 191-323, 327-452, 456-528, 532-570, 575-607, 612-649, 652-730, 733-813, 816-930, 933-941, 944-1059, 1066-1124, 1127-1148, 1154-1170, 1175, 1181-1187 -lib.cli 102 77 30 30 19% 43-47, 55-64, 67-68, 71-73, 79-111, 114-122, 125-153 +lib.cli 100 75 30 30 19% 43-47, 55-64, 67-68, 71-73, 79-111, 114-122, 125-151 lib.domains 10 0 0 0 100% lib.encodings 125 36 30 6 73% 49-67, 79-87, 192, 200-212, 216-220 -lib.gettext 137 0 58 0 100% +lib.gettext 145 0 66 0 100% lib.iconv 161 56 56 34 59% 41-42, 55-57, 64, 66, 68, 70, 77-78, 87-88, 101-102, 115-127, 134-135, 138-149, 155, 157, 159, 161, 170-171, 184-185, 202-217, 226-227, 230-241 lib.intexpr 254 0 86 0 100% -lib.ling 235 2 92 4 98% 181, 272 -lib.misc 66 0 24 2 98% +lib.ling 236 2 94 3 98% 181, 272 +lib.misc 37 0 12 1 98% lib.moparser 140 92 58 48 29% 74, 82, 97-115, 118-186, 191-200, 203 lib.paths 7 2 0 0 71% 36-37 lib.polib4us 110 75 28 28 25% 39-40, 54, 70, 73-94, 98, 108-110, 131-143, 147, 159, 168-173, 184-192, 203, 206, 210-214, 226-233, 241-250 @@ -21,4 +21,4 @@ lib.terminal 48 19 4 4 56% 75-95 lib.xml 21 0 2 0 100% ------------------------------------------------------------- -TOTAL 2717 1233 1213 712 51% +TOTAL 2695 1231 1211 710 50% diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/tests/test_gettext.py new/i18nspector-0.18/tests/test_gettext.py --- old/i18nspector-0.17.2/tests/test_gettext.py 2014-11-19 15:11:25.000000000 +0100 +++ new/i18nspector-0.18/tests/test_gettext.py 2015-01-27 23:25:06.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright © 2012, 2013, 2014 Jakub Wilk <jw...@jwilk.net> +# Copyright © 2012, 2013, 2014, 2015 Jakub Wilk <jw...@jwilk.net> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the “Software”), to deal @@ -239,11 +239,19 @@ with assert_raises(self.error): self.t('23 + (+37)') + def test_func_call(self): + with assert_raises(self.error): + self.t('n(42)') + with assert_raises(self.error): + self.t('42(n)') + def test_unbalanced_parentheses(self): with assert_raises(self.error): self.t('(6 * 7') with assert_raises(self.error): self.t('6 * 7)') + with assert_raises(self.error): + self.t('6) * (7') def test_dangling_binop(self): with assert_raises(self.error): @@ -253,10 +261,36 @@ with assert_raises(self.error): self.t('6 # 7') + def test_shift(self): + with assert_raises(self.error): + self.t('6 << 7') + with assert_raises(self.error): + self.t('6 >> 7') + + def test_pow(self): + with assert_raises(self.error): + self.t('6 ** 7') + + def test_floor_div(self): + with assert_raises(self.error): + self.t('6 // 7') + + def test_tuple(self): + with assert_raises(self.error): + self.t('()') + with assert_raises(self.error): + self.t('(6, 7)') + def test_exotic_whitespace(self): with assert_raises(self.error): self.t('6 *\xA07') + def test_empty(self): + with assert_raises(self.error): + self.t('') + with assert_raises(self.error): + self.t(' ') + class test_codomain: def t(self, s, min_, max_=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/i18nspector-0.17.2/tests/test_misc.py new/i18nspector-0.18/tests/test_misc.py --- old/i18nspector-0.17.2/tests/test_misc.py 2014-11-19 15:11:25.000000000 +0100 +++ new/i18nspector-0.18/tests/test_misc.py 2015-01-27 23:25:06.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright © 2012, 2013, 2014 Jakub Wilk <jw...@jwilk.net> +# Copyright © 2012, 2013, 2014, 2015 Jakub Wilk <jw...@jwilk.net> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the “Software”), to deal @@ -78,86 +78,6 @@ list(M.sorted_vk(d)) ) -class test_os_release: - - def t(self, path, **like): - os_release = M.OSRelease(path=path) - for opsys, expected in like.items(): - if expected: - assert_true(os_release.is_like(opsys)) - else: - assert_false(os_release.is_like(opsys)) - - def _tmpfile(self, contents): - file = aux.temporary_file( - mode='wt', encoding='ASCII' - ) - file.write(contents) - file.flush() - return file - - def test_nonexistent(self): - with aux.temporary_directory() as tmpdir: - self.t(os.path.join(tmpdir, 'nonexistent'), - debian=False, - ubuntu=False, - pld=False, - ) - - def test_io_error(self): - if os.getuid() == 0: - raise nose.SkipTest('this test must not be run as root') - with self._tmpfile('') as file: - os.chmod(file.name, 0) - with assert_raises(IOError): - self.t(file.name) - - def test_syntax_error(self): - with self._tmpfile('ID="debian\n') as file: - self.t(file.name, - debian=False, - ubuntu=False, - pld=False, - ) - - def test_empty(self): - with self._tmpfile('') as file: - self.t(file.name, - debian=False, - ubuntu=False, - pld=False, - ) - - def test_debian(self): - with self._tmpfile('ID="debian"\n') as file: - self.t(file.name, - debian=True, - ubuntu=False, - pld=False, - ) - - def test_debian_derivative(self): - with self._tmpfile('ID="ubuntu"\nID_LIKE="debian"') as file: - self.t(file.name, - debian=True, - ubuntu=True, - pld=False, - ) - - def test_non_debian(self): - with self._tmpfile('ID="pld"\n') as file: - self.t(file.name, - debian=False, - ubuntu=False, - pld=True, - ) - - def test_none(self): - with self._tmpfile('') as file: - os_release = M.OSRelease(path=file.name) - with assert_raises(TypeError): - os_release.is_like(None) - class test_utc_now: def test_types(self): ++++++ i18nspector.keyring ++++++ --- /var/tmp/diff_new_pack.05qfGd/_old 2015-02-06 22:38:21.000000000 +0100 +++ /var/tmp/diff_new_pack.05qfGd/_new 2015-02-06 22:38:21.000000000 +0100 @@ -1,8 +1,8 @@ -pub 4096R/015475F5 2009-10-23 [expires: 2015-01-01] -uid Jakub Wilk <jw...@jwilk.net> -uid Jakub Wilk <jw...@debian.org> -uid Jakub Wilk <uba...@users.sf.net> -sub 4096R/E5874F63 2009-10-23 +pub rsa4096/015475F5 2009-10-23 [expires: 2016-01-01] +uid [ unknown] Jakub Wilk <jw...@jwilk.net> +uid [ unknown] Jakub Wilk <jw...@debian.org> +uid [ unknown] Jakub Wilk <uba...@users.sf.net> +sub rsa4096/E5874F63 2009-10-23 -----BEGIN PGP PUBLIC KEY BLOCK----- @@ -18,31 +18,31 @@ 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 @@ -78,5 +78,5 @@ doynJ60razRgyqz9/UJ77+2wn50YVJutP44WiP5NF9ELufGkDo9/r/DfknlIS5py c55t4YjFjD6M2V8oO8pHuQ2TO14TkX629hChBlVCQQBUSU07toQ3iDw5umCFH7To bN5AxyPui0i3KQXs09FW/+n9DTw= -=1quD +=iNj8 -----END PGP PUBLIC KEY BLOCK----- -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org