- def add_xform(self, xform):
- self.xforms.append(xform)
+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(kiosk_constants.pages_dir, temp)
+ self.full_filename = os.path.join(kiosk_constants.pages_dir, filename)
+ self.xforms = [file_writer.remove_tricky_unicode]
+ self.xforms.extend(transformations)
+ self.f = None
+ logger.info(f"Writing {self.temp_filename}...")
+
+ @staticmethod
+ def remove_tricky_unicode(x: str) -> str:
+ try:
+ x = x.replace("\u2018", "'").replace("\u2019", "'")
+ x = x.replace("\u201c", '"').replace("\u201d", '"')
+ x = x.replace("\u2e3a", "-").replace("\u2014", "-")
+ except:
+ pass
+ return x