Browse Source

Consider 'error' argument for the songlist parsing

pull/226/head
Oliverpool 9 years ago
parent
commit
c13334e947
  1. 8
      patacrep/content/__init__.py
  2. 1
      patacrep/data/templates/songbook_model.yml

8
patacrep/content/__init__.py

@ -185,6 +185,12 @@ class ContentList:
continue continue
yield from item.iter_errors() yield from item.iter_errors()
def has_errors(self):
"""Return `True` iff errors has been found."""
for _ in self.iter_errors():
return True
return False
class EmptyContentList(ContentList): class EmptyContentList(ContentList):
"""Empty content list: contain only errors.""" """Empty content list: contain only errors."""
def __init__(self, *, errors): def __init__(self, *, errors):
@ -281,4 +287,6 @@ def process_content(content, config=None):
contentlist.append_error(error) contentlist.append_error(error)
else: else:
contentlist.append_error(ContentError(str(elem), "Unknown content type.")) contentlist.append_error(ContentError(str(elem), "Unknown content type."))
if contentlist.has_errors() and config['_error'] in ("failonsong", "failonbook"):
raise ContentError("Error while parsing the 'content' section of the songbook. Stopping as requested.")
return contentlist return contentlist

1
patacrep/data/templates/songbook_model.yml

@ -99,6 +99,7 @@ schema:
- type: //nil - type: //nil
default: default:
en: en:
_error: "fix"
_datadir: [] # For test reasons _datadir: [] # For test reasons
book: book:
lang: en lang: en

Loading…
Cancel
Save