changeset 173:197a41520ad1

Tweak resources.get_file to allow creating non-existant files
author Neil Muller <drnlmuller@gmail.com>
date Tue, 03 Sep 2013 16:07:56 +0200
parents 60e7c1c204e8
children 3221eaa77568
files nagslang/resources.py
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/resources.py	Tue Sep 03 15:37:09 2013 +0200
+++ b/nagslang/resources.py	Tue Sep 03 16:07:56 2013 +0200
@@ -18,6 +18,10 @@
         self.language = language.split('_', 1)[0] if language else None
         self._cache = {}
 
+    def create_resource_path(self, *path_fragments):
+        return resource_filename(self.resource_module,
+                                 os.path.join(*path_fragments))
+
     def get_resource_path(self, *path_fragments):
         for mod, full_path_fragments in self.lang_locations(path_fragments):
             path = resource_filename(mod, os.path.join(*full_path_fragments))
@@ -41,7 +45,13 @@
 
     def get_file(self, *path_fragments, **kw):
         mode = kw.get('mode', "rU")
-        path = self.get_resource_path(*path_fragments)
+        try:
+            path = self.get_resource_path(*path_fragments)
+        except ResourceNotFound:
+            if 'w' in mode:
+                path = self.create_resource_path(*path_fragments)
+            else:
+                raise
         return file(path, mode)
 
     def get_image(self, *name_fragments, **kw):