X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=file_writer.py;h=fced44939cddc73681d6008f94ee589caf97a8e2;hb=da3a11e9fcea80a7700eb54605512d331a9ec612;hp=ad067104f4980d247f432c6b50789ed2d49c2998;hpb=c06bfef53f70551e7920bc4facce27f47b89e2ba;p=kiosk.git diff --git a/file_writer.py b/file_writer.py index ad06710..fced449 100644 --- a/file_writer.py +++ b/file_writer.py @@ -2,12 +2,15 @@ import constants import os +from uuid import uuid4 class file_writer: """Helper context to write a pages file.""" def __init__(self, filename: str, *, transformations=[]): + temp = "temp-" + str(uuid4()) + self.temp_filename = os.path.join(constants.pages_dir, temp) self.full_filename = os.path.join(constants.pages_dir, filename) self.xforms = [file_writer.remove_tricky_unicode] self.xforms.extend(transformations) @@ -16,7 +19,6 @@ class file_writer: @staticmethod def remove_tricky_unicode(x: str) -> str: try: - x = x.decode("utf-8") x = x.replace("\u2018", "'").replace("\u2019", "'") x = x.replace("\u201c", '"').replace("\u201d", '"') x = x.replace("\u2e3a", "-").replace("\u2014", "-") @@ -30,11 +32,14 @@ class file_writer: self.f.write(data.encode("utf-8")) def __enter__(self): - self.f = open(self.full_filename, "wb") + self.f = open(self.temp_filename, "wb") return self def __exit__(self, exc_type, exc_value, exc_traceback): self.close() + cmd = f'/bin/mv -f {self.temp_filename} "{self.full_filename}"' + os.system(cmd) + print(cmd) def done(self): self.close() @@ -44,8 +49,8 @@ class file_writer: # Test -# def toupper(x): +#def toupper(x): # return x.upper() -# -# with file_writer("test", transformations=[toupper]) as fw: -# fw.write(u"Another test!!") + +#with file_writer("test", transformations=[toupper]) as fw: +# fw.write(u"Another test!!")