Browse Source

Added export_format property to settings

Vsevolod Levitan 1 year ago
parent
commit
13aefb5615
1 changed files with 32 additions and 17 deletions
  1. 32 17
      src/settings/settings.py

+ 32 - 17
src/settings/settings.py

@@ -20,17 +20,19 @@ class settings:
     # Первый ли запуск
     __is_first_run = True
 
+    # Стратегия экспорта
+    __export_format = "csv"
 
     # Валидатор
     __vtor = None
 
     def __init__(self):
         self.__vtor = validator()
-    
+
     @property
     def first_name(self):
         return self.__first_name
-    
+
     @first_name.setter
     def first_name(self, value: str):
         """
@@ -43,13 +45,13 @@ class settings:
         """
 
         self.__vtor.check_type(value, str)
-        
+
         self.__first_name = value.strip()
 
     @property
     def tax_id(self):
         return self.__tax_id
-    
+
     @tax_id.setter
     def tax_id(self, value: int):
         """
@@ -66,11 +68,11 @@ class settings:
         self.__vtor.check_length(value, 12)
 
         self.__tax_id = value
-    
+
     @property
     def bank_id(self):
         return self.__bank_id
-    
+
     @bank_id.setter
     def bank_id(self, value: int):
         """
@@ -88,11 +90,10 @@ class settings:
 
         self.__bank_id = value
 
-    
     @property
     def bank_account_id(self):
         return self.__bank_account_id
-    
+
     @bank_account_id.setter
     def bank_account_id(self, value: int):
         """
@@ -109,12 +110,11 @@ class settings:
         self.__vtor.check_length(value, 11)
 
         self.__bank_account_id = value
-        
 
     @property
     def corresp_account_id(self):
         return self.__corresp_account_id
-    
+
     @corresp_account_id.setter
     def corresp_account_id(self, value: int):
         """
@@ -132,11 +132,10 @@ class settings:
 
         self.__corresp_account_id = value
 
-
     @property
     def property_name(self):
         return self.__property_name
-    
+
     @property_name.setter
     def property_name(self, value: str):
         """
@@ -152,11 +151,10 @@ class settings:
 
         self.__property_name = value
 
-    
     @property
     def property_type(self):
         return self.__property_type
-    
+
     @property_type.setter
     def property_type(self, value: str):
         """
@@ -174,13 +172,12 @@ class settings:
 
         self.__property_type = value
 
-
     @property
     def is_first_run(self):
         """Первый ли запуск?"""
 
         return self.__is_first_run
-    
+
     @is_first_run.setter
     def is_first_run(self, value: bool):
         """
@@ -193,4 +190,22 @@ class settings:
 
         self.__vtor.check_type(value, bool)
 
-        self.__is_first_run = value
+        self.__is_first_run = value
+
+    @property
+    def export_format(self):
+        """Предпочитаемый формат экспорта"""
+
+        return self.__export_format
+
+    @export_format.setter
+    def export_format(self, value: str):
+        """
+            Предпочитаемый формат экспорта
+        Args:
+            value (str): Значение (допустимо: ["csv", "json", "markdown", "xml"])
+        """
+
+        value = value.lower()
+
+        self.__vtor.check_value_in(value, ["csv", "json", "markdown", "xml"])