From b3f4f1d822d13b1fe95f74a8981e3eb9ba6a39a6 Mon Sep 17 00:00:00 2001 From: inso <insomniak.fr@gmaiL.com> Date: Sat, 1 Oct 2016 03:44:54 +0200 Subject: [PATCH] Add app_data file --- src/sakia/data/entities/__init__.py | 1 + src/sakia/data/entities/app_data.py | 6 ++++++ src/sakia/data/files/app_data.py | 28 +++++++++++++++++++++++++ src/sakia/data/files/user_parameters.py | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/sakia/data/entities/app_data.py create mode 100644 src/sakia/data/files/app_data.py diff --git a/src/sakia/data/entities/__init__.py b/src/sakia/data/entities/__init__.py index cc26e051..34c5913a 100644 --- a/src/sakia/data/entities/__init__.py +++ b/src/sakia/data/entities/__init__.py @@ -5,3 +5,4 @@ from .transaction import Transaction from .node import Node from .connection import Connection from .user_parameters import UserParameters +from .app_data import AppData diff --git a/src/sakia/data/entities/app_data.py b/src/sakia/data/entities/app_data.py new file mode 100644 index 00000000..10316f4b --- /dev/null +++ b/src/sakia/data/entities/app_data.py @@ -0,0 +1,6 @@ +import attr + + +@attr.s() +class AppData: + profiles = attr.ib(factory=list) diff --git a/src/sakia/data/files/app_data.py b/src/sakia/data/files/app_data.py new file mode 100644 index 00000000..79b3fdb6 --- /dev/null +++ b/src/sakia/data/files/app_data.py @@ -0,0 +1,28 @@ +import attr +import json +from ..entities import AppData + + +@attr.s(frozen=True) +class AppDataFile: + """ + The repository for AppData + """ + _file = attr.ib() + + def save(self, app_data): + """ + Commit a app_data to the database + :param sakia.data.entities.AppData app_data: the app_data to commit + """ + with open(self._file, 'w') as outfile: + json.dump(attr.asdict(app_data), outfile, indent=4) + + def load(self): + """ + Update an existing app_data in the database + :param sakia.data.entities.AppData app_data: the app_data to update + """ + with open(self._file, 'r') as json_data: + app_data = AppData(**json.load(json_data)) + return app_data diff --git a/src/sakia/data/files/user_parameters.py b/src/sakia/data/files/user_parameters.py index 119fee4d..ec161a1d 100644 --- a/src/sakia/data/files/user_parameters.py +++ b/src/sakia/data/files/user_parameters.py @@ -25,4 +25,4 @@ class UserParametersFile: """ with open(self._file, 'r') as json_data: user_parameters = UserParameters(**json.load(json_data)) - return user_parameters \ No newline at end of file + return user_parameters -- GitLab