Hello community,
here is the log from the commit of package python3-bpython for openSUSE:Factory checked in at 2015-01-08 23:03:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-bpython (Old)
and /work/SRC/openSUSE:Factory/.python3-bpython.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-bpython"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-bpython/python3-bpython.changes 2014-11-18 22:45:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-bpython.new/python3-bpython.changes 2015-01-08 23:03:04.000000000 +0100
@@ -1,0 +2,16 @@
+Thu Jan 8 00:47:43 UTC 2015 - arun@gmx.de
+
+- specfile: update copyright year
+
+- update to version 0.13.1:
+ * #287: Turned off dictionary completion in bpython-curtsies
+ * #281: Fixed a crash on error-raising properties
+ * #286: Fixed input in Python 3
+ * #293: Added encoding attribute to stdin bpython curtsies
+ * #296: Fixed warnings in import completion for Python 3
+ * #290: Stop using root logger
+ * #301: Specify curtsies version in requirements
+ * There's also a necessary regression: #232 (adding fileno() on stdin)
+ is reintroduced because its previous fix was found to be the cause of #286
+
+-------------------------------------------------------------------
Old:
----
bpython-0.13.tar.gz
New:
----
bpython-0.13.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-bpython.spec ++++++
--- /var/tmp/diff_new_pack.SEQ9iz/_old 2015-01-08 23:03:05.000000000 +0100
+++ /var/tmp/diff_new_pack.SEQ9iz/_new 2015-01-08 23:03:05.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-bpython
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products 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: python3-bpython
-Version: 0.13
+Version: 0.13.1
Release: 0
Url: http://www.bpython-interpreter.org
Summary: Fancy Curses Interface to the Python Interactive Interpreter
++++++ bpython-0.13.tar.gz -> bpython-0.13.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/CHANGELOG new/bpython-0.13.1/CHANGELOG
--- old/bpython-0.13/CHANGELOG 2014-05-13 00:00:05.000000000 +0200
+++ new/bpython-0.13.1/CHANGELOG 2014-07-16 22:09:10.000000000 +0200
@@ -1,6 +1,22 @@
Changelog
=========
+v0.13.1
+-------
+
+A bugfix release. The fixed bugs are:
+
+* #287: Turned off dictionary completion in bpython-curtsies
+* #281: Fixed a crash on error-raising properties
+* #286: Fixed input in Python 3
+* #293: Added encoding attribute to stdin bpython curtsies
+* #296: Fixed warnings in import completion for Python 3
+* #290: Stop using root logger
+* #301: Specify curtsies version in requirements
+
+There's also a necessary regression: #232 (adding fileno() on stdin)
+is reintroduced because its previous fix was found to be the cause of #286
+
0.13
----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/PKG-INFO new/bpython-0.13.1/PKG-INFO
--- old/bpython-0.13/PKG-INFO 2014-05-13 00:08:01.000000000 +0200
+++ new/bpython-0.13.1/PKG-INFO 2014-07-16 22:17:31.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: bpython
-Version: 0.13
+Version: 0.13.1
Summary: Fancy Interface to the Python Interpreter
Home-page: http://www.bpython-interpreter.org/
Author: Bob Farrell, Andreas Stuehrk et al.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/__init__.py new/bpython-0.13.1/bpython/__init__.py
--- old/bpython-0.13/bpython/__init__.py 2014-05-12 23:59:32.000000000 +0200
+++ new/bpython-0.13.1/bpython/__init__.py 2014-07-16 22:09:25.000000000 +0200
@@ -22,7 +22,7 @@
import os.path
-__version__ = '0.13'
+__version__ = '0.13.1'
package_dir = os.path.abspath(os.path.dirname(__file__))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/cli.py new/bpython-0.13.1/bpython/cli.py
--- old/bpython-0.13/bpython/cli.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/cli.py 2014-07-16 22:09:10.000000000 +0200
@@ -180,9 +180,6 @@
def isatty(self):
return True
- def fileno(self):
- return 0
-
def readline(self, size=-1):
"""I can't think of any reason why anything other than readline would
be useful in the context of an interactive interpreter so this is the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/curtsies.py new/bpython-0.13.1/bpython/curtsies.py
--- old/bpython-0.13/bpython/curtsies.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/curtsies.py 2014-07-16 22:09:10.000000000 +0200
@@ -2,6 +2,7 @@
import sys
import code
+import logging
from optparse import Option
import curtsies
@@ -21,13 +22,20 @@
config, options, exec_args = bpargs.parse(args, (
'scroll options', None, [
Option('--log', '-L', action='store_true',
- help=_("log debug messages to bpython-curtsies.log")),
+ help=_("log debug messages to bpython.log")),
Option('--type', '-t', action='store_true',
help=_("enter lines of file as though interactively typed")),
]))
if options.log:
- import logging
- logging.basicConfig(filename='scroll.log', level=logging.DEBUG)
+ handler = logging.FileHandler(filename='bpython.log')
+ logging.getLogger('curtsies').setLevel(logging.DEBUG)
+ logging.getLogger('curtsies').addHandler(handler)
+ logging.getLogger('curtsies').propagate = False
+ logging.getLogger('bpython').setLevel(logging.DEBUG)
+ logging.getLogger('bpython').addHandler(handler)
+ logging.getLogger('bpython').propagate = False
+ else:
+ logging.getLogger('bpython').setLevel(logging.WARNING)
interp = None
paste = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/curtsiesfrontend/coderunner.py new/bpython-0.13.1/bpython/curtsiesfrontend/coderunner.py
--- old/bpython-0.13/bpython/curtsiesfrontend/coderunner.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/curtsiesfrontend/coderunner.py 2014-07-16 22:09:10.000000000 +0200
@@ -15,6 +15,8 @@
import greenlet
import logging
+logger = logging.getLogger(__name__)
+
class SigintHappened(object):
"""If this class is returned, a SIGINT happened while the main greenlet"""
@@ -142,10 +144,10 @@
def sigint_handler(self, *args):
"""SIGINT handler to use while code is running or request being fufilled"""
if greenlet.getcurrent() is self.code_greenlet:
- logging.debug('sigint while running user code!')
+ logger.debug('sigint while running user code!')
raise KeyboardInterrupt()
else:
- logging.debug('sigint while fufilling code request sigint handler running!')
+ logger.debug('sigint while fufilling code request sigint handler running!')
self.sigint_happened_in_main_greenlet = True
def _blocking_run_code(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/curtsiesfrontend/repl.py new/bpython-0.13.1/bpython/curtsiesfrontend/repl.py
--- old/bpython-0.13/bpython/curtsiesfrontend/repl.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/curtsiesfrontend/repl.py 2014-07-16 22:09:10.000000000 +0200
@@ -38,6 +38,8 @@
from bpython.keys import cli_key_dispatch as key_dispatch
+logger = logging.getLogger(__name__)
+
class FakeStdin(object):
"""Stdin object user code references so sys.stdin.read() asked user for interactive input"""
def __init__(self, coderunner, repl):
@@ -82,7 +84,7 @@
def add_input_character(self, e):
assert len(e) == 1, 'added multiple characters: %r' % e
- logging.debug('adding normal char %r to current line', e)
+ logger.debug('adding normal char %r to current line', e)
c = e if py3 else e.encode('utf8')
self.current_line = (self.current_line[:self.cursor_offset_in_line] +
c +
@@ -114,6 +116,10 @@
# others, so here's a hack to keep them happy
raise IOError(errno.EBADF, "sys.stdin is read-only")
+ @property
+ def encoding(self):
+ return 'UTF8'
+
#TODO write a read() method
class ReevaluateFakeStdin(object):
@@ -160,7 +166,7 @@
interp is an interpreter to use
"""
- logging.debug("starting init")
+ logger.debug("starting init")
if config is None:
config = Struct()
@@ -192,7 +198,7 @@
refresh_request=self.request_refresh
)
self.rl_char_sequences = get_updated_char_sequences(key_dispatch, config)
- logging.debug("starting parent init")
+ logger.debug("starting parent init")
super(Repl, self).__init__(interp, config)
self.formatter = BPythonFormatter(config.color_scheme)
self.interact = self.status_bar # overwriting what bpython.Repl put there
@@ -242,7 +248,7 @@
def clean_up_current_line_for_exit(self):
"""Called when trying to exit to prep for final paint"""
- logging.debug('unhighlighting paren for exit')
+ logger.debug('unhighlighting paren for exit')
self.cursor_offset_in_line = -1
self.unhighlight_paren()
@@ -257,7 +263,7 @@
self.last_events.append(e)
self.last_events.pop(0)
- logging.debug("processing event %r", e)
+ logger.debug("processing event %r", e)
if isinstance(e, events.RefreshRequestEvent):
if self.status_bar.has_focus:
self.status_bar.process_event(e)
@@ -265,7 +271,7 @@
assert self.coderunner.code_is_waiting
self.run_code_and_maybe_finish()
elif isinstance(e, events.WindowChangeEvent):
- logging.debug('window change to %d %d', e.width, e.height)
+ logger.debug('window change to %d %d', e.width, e.height)
self.scroll_offset -= e.cursor_dy
self.width, self.height = e.width, e.height
@@ -289,7 +295,7 @@
return self.stdin.process_event(e)
elif isinstance(e, events.SigIntEvent):
- logging.debug('received sigint event')
+ logger.debug('received sigint event')
self.keyboard_interrupt()
self.update_completion()
return
@@ -386,7 +392,7 @@
"""returns true if all characters on current line before cursor are whitespace"""
return self._current_line[:self.cursor_offset_in_line].strip()
- logging.debug('self.matches: %r', self.matches)
+ logger.debug('self.matches: %r', self.matches)
if not only_whitespace_left_of_cursor():
front_white = (len(self._current_line[:self.cursor_offset_in_line]) -
len(self._current_line[:self.cursor_offset_in_line].lstrip()))
@@ -404,8 +410,8 @@
if not self.config.auto_display_list and not self.list_win_visible:
return True #TODO why?
cw = self.current_string() or self.current_word
- logging.debug('current string: %r', self.current_string())
- logging.debug('current word: %r', self.current_word)
+ logger.debug('current string: %r', self.current_string())
+ logger.debug('current word: %r', self.current_word)
if not cw:
return
@@ -501,7 +507,7 @@
display_line = bpythonparse(format(self.tokenize(line), self.formatter))
# careful: self.tokenize requires that the line not be in self.buffer yet!
- logging.debug('display line being pushed to buffer: %r -> %r', line, display_line)
+ logger.debug('display line being pushed to buffer: %r -> %r', line, display_line)
self.display_buffer.append(display_line)
else:
self.display_buffer.append(fmtstr(line))
@@ -512,14 +518,14 @@
code_to_run = '\n'.join(self.buffer)
- logging.debug('running %r in interpreter', self.buffer)
+ logger.debug('running %r in interpreter', self.buffer)
try:
c = bool(code.compile_command('\n'.join(self.buffer)))
self.saved_predicted_parse_error = False
except (ValueError, SyntaxError, OverflowError):
c = self.saved_predicted_parse_error = True
if c:
- logging.debug('finished - buffer cleared')
+ logger.debug('finished - buffer cleared')
self.display_lines.extend(self.display_buffer_lines)
self.display_buffer = []
self.buffer = []
@@ -531,8 +537,8 @@
def run_code_and_maybe_finish(self, for_code=None):
r = self.coderunner.run_code(for_code=for_code)
if r:
- logging.debug("----- Running finish command stuff -----")
- logging.debug("saved_indent: %r", self.saved_indent)
+ logger.debug("----- Running finish command stuff -----")
+ logger.debug("saved_indent: %r", self.saved_indent)
err = self.saved_predicted_parse_error
self.saved_predicted_parse_error = False
@@ -569,8 +575,8 @@
# then this is the current line, so don't worry about it
return
self.highlighted_paren = None
- logging.debug('trying to unhighlight a paren on line %r', lineno)
- logging.debug('with these tokens: %r', saved_tokens)
+ logger.debug('trying to unhighlight a paren on line %r', lineno)
+ logger.debug('with these tokens: %r', saved_tokens)
new = bpythonparse(format(saved_tokens, self.formatter))
self.display_buffer[lineno] = self.display_buffer[lineno].setslice_with_length(0, len(new), new, len(self.display_buffer[lineno]))
@@ -589,13 +595,13 @@
def send_to_stdout(self, output):
lines = output.split('\n')
- logging.debug('display_lines: %r', self.display_lines)
+ logger.debug('display_lines: %r', self.display_lines)
self.current_stdouterr_line += lines[0]
if len(lines) > 1:
self.display_lines.extend(paint.display_linize(self.current_stdouterr_line, self.width, blank_line=True))
self.display_lines.extend(sum([paint.display_linize(line, self.width, blank_line=True) for line in lines[1:-1]], []))
self.current_stdouterr_line = lines[-1]
- logging.debug('display_lines: %r', self.display_lines)
+ logger.debug('display_lines: %r', self.display_lines)
def send_to_stderr(self, error):
#self.send_to_stdout(error)
@@ -625,12 +631,11 @@
"""The colored current line (no prompt, not wrapped)"""
if self.config.syntax:
fs = bpythonparse(format(self.tokenize(self._current_line), self.formatter))
- logging.debug('Display line %r -> %r', self._current_line, fs)
+ logger.debug('Display line %r -> %r', self._current_line, fs)
else:
fs = fmtstr(self._current_line)
if hasattr(self, 'old_fs') and str(fs) != str(self.old_fs):
pass
- #logging.debug('calculating current formatted line: %r', repr(fs))
self.old_fs = fs
return fs
@@ -655,7 +660,7 @@
def _get_current_word(self):
pos = self.cursor_offset_in_line
- matches = list(re.finditer(r'''[\w_][\w0-9._\[\]']*[(]?''', self._current_line))
+ matches = list(re.finditer(r'[\w_][\w0-9._]*[(]?', self._current_line))
start = pos
end = pos
word = None
@@ -698,7 +703,7 @@
"""Current line, either output/input or Python prompt + code"""
value = (self.current_output_line +
('' if self.coderunner.running else self.display_line_with_prompt))
- logging.debug('current cursor line: %r', value)
+ logger.debug('current cursor line: %r', value)
return value
@property
@@ -741,7 +746,7 @@
#TODO test case of current line filling up the whole screen (there aren't enough rows to show it)
if current_line_start_row < 0: #if current line trying to be drawn off the top of the screen
- logging.debug('#<---History contiguity broken by rewind--->')
+ logger.debug('#<---History contiguity broken by rewind--->')
msg = "#<---History contiguity broken by rewind--->"
arr[0, 0:min(len(msg), width)] = [msg[:width]]
@@ -762,8 +767,8 @@
current_line = paint.paint_current_line(min_height, width, self.current_cursor_line)
if user_quit: # quit() or exit() in interp
current_line_start_row = current_line_start_row - current_line.height
- logging.debug("---current line row slice %r, %r", current_line_start_row, current_line_start_row + current_line.height)
- logging.debug("---current line col slice %r, %r", 0, current_line.width)
+ logger.debug("---current line row slice %r, %r", current_line_start_row, current_line_start_row + current_line.height)
+ logger.debug("---current line col slice %r, %r", 0, current_line.width)
arr[current_line_start_row:current_line_start_row + current_line.height,
0:current_line.width] = current_line
@@ -786,7 +791,7 @@
cursor_row += current_line_start_row
if self.list_win_visible:
- logging.debug('infobox display code running')
+ logger.debug('infobox display code running')
visible_space_above = history.height
visible_space_below = min_height - current_line_end_row - 1
@@ -797,9 +802,9 @@
arr[current_line_start_row - infobox.height:current_line_start_row, 0:infobox.width] = infobox
else:
arr[current_line_end_row + 1:current_line_end_row + 1 + infobox.height, 0:infobox.width] = infobox
- logging.debug('slamming infobox of shape %r into arr of shape %r', infobox.shape, arr.shape)
+ logger.debug('slamming infobox of shape %r into arr of shape %r', infobox.shape, arr.shape)
- logging.debug('about to exit: %r', about_to_exit)
+ logger.debug('about to exit: %r', about_to_exit)
if show_status_bar:
if self.config.curtsies_fill_terminal:
if about_to_exit:
@@ -822,8 +827,8 @@
if self.config.color_scheme['background'] not in ('d', 'D'):
for r in range(arr.height):
arr[r] = fmtstr(arr[r], bg=color_for_letter(self.config.color_scheme['background']))
- logging.debug('returning arr of size %r', arr.shape)
- logging.debug('cursor pos: %r', (cursor_row, cursor_column))
+ logger.debug('returning arr of size %r', arr.shape)
+ logger.debug('cursor pos: %r', (cursor_row, cursor_column))
return arr, (cursor_row, cursor_column)
@contextlib.contextmanager
@@ -849,8 +854,8 @@
my_print('X``'+('`'*(self.width+2))+'``X')
for line in arr:
my_print('X```'+line.ljust(self.width)+'```X')
- logging.debug('line:')
- logging.debug(repr(line))
+ logger.debug('line:')
+ logger.debug(repr(line))
my_print('X``'+('`'*(self.width+2))+'``X')
my_print('X'*(self.width+8))
return max(len(arr) - self.height, 0)
@@ -897,7 +902,7 @@
Supposed to parse and echo a formatted string with appropriate attributes.
It's not supposed to update the screen if it's reevaluating the code (as it
does with undo)."""
- logging.debug("echo called with %r" % msg)
+ logger.debug("echo called with %r" % msg)
def cw(self):
"""Returns the "current word", based on what's directly left of the cursor.
examples inclue "socket.socket.metho" or "self.reco" or "yiel" """
@@ -907,7 +912,7 @@
"many WATs were had - it's the pos from the end of the line back"""
return len(self._current_line) - self.cursor_offset_in_line
def reprint_line(self, lineno, tokens):
- logging.debug("calling reprint line with %r %r", lineno, tokens)
+ logger.debug("calling reprint line with %r %r", lineno, tokens)
if self.config.syntax:
self.display_buffer[lineno] = bpythonparse(format(tokens, self.formatter))
def reevaluate(self, insert_into_history=False):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/curtsiesfrontend/replpainter.py new/bpython-0.13.1/bpython/curtsiesfrontend/replpainter.py
--- old/bpython-0.13/bpython/curtsiesfrontend/replpainter.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/curtsiesfrontend/replpainter.py 2014-07-16 22:09:10.000000000 +0200
@@ -11,6 +11,8 @@
if not py3:
import inspect
+logger = logging.getLogger(__name__)
+
# All paint functions should
# * return an array of the width they were asked for
# * return an array not taller than the height they were asked for
@@ -62,8 +64,8 @@
for m in matches[i:i+words_wide])
for i in range(0, len(matches), words_wide)]
- logging.debug('match: %r' % current)
- logging.debug('matches_lines: %r' % matches_lines)
+ logger.debug('match: %r' % current)
+ logger.debug('matches_lines: %r' % matches_lines)
return matches_lines
def formatted_argspec(argspec, columns, config):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/importcompletion.py new/bpython-0.13.1/bpython/importcompletion.py
--- old/bpython-0.13/bpython/importcompletion.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/importcompletion.py 2014-07-16 22:09:10.000000000 +0200
@@ -26,6 +26,13 @@
import os
import sys
import warnings
+
+if sys.version_info[0] == 3 and sys.version_info[1] >= 3:
+ import importlib.machinery
+ SUFFIXES = importlib.machinery.all_suffixes()
+else:
+ SUFFIXES = [suffix for suffix, mode, type in imp.get_suffixes()]
+
try:
from warnings import catch_warnings
except ImportError:
@@ -119,7 +126,7 @@
except EnvironmentError:
filenames = []
for name in filenames:
- if not any(name.endswith(suffix[0]) for suffix in imp.get_suffixes()):
+ if not any(name.endswith(suffix) for suffix in SUFFIXES):
# Possibly a package
if '.' in name:
continue
@@ -127,9 +134,9 @@
# Unfortunately, CPython just crashes if there is a directory
# which ends with a python extension, so work around.
continue
- for suffix in imp.get_suffixes():
- if name.endswith(suffix[0]):
- name = name[:-len(suffix[0])]
+ for suffix in SUFFIXES:
+ if name.endswith(suffix):
+ name = name[:-len(suffix)]
break
if py3 and name == "badsyntax_pep3120":
# Workaround for issue #166
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/repl.py new/bpython-0.13.1/bpython/repl.py
--- old/bpython-0.13/bpython/repl.py 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/repl.py 2014-07-16 22:09:10.000000000 +0200
@@ -517,7 +517,11 @@
try:
f = self.get_object(func)
- except (AttributeError, NameError, SyntaxError):
+ except Exception:
+ # another case of needing to catch every kind of error
+ # since user code is run in the case of descriptors
+ # XXX: Make sure you raise here if you're debugging the completion
+ # stuff !
return False
if inspect.isclass(f):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bpython-0.13/bpython/translations/de/LC_MESSAGES/bpython.po new/bpython-0.13.1/bpython/translations/de/LC_MESSAGES/bpython.po
--- old/bpython-0.13/bpython/translations/de/LC_MESSAGES/bpython.po 2014-05-12 23:57:28.000000000 +0200
+++ new/bpython-0.13.1/bpython/translations/de/LC_MESSAGES/bpython.po 2014-07-16 22:08:26.000000000 +0200
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bpython mercurial\n"
-"Report-Msgid-Bugs-To: http://bitbucket.org/bobf/bpython/issues\n"
+"Report-Msgid-Bugs-To: http://github.com/bpython/bpython/issues\n"
"POT-Creation-Date: 2013-10-10 23:29+0200\n"
"PO-Revision-Date: 2013-10-11 14:51+0200\n"
"Last-Translator: Sebastian Ramacher