From 9078079241332affb5e675424f46accfdf8896b2 Mon Sep 17 00:00:00 2001 From: TheJackiMonster Date: Fri, 14 May 2021 19:46:39 +0200 Subject: [PATCH] Added remove function for file types Signed-off-by: TheJackiMonster --- manuskript/data/project.py | 11 +++++++++++ manuskript/io/abstractFile.py | 3 +++ manuskript/io/mmdFile.py | 6 +++++- manuskript/io/mskFile.py | 6 ++++++ manuskript/io/textFile.py | 6 ++++++ manuskript/io/xmlFile.py | 6 ++++++ manuskript/io/zipFile.py | 7 ++++++- 7 files changed, 43 insertions(+), 2 deletions(-) diff --git a/manuskript/data/project.py b/manuskript/data/project.py index cbc063e6..a9a80ec2 100644 --- a/manuskript/data/project.py +++ b/manuskript/data/project.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # --!-- coding: utf8 --!-- +import os + from zipfile import BadZipFile from manuskript.data.info import Info from manuskript.data.summary import Summary @@ -34,6 +36,15 @@ class Project: def __del__(self): del self.file + def getName(self): + parts = os.path.split(self.file.path) + name = parts[-1] + + if name.endswith('.msk'): + name = name[:-4] + + return name + def load(self): try: self.file.load() diff --git a/manuskript/io/abstractFile.py b/manuskript/io/abstractFile.py index 679890ba..574cf73a 100644 --- a/manuskript/io/abstractFile.py +++ b/manuskript/io/abstractFile.py @@ -12,3 +12,6 @@ class AbstractFile: def save(self, content): raise IOError('Saving undefined!') + + def remove(self): + raise IOError('Removing undefined!') diff --git a/manuskript/io/mmdFile.py b/manuskript/io/mmdFile.py index 076c7e1c..e881dcb6 100644 --- a/manuskript/io/mmdFile.py +++ b/manuskript/io/mmdFile.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # --!-- coding: utf8 --!-- - +import os import re from manuskript.io.abstractFile import AbstractFile @@ -77,3 +77,7 @@ class MmdFile(AbstractFile): if not (body is None): file.write("\n" + body) + + def remove(self): + if os.path.exists(self.path): + os.remove(self.path) diff --git a/manuskript/io/mskFile.py b/manuskript/io/mskFile.py index 8604bfbf..5cb6e81e 100644 --- a/manuskript/io/mskFile.py +++ b/manuskript/io/mskFile.py @@ -61,3 +61,9 @@ class MskFile(TextFile, ZipFile): ZipFile.save(self) else: TextFile.save(self, "1") + + def remove(self): + if os.path.isdir(self.dir_path): + shutil.rmtree(self.dir_path) + + ZipFile.remove(self) diff --git a/manuskript/io/textFile.py b/manuskript/io/textFile.py index 56738ca8..a51d255d 100644 --- a/manuskript/io/textFile.py +++ b/manuskript/io/textFile.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # --!-- coding: utf8 --!-- +import os + from manuskript.io.abstractFile import AbstractFile @@ -13,3 +15,7 @@ class TextFile(AbstractFile): def save(self, content): with open(self.path, 'wt', encoding='utf-8') as file: file.write(content) + + def remove(self): + if os.path.exists(self.path): + os.remove(self.path) diff --git a/manuskript/io/xmlFile.py b/manuskript/io/xmlFile.py index bbe33f41..d4a11503 100644 --- a/manuskript/io/xmlFile.py +++ b/manuskript/io/xmlFile.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # --!-- coding: utf8 --!-- +import os + from lxml import etree from manuskript.io.abstractFile import AbstractFile @@ -14,3 +16,7 @@ class XmlFile(AbstractFile): def save(self, content): with open(self.path, 'wb') as file: content.write(file, encoding="utf-8", xml_declaration=True, pretty_print=True) + + def remove(self): + if os.path.exists(self.path): + os.remove(self.path) diff --git a/manuskript/io/zipFile.py b/manuskript/io/zipFile.py index ce583ae9..1457e636 100644 --- a/manuskript/io/zipFile.py +++ b/manuskript/io/zipFile.py @@ -1,8 +1,9 @@ #!/usr/bin/env python # --!-- coding: utf8 --!-- -import tempfile +import os import shutil +import tempfile from zipfile import ZipFile as _ZipFile from manuskript.io.abstractFile import AbstractFile @@ -49,3 +50,7 @@ class ZipFile(AbstractFile): shutil.make_archive(self.path, 'zip', self.dir_path) shutil.move(self.path + ".zip", self.path) + + def remove(self): + if os.path.exists(self.path): + os.remove(self.path)