From 8e19d33343def826ae1ca81728b9dc9a089b6be5 Mon Sep 17 00:00:00 2001 From: Micke Nordin Date: Tue, 29 Mar 2022 11:47:04 +0200 Subject: [PATCH] Serialize/deserialize to json --- src/nag_object.py | 21 +++++++++++++++++++++ src/nagparse.py | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/nag_object.py b/src/nag_object.py index 36d1278..9e0c53f 100644 --- a/src/nag_object.py +++ b/src/nag_object.py @@ -74,6 +74,27 @@ class NagObject: wrap(dir[1], ws_base).strip().strip('\\\n').strip()) return string + '}\n' + def from_object(self, object: dict) -> None: + self.m_type.value = object['type'] + self.m_config_file = object['config_file'] + self.m_directives = object['directives'] + self.m_line_no = object['line_number'] + + def to_object(self) -> dict: + object = { + 'type': self.m_type.value, + 'config_file': self.m_config_file, + 'directives': self.m_directives, + 'line_number': self.m_line_no + } + return object + + def from_json(self, string: str) -> None: + self.from_object(json.loads(string)) + + def to_json(self) -> str: + return json.dumps(self.to_object) + def get_type(self) -> NagObjectType: return self.m_type diff --git a/src/nagparse.py b/src/nagparse.py index 620b94f..874e3aa 100644 --- a/src/nagparse.py +++ b/src/nagparse.py @@ -32,6 +32,8 @@ class NagParse: for object in self.m_objects: string += str(object) + "\n" return string + def to_json(self): + return json.dumps([x.to_object() for x in self.m_objects]) def parse_config(self,config_file: str) -> list[NagObject]: state = ParserState.DEFINE