| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- import json
 
- import pathlib
 
- from .user import user
 
- from .user import user_factory
 
- from .user import user_builder
 
- from .exception import config_exception
 
- from .users_collection import users_collection
 
- class users_saver:
 
-     """
 
-     This class is responsible for saving and storing user config file.
 
-     """
 
-     def __init__(self, collection: users_collection) -> None:
 
-         """
 
-         This initialize class, by set users collection.
 
-         
 
-         Parameters:
 
-             collection (users_collection): This is collection of users to save
 
-         """
 
-         self.__collection = collection
 
-         self.__where = None
 
-     
 
-     @property
 
-     def users(self) -> list:
 
-         """ This return list of users in setup collection. """
 
-         return [ count.flat for count in self.__collection.all ]
 
-     def drop(self, where: pathlib.Path) -> object:
 
-         """
 
-         This drop config file, when it already exists. If given path is 
 
-         directory, raise config exception. Path is been saving to use it 
 
-         in save. When first call to drop, save after it could be call without
 
-         parameters.
 
-         Parameters:
 
-             where (pathlib.Path): Place where config file had been
 
-         
 
-         Returns:
 
-             (users_saver): Object instance itself
 
-         """
 
-         self.__where = where
 
-         if not where.exists():
 
-             return self
 
-         if where.is_dir():
 
-             content = "Can not remove users config, because target \""
 
-             content = content + str(where) + "\" is file."
 
-             raise config_exception(content)
 
-         
 
-         where.unlink()
 
-         return self
 
-     
 
-     def save(self, where: pathlib.Path | None = None) -> object:
 
-         """
 
-         This function save users collection as users config file. When place
 
-         is not provided, trying to load it from previous place, in drop. When
 
-         config file already exists, raise config.
 
-         Parameters:
 
-             where (pathlib.Path | None): Place to save config (default: None)
 
-         Returns:
 
-             (users_saver): Instance of this class itself
 
-         """
 
-         if where is None:
 
-             where = self.__where
 
-         if where is None:
 
-             raise RuntimeError("Where is not set.")
 
-         if where.exists():
 
-             content = "Config file \"" + str(where) + "\" already exists."
 
-             
 
-             raise config_exception(content)
 
-         with where.open("w") as handle:
 
-             handle.write(json.dumps(self.users))
 
-         return self
 
 
  |