From 0fd2ed230ea6d53adb5e627731672c996485167b Mon Sep 17 00:00:00 2001 From: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl> Date: Mon, 24 Jan 2011 12:27:35 +0100 Subject: [PATCH] fixes #1060: sorted and unique editors' names tests fix --- librarian/dcparser.py | 5 +++ librarian/epub/xsltLast.xsl | 3 +- librarian/pdf.py | 2 +- librarian/pdf/wl.sty | 2 +- librarian/pdf/wl2tex.xslt | 12 ++++-- librarian/text.py | 8 ++-- .../text/asnyk_miedzy_nami_expected.html | 38 +++++++------------ .../files/text/asnyk_miedzy_nami_expected.txt | 32 ++++++++-------- tests/files/text/asnyk_miedzy_nami_nodc.txt | 0 tests/test_html.py | 2 +- tests/test_text.py | 12 +++--- 11 files changed, 58 insertions(+), 58 deletions(-) delete mode 100644 tests/files/text/asnyk_miedzy_nami_nodc.txt diff --git a/librarian/dcparser.py b/librarian/dcparser.py index 49a33d4..e2f91a0 100644 --- a/librarian/dcparser.py +++ b/librarian/dcparser.py @@ -44,6 +44,11 @@ class Person(object): def __eq__(self, right): return self.last_name == right.last_name and self.first_names == right.first_names + def __cmp__(self, other): + return cmp((self.last_name, self.first_names), (other.last_name, other.first_names)) + + def __hash__(self): + return hash((self.last_name, self.first_names)) def __unicode__(self): if len(self.first_names) > 0: diff --git a/librarian/epub/xsltLast.xsl b/librarian/epub/xsltLast.xsl index 3949878..0739606 100644 --- a/librarian/epub/xsltLast.xsl +++ b/librarian/epub/xsltLast.xsl @@ -81,7 +81,8 @@ <xsl:if test="//dc:contributor.editor|//dc:contributor.technical_editor"> <p class="info"> <xsl:text>Opracowanie redakcyjne i przypisy: </xsl:text> - <xsl:for-each select="//dc:contributor.editor|//dc:contributor.technical_editor"> + <xsl:for-each select="//dc:contributor.editor|//dc:contributor.technical_editor[not(//dc:contributor.editor/text()=text())]"> + <xsl:sort /> <xsl:if test="position() != 1">, </xsl:if> <xsl:apply-templates mode="person" /> </xsl:for-each>. diff --git a/librarian/pdf.py b/librarian/pdf.py index f8a4d73..41de1b3 100644 --- a/librarian/pdf.py +++ b/librarian/pdf.py @@ -135,6 +135,7 @@ def parse_creator(doc): p = Person.from_text(person.text) person_parsed = deepcopy(person) person_parsed.tag = person.tag + '_parsed' + person_parsed.set('sortkey', person.text) person_parsed.text = p.readable() person.getparent().insert(0, person_parsed) @@ -288,7 +289,6 @@ def load_including_children(provider, slug=None, uri=None, file_path=None): parse_dublincore=True) f.close() - print document.book_info for child_uri in document.book_info.parts: print child_uri child = load_including_children(provider, uri=child_uri) diff --git a/librarian/pdf/wl.sty b/librarian/pdf/wl.sty index 3a8016f..897535e 100644 --- a/librarian/pdf/wl.sty +++ b/librarian/pdf/wl.sty @@ -142,7 +142,7 @@ Letters={SmallCaps,UppercaseSmallCaps} \description \vspace{.6em} - Opracowanie redakcyjne i przypisy: \editors. + \editors \color{black} } diff --git a/librarian/pdf/wl2tex.xslt b/librarian/pdf/wl2tex.xslt index 4ca109e..c577313 100644 --- a/librarian/pdf/wl2tex.xslt +++ b/librarian/pdf/wl2tex.xslt @@ -340,10 +340,14 @@ </xsl:template> <xsl:template name="editors"> - <xsl:for-each select=".//dc:contributor.editor_parsed|.//dc:contributor.technical_editor_parsed"> - <xsl:if test="position() != 1">, </xsl:if> - <xsl:apply-templates mode="inline" /> - </xsl:for-each> + <xsl:if test="//dc:contributor.editor_parsed|//dc:contributor.technical_editor_parsed"> + <xsl:text>Opracowanie redakcyjne i przypisy: </xsl:text> + <xsl:for-each select="//dc:contributor.editor_parsed|//dc:contributor.technical_editor_parsed[not(//dc:contributor.editor_parsed/text()=text())]"> + <xsl:sort select="@sortkey" /> + <xsl:if test="position() != 1">, </xsl:if> + <xsl:apply-templates mode="inline" /> + </xsl:for-each>. + </xsl:if> </xsl:template> <xsl:template name="translators"> diff --git a/librarian/text.py b/librarian/text.py index 64c956e..bcb031d 100644 --- a/librarian/text.py +++ b/librarian/text.py @@ -25,9 +25,7 @@ Utwór opracowany zostaÅ w ramach projektu Wolne Lektury przez fundacjÄ Nowocz %(license_description)s.%(source)s -%(description)s - -Opracowanie redakcyjne i przypisy: %(contributors)s +%(description)s%(contributors)s """ def transform(input_file, output_file, parse_dublincore=True, **options): @@ -57,7 +55,9 @@ def transform(input_file, output_file, parse_dublincore=True, **options): else: source = '' - contributors = ', '.join(person.readable() for person in (parsed_dc.technical_editors + parsed_dc.editors)) + contributors = ', '.join(person.readable() for person in sorted(set(parsed_dc.technical_editors + parsed_dc.editors))) + if contributors: + contributors = "\n\nOpracowanie redakcyjne i przypisy: %s" % contributors else: description = 'Publikacja zrealizowana w ramach projektu Wolne Lektury (http://wolnelektury.pl).' url = '*' * 10 diff --git a/tests/files/text/asnyk_miedzy_nami_expected.html b/tests/files/text/asnyk_miedzy_nami_expected.html index 456aaf6..6bc7649 100644 --- a/tests/files/text/asnyk_miedzy_nami_expected.html +++ b/tests/files/text/asnyk_miedzy_nami_expected.html @@ -1,4 +1,4 @@ -<div xmlns:wl="http://wolnelektury.pl/functions" id="book-text"> +<div xmlns:wl="http://wolnelektury.pl/functions" xmlns:dc="http://purl.org/dc/elements/1.1/" id="book-text"> <div id="toc"> <h2>Spis treÅci</h2> <ol></ol> @@ -8,38 +8,26 @@ </h1> <a name="m1189062500041" class="theme-begin" fid="1189062500041">MiÅoÅÄ platoniczna</a><div class="stanza"> <p class="verse"><a name="f1" class="target"> </a><a href="#f1" class="anchor">1</a>MiÄdzy nami nic nie byÅo!</p> -<p class="verse"> -Å»adnych zwierzeÅ, wyznaŠżadnych!</p> -<p class="verse"> -Nic nas z sobÄ nie ÅÄ czyÅo â</p> -<p class="verse"> -Prócz wiosennych marzeÅ zdradnych;</p> +<p class="verse">Å»adnych zwierzeÅ, wyznaŠżadnych!</p> +<p class="verse">Nic nas z sobÄ nie ÅÄ czyÅo â</p> +<p class="verse">Prócz wiosennych marzeÅ zdradnych;</p> </div> <div class="stanza"> <p class="verse"><a name="f5" class="target"> </a><a href="#f5" class="anchor">5</a><a name="m1189062528872" class="theme-begin" fid="1189062528872">Natura</a>Prócz tych woni, barw i blasków,</p> -<p class="verse"> -UnoszÄ cych siÄ w przestrzeni;</p> -<p class="verse"> -Prócz szumiÄ cych Åpiewem lasków</p> -<p class="verse"> -I tej Åwieżej ÅÄ k zieleni;</p> +<p class="verse">UnoszÄ cych siÄ w przestrzeni;</p> +<p class="verse">Prócz szumiÄ cych Åpiewem lasków</p> +<p class="verse">I tej Åwieżej ÅÄ k zieleni;</p> </div> <div class="stanza"> <p class="verse">Prócz tych kaskad i potoków,</p> -<p class="verse"><a name="f10" class="target"> </a><a href="#f10" class="anchor">10</a> -ZraszajÄ cych każdy parów,</p> -<p class="verse"> -Prócz girlandy tÄcz, obÅoków,</p> -<p class="verse"> -Prócz natury sÅodkich czarów;</p> +<p class="verse"><a name="f10" class="target"> </a><a href="#f10" class="anchor">10</a>ZraszajÄ cych każdy parów,</p> +<p class="verse">Prócz girlandy tÄcz, obÅoków,</p> +<p class="verse">Prócz natury sÅodkich czarów;</p> </div> <div class="stanza"> <p class="verse">Prócz tych wspólnych, jasnych zdrojów,</p> -<p class="verse"> -Z których serce zachwyt piÅo;</p> -<p class="verse"><a name="f15" class="target"> </a><a href="#f15" class="anchor">15</a> -Prócz pierwiosnków i powojów,â</p> -<p class="verse"> -MiÄdzy nami nic nie byÅo!<span class="theme-end" fid="1189062528872"></span><span class="theme-end" fid="1189062500041"></span></p> +<p class="verse">Z których serce zachwyt piÅo;</p> +<p class="verse"><a name="f15" class="target"> </a><a href="#f15" class="anchor">15</a>Prócz pierwiosnków i powojów,â</p> +<p class="verse">MiÄdzy nami nic nie byÅo!<span class="theme-end" fid="1189062528872"></span><span class="theme-end" fid="1189062500041"></span></p> </div> </div> diff --git a/tests/files/text/asnyk_miedzy_nami_expected.txt b/tests/files/text/asnyk_miedzy_nami_expected.txt index 4441c70..70c3185 100644 --- a/tests/files/text/asnyk_miedzy_nami_expected.txt +++ b/tests/files/text/asnyk_miedzy_nami_expected.txt @@ -1,18 +1,3 @@ -Kodowanie znaków w dokumencie: UTF-8. ------ -Publikacja zrealizowana w ramach projektu Wolne Lektury (http://wolnelektury.pl). Reprodukcja cyfrowa wykonana przez BibliotekÄ NarodowÄ z egzemplarza pochodzÄ cego ze zbiorów BN. - -Ten utwór nie jest chroniony prawem autorskim i znajduje siÄ w domenie publicznej, co oznacza, że możesz go swobodnie wykorzystywaÄ, publikowaÄ i rozpowszechniaÄ. - -Na podstawie: (Asnyk, Adam) El...y (1838-1897), Poezye, t. 3, Gebethner i Wolff, wyd. nowe poprzedzone sÅowem wstÄpnym St. KrzemiÅskiego, Warszawa, 1898 - -Wersja lektury w opracowaniu merytorycznym i krytycznym (przypisy i motywy) dostÄpna jest na stronie http://wolnelektury.pl/katalog/lektura/miedzy-nami-nic-nie-bylo. ------ - - - - - Adam Asnyk MiÄdzy nami nic nie byÅo @@ -38,3 +23,20 @@ Prócz tych wspólnych, jasnych zdrojów, Z których serce zachwyt piÅo; Prócz pierwiosnków i powojów,â MiÄdzy nami nic nie byÅo! + + + + +----- +Ta lektura, podobnie jak tysiÄ ce innych, dostÄpna jest na stronie wolnelektury.pl. +Wersja lektury w opracowaniu merytorycznym i krytycznym (przypisy i motywy) dostÄpna jest na stronie http://wolnelektury.pl/katalog/lektura/miedzy-nami-nic-nie-bylo. + +Utwór opracowany zostaÅ w ramach projektu Wolne Lektury przez fundacjÄ Nowoczesna Polska. + +Ten utwór nie jest chroniony prawem autorskim i znajduje siÄ w domenie publicznej, co oznacza że możesz go swobodnie wykorzystywaÄ, publikowaÄ i rozpowszechniaÄ. JeÅli utwór opatrzony jest dodatkowymi materiaÅami (przypisy, motywy literackie etc.), które podlegajÄ prawu autorskiemu, to te dodatkowe materiaÅy udostÄpnione sÄ na licencji Creative Commons Uznanie Autorstwa â Na Tych Samych Warunkach 3.0 PL (http://creativecommons.org/licenses/by-sa/3.0/). + +Tekst opracowany na podstawie: (Asnyk, Adam) El...y (1838-1897), Poezye, t. 3, Gebethner i Wolff, wyd. nowe poprzedzone sÅowem wstÄpnym St. KrzemiÅskiego, Warszawa, 1898 + +Publikacja zrealizowana w ramach projektu Wolne Lektury (http://wolnelektury.pl). Reprodukcja cyfrowa wykonana przez BibliotekÄ NarodowÄ z egzemplarza pochodzÄ cego ze zbiorów BN. + +Opracowanie redakcyjne i przypisy: Aleksandra SekuÅa, Olga Sutkowska diff --git a/tests/files/text/asnyk_miedzy_nami_nodc.txt b/tests/files/text/asnyk_miedzy_nami_nodc.txt deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_html.py b/tests/test_html.py index 4fbbaad..5187e06 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -29,7 +29,7 @@ def test_transform(): def test_no_dublincore(): html.transform( get_fixture('text', 'asnyk_miedzy_nami_nodc.xml'), - get_fixture('text', 'asnyk_miedzy_nami_nodc.html'), + get_fixture('text', 'asnyk_miedzy_nami.html'), ) diff --git a/tests/test_text.py b/tests/test_text.py index 5b01718..7ff94ca 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -18,8 +18,8 @@ def test_transform(): expected_output_file_path = get_fixture('text', 'asnyk_miedzy_nami_expected.txt') text.transform( - get_fixture('text', 'asnyk_miedzy_nami.xml'), - output_file_path, + open(get_fixture('text', 'asnyk_miedzy_nami.xml')), + open(output_file_path, 'w'), ) assert_equal(file(output_file_path).read(), file(expected_output_file_path).read()) @@ -29,8 +29,8 @@ def test_transform(): @raises(NoDublinCore) def test_no_dublincore(): text.transform( - get_fixture('text', 'asnyk_miedzy_nami_nodc.xml'), - get_fixture('text', 'asnyk_miedzy_nami_nodc.txt'), + open(get_fixture('text', 'asnyk_miedzy_nami_nodc.xml')), + open(get_fixture('text', 'asnyk_miedzy_nami.txt'), 'w'), ) @@ -38,7 +38,7 @@ def test_no_dublincore(): def test_passing_parse_dublincore_to_transform(): """Passing parse_dublincore=False to transform omits DublinCore parsing.""" text.transform( - get_fixture('text', 'asnyk_miedzy_nami_nodc.xml'), - get_fixture('text', 'asnyk_miedzy_nami.txt'), + open(get_fixture('text', 'asnyk_miedzy_nami_nodc.xml')), + open(get_fixture('text', 'asnyk_miedzy_nami.txt'), 'w'), parse_dublincore=False, ) -- 2.20.1