X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/33165a21eb5b83f96d73e616414a1ee9e7227013..5bc29f19f308610c944d63597962fb3b0f468c54:/librarian/functions.py diff --git a/librarian/functions.py b/librarian/functions.py index e5023b3..9490cbb 100644 --- a/librarian/functions.py +++ b/librarian/functions.py @@ -14,7 +14,7 @@ def _register_function(f): ns[f.__name__] = f -def reg_substitute_entities(): +def reg_substitute_entities(): ENTITY_SUBSTITUTIONS = [ (u'---', u'—'), (u'--', u'–'), @@ -91,8 +91,7 @@ def reg_person_name(): """ Converts "Name, Forename" to "Forename Name" """ if isinstance(text, list): text = ''.join(text) - p = Person.from_text(text) - return ' '.join(p.first_names + (p.last_name,)) + return Person.from_text(text).readable() _register_function(person_name) @@ -105,3 +104,17 @@ def reg_texcommand(): _register_function(texcommand) +def reg_get(format_): + def get(context, *args): + obj = format_ + for arg in args: + if hasattr(obj, arg): + obj = getattr(obj, arg) + else: + try: + obj = obj[arg] + except (TypeError, KeyError), e: + # Just raise proper AttributeError. + getattr(obj, arg) + return obj + _register_function(get)