Hello community,

here is the log from the commit of package frescobaldi for openSUSE:Factory 
checked in at 2017-03-31 15:05:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/frescobaldi (Old)
 and      /work/SRC/openSUSE:Factory/.frescobaldi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "frescobaldi"

Fri Mar 31 15:05:52 2017 rev:12 rq:459719 version:2.20.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/frescobaldi/frescobaldi.changes  2016-05-31 
12:24:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.frescobaldi.new/frescobaldi.changes     
2017-03-31 15:05:53.550879270 +0200
@@ -1,0 +2,40 @@
+Wed Feb 22 14:10:48 UTC 2017 - [email protected]
+
+- Update frescobaldi to 2.20.0:
+  * New features:
+    - New Manuscript viewer tool, displaying an "engraver's copy",
+      contributed by Peter Bjuhr and Urs Liska
+    - Copy selected text in Music View
+    - New command Edit->Move to include file...
+    - New quick remove actions to remove beams and ligatures from selected 
music
+    - Search tool in the keyboard shortcuts preferences page (#690)
+  * Improvements:
+    - Fit Width in Music View now fits two pages in width, if in two-page mode
+    - the Music View now remembers the page layout mode
+    - Jump to next or previous bookmark now respects surrounding lines setting
+    - Better default save path, looking at last edited document (#162)
+  * Bug fixes:
+    - fix #716 position of open document tab bar changes on engrave
+    - Midi input fixes by David Rydh:
+      * fix #797 and #853, now honour Midi input port setting
+      * in Midi input, ces and bis now have the correct octave
+      * fix interruption of Midi input by other events than note events
+    - Midi input now uses correct channel, fix by David Kastrup
+    - fix #857 UnicodeDecodeError on some types of \displayMusic command output
+    - fix #891 QTextBlock not hashable anymore
+    - fix #862 midi not loaded on first document load
+  * Translations:
+    - new Swedish translation contributed by Dag Odenhall
+    - updated Dutch by Wilbert Berendsen
+    - updated Italian by Federico Bruni
+    - updated Spanish by Francisco Vila
+    - updated German by Henning Hraban Ramm
+    - updated Czech by Pavel Fric
+- Update python-ly to 0.9.5:
+  * basic support for tokenizing the MUP format 
+  * fix wbsoft/frescobaldi#832: wrong duration handling with \partial when
+    changing durations
+  * xml export tests now work correctly with Python3
+  * fix #74 traversing events fails in empty \alternative
+
+-------------------------------------------------------------------

Old:
----
  frescobaldi-2.19.0.tar.gz
  python-ly-0.9.4.tar.gz

New:
----
  frescobaldi-2.20.0.tar.gz
  python-ly-0.9.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ frescobaldi.spec ++++++
--- /var/tmp/diff_new_pack.8fyAEF/_old  2017-03-31 15:05:54.542739048 +0200
+++ /var/tmp/diff_new_pack.8fyAEF/_new  2017-03-31 15:05:54.542739048 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package frescobaldi
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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
@@ -20,15 +20,15 @@
 Summary:        Lilypond editor
 License:        GPL-2.0+
 Group:          Productivity/Multimedia/Sound/Editors and Convertors
-Version:        2.19.0
+Version:        2.20.0
 Release:        0
 Url:            http://www.frescobaldi.org/
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Source0:        %{name}-%{version}.tar.gz
 # New package, was before part of frescobaldi
 # Url: https://pypi.python.org/pypi/python-ly
-# Split off into separate package?
-Source1:        python-ly-0.9.4.tar.gz
+# Keep in this package, because frescobaldi is the only one using it.
+Source1:        python-ly-0.9.5.tar.gz
 BuildRequires:  hicolor-icon-theme
 BuildRequires:  python3-devel
 BuildRequires:  update-desktop-files
@@ -59,7 +59,7 @@
 %install
 %suse_update_desktop_file %{name} Multimedia AudioVideoEditing
 # first install python-ly
-cd python-ly-0.9.4
+cd python-ly-0.9.5
 python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
 cd ..
 python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}

++++++ frescobaldi-2.19.0.tar.gz -> frescobaldi-2.20.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/frescobaldi/frescobaldi-2.19.0.tar.gz 
/work/SRC/openSUSE:Factory/.frescobaldi.new/frescobaldi-2.20.0.tar.gz differ: 
char 24, line 1

++++++ python-ly-0.9.4.tar.gz -> python-ly-0.9.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ChangeLog 
new/python-ly-0.9.5/ChangeLog
--- old/python-ly-0.9.4/ChangeLog       2016-04-20 01:24:12.000000000 +0200
+++ new/python-ly-0.9.5/ChangeLog       2017-02-17 07:19:49.000000000 +0100
@@ -2,6 +2,15 @@
 =======================
 
 
+2017-02-17: python-ly 0.9.5
+
+- basic support for tokenizing the MUP format 
+- fix wbsoft/frescobaldi#832: wrong duration handling with \partial when
+  changing durations
+- xml export tests now work correctly with Python3
+- fix #74 traversing events fails in empty \alternative
+
+
 2016-04-20: python-ly 0.9.4
 
 - support LilyPond 2.18+ behaviour on \relative without startpitch in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/colorize.py 
new/python-ly-0.9.5/ly/colorize.py
--- old/python-ly-0.9.4/ly/colorize.py  2016-04-20 01:24:12.000000000 +0200
+++ new/python-ly-0.9.5/ly/colorize.py  2017-02-17 07:19:49.000000000 +0100
@@ -94,6 +94,7 @@
     from ly.lex import texinfo
     #from ly.lex import latex
     #from ly.lex import docbook
+    from ly.lex import mup
 
     return (
         ('lilypond', (
@@ -161,6 +162,13 @@
             style('verbatim', 'string', (texinfo.Verbatim,)),
             style('comment', 'comment', (texinfo.Comment,)),
         )),
+        ('mup', (
+            style('string', 'string', (mup.String,)),
+            style('stringescape', 'escape', (mup.StringQuoteEscape,)),
+            style('comment', 'comment', (mup.Comment,)),
+            style('macro', 'variable', (mup.Macro,)),
+            style('preprocessor', 'keyword', (mup.Preprocessor,)),
+        )),
     ) # end of mapping
 
 
@@ -240,6 +248,8 @@
     },
     'texinfo': {
     },
+    'mup': {
+    },
 } # end of default_css_styles
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/lex/_mode.py 
new/python-ly-0.9.5/ly/lex/_mode.py
--- old/python-ly-0.9.4/ly/lex/_mode.py 2016-04-20 01:24:12.000000000 +0200
+++ new/python-ly-0.9.5/ly/lex/_mode.py 2017-02-17 07:19:49.000000000 +0100
@@ -77,6 +77,10 @@
         from . import html
         return html.ParseHTML
         
+    def mup():
+        from . import mup
+        return mup.ParseMup
+    
     # more modes can be added here
     return locals()
     
@@ -111,6 +115,11 @@
         return "scheme"
     if text.startswith('@'):
         return "texinfo"
+    if text.startswith('//'):
+        return "mup"
+    s = text.split(None, 1)
+    if s and s[0] in ('include', 'score', 'music'):
+        return "mup"
     return "lilypond"
 
 
@@ -123,5 +132,6 @@
     'latex':    '.lytex',
     'texinfo':  '.texi',
     'docbook':  '.docbook',
+    'mup':      '.mup',
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/lex/lilypond.py 
new/python-ly-0.9.5/ly/lex/lilypond.py
--- old/python-ly-0.9.4/ly/lex/lilypond.py      2016-04-20 01:24:12.000000000 
+0200
+++ new/python-ly-0.9.5/ly/lex/lilypond.py      2017-02-17 07:19:49.000000000 
+0100
@@ -573,6 +573,10 @@
     rx = r"[-~](?=\s*\d)"
 
 
+class Partial(Command):
+    rx = r"\\partial\b"
+
+
 class Override(Keyword):
     rx = r"\\override\b"
     def update_state(self, state):
@@ -915,6 +919,7 @@
     With,
     Clef,
     Tempo,
+    Partial,
     KeySignatureMode,
     AccidentalStyle,
     AlterBroken,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/lex/mup.py 
new/python-ly-0.9.5/ly/lex/mup.py
--- old/python-ly-0.9.4/ly/lex/mup.py   1970-01-01 01:00:00.000000000 +0100
+++ new/python-ly-0.9.5/ly/lex/mup.py   2017-02-17 07:19:49.000000000 +0100
@@ -0,0 +1,91 @@
+# This file is part of python-ly, https://pypi.python.org/pypi/python-ly
+#
+# Copyright (c) 2008 - 2015 by Wilbert Berendsen
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+# See http://www.gnu.org/licenses/ for more information.
+
+"""
+Parses and tokenizes MUP input.
+
+MUP (www.arkkra.com) is an open source music typesetter (formerly shareware).
+
+We add a tokenizer here, to enable a decent mup2ly conversion.
+
+"""
+
+from __future__ import unicode_literals
+
+
+from . import _token
+from . import Parser, FallthroughParser
+
+
+class Comment(_token.Comment):
+    pass
+
+
+class LineComment(Comment):
+    rx = r"//.*$"
+
+
+class String(_token.String):
+    pass
+
+
+class StringQuotedStart(String, _token.StringStart):
+    rx = r'"'
+    def update_state(self, state):
+        state.enter(ParseString())
+        
+
+class StringQuotedEnd(String, _token.StringEnd):
+    rx = r'"'
+    def update_state(self, state):
+        state.leave()
+        state.endArgument()
+
+
+class StringQuoteEscape(_token.Character):
+    rx = r'\\[\\"]'
+
+
+class Macro(_token.Token):
+    rx = r'\b[A-Z][A-Z0-9_]*'
+
+
+class Preprocessor(_token.Token):
+    rx = (r'\b('
+        'if|then|else|endif|define|undef|ifdef|ifndef'
+        r')\b|@')
+
+
+class ParseMup(Parser):
+    mode = "mup"
+    items = (
+        LineComment,
+        StringQuotedStart,
+        Macro,
+        Preprocessor,
+    )
+
+
+class ParseString(Parser):
+    default = String
+    items = (
+        StringQuotedEnd,
+        StringQuoteEscape,
+    )
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/music/items.py 
new/python-ly-0.9.5/ly/music/items.py
--- old/python-ly-0.9.4/ly/music/items.py       2016-04-20 01:24:12.000000000 
+0200
+++ new/python-ly-0.9.5/ly/music/items.py       2017-02-17 07:19:49.000000000 
+0100
@@ -694,7 +694,7 @@
         
         if e.unfold_repeats or self.specifier() != "volta":
             count = self.repeat_count()
-            if alt and len(alt):
+            if alt and len(alt) and len(alt[0]):
                 alts = list(alt[0])[:count+1]
                 alts[0:0] = [alts[0]] * (count - len(alts))
                 for a in alts:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/pkginfo.py 
new/python-ly-0.9.5/ly/pkginfo.py
--- old/python-ly-0.9.4/ly/pkginfo.py   2016-04-20 01:24:12.000000000 +0200
+++ new/python-ly-0.9.5/ly/pkginfo.py   2017-02-17 07:19:49.000000000 +0100
@@ -31,7 +31,7 @@
 name = "python-ly"
 
 #: the current version
-version = "0.9.4"
+version = "0.9.5"
 
 #: short description
 description = "Tool and library for manipulating LilyPond files"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/ly/rhythm.py 
new/python-ly-0.9.5/ly/rhythm.py
--- old/python-ly-0.9.4/ly/rhythm.py    2016-04-20 01:24:12.000000000 +0200
+++ new/python-ly-0.9.5/ly/rhythm.py    2017-02-17 07:19:49.000000000 +0100
@@ -66,7 +66,8 @@
     ly.lex.lilypond.Accidental,
     ly.lex.lilypond.OctaveCheck,
     ly.lex.lilypond.Duration,
-    ly.lex.lilypond.Tempo
+    ly.lex.lilypond.Tempo,
+    ly.lex.lilypond.Partial
 )
 
 _stay = (
@@ -156,7 +157,7 @@
                 dur_tokens.append(t)
             else:
                 tokens.append(t)
-        may_remove = not any(map(('\\skip', '\\tempo', 
'\\tuplet').__contains__, tokens))
+        may_remove = not any(map(('\\skip', '\\tempo', '\\tuplet', 
'\\partial').__contains__, tokens))
         if dur_tokens:
             insert_pos = dur_tokens[0].pos
         else:
@@ -312,7 +313,7 @@
     prev = item.dur_tokens or preceding_duration(cursor)
     with cursor.document as d:
         for item in items:
-            if '\\tempo' not in item.tokens and '\\tuplet' not in item.tokens:
+            if not set(item.tokens) & set(('\\tempo', '\\tuplet', 
'\\partial')):
                 if item.dur_tokens:
                     if item.dur_tokens == prev and item.may_remove:
                         del d[item.dur_tokens[0].pos:item.dur_tokens[-1].end]
@@ -329,7 +330,7 @@
     previous_block = cursor.document.block(prev[0].pos)
     with cursor.document as d:
         for item in items:
-            if '\\tempo' not in item.tokens and '\\tuplet' not in item.tokens:
+            if not set(item.tokens) & set(('\\tempo', '\\tuplet', 
'\\partial')):
                 block = d.block( (item.dur_tokens or item.tokens) [0].pos)
                 if block != previous_block:
                     if not item.dur_tokens:
@@ -352,7 +353,7 @@
     prev = item.dur_tokens or preceding_duration(cursor)
     with cursor.document as d:
         for item in items:
-            if '\\tempo' not in item.tokens and '\\tuplet' not in item.tokens:
+            if not set(item.tokens) & set(('\\tempo', '\\tuplet', 
'\\partial')):
                 if item.dur_tokens:
                     prev = item.dur_tokens
                 else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ly-0.9.4/tests/test_xml.py 
new/python-ly-0.9.5/tests/test_xml.py
--- old/python-ly-0.9.4/tests/test_xml.py       2016-04-20 01:24:12.000000000 
+0200
+++ new/python-ly-0.9.5/tests/test_xml.py       2017-02-17 07:19:49.000000000 
+0100
@@ -4,7 +4,7 @@
 import ly.musicxml
 from lxml import etree
 import os
-import StringIO
+import io
 
 
 def test_glissando():
@@ -37,7 +37,7 @@
     with open(filename, 'r') as lyfile:
         writer.parse_text(lyfile.read())
     xml = writer.musicxml()
-    sio = StringIO.StringIO()
+    sio = io.StringIO()
     xml.write(sio, "utf-8")
     return sio.getvalue()
 


Reply via email to