Separate the general from the WL-specific: PDF
[librarian.git] / librarian / functions.py
index 523b3d5..9490cbb 100644 (file)
@@ -104,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)