pyShelf Open Source Ebook Server 0.8.0
FOSS E-Book Server, https://pyshelf.com
src.backend.lib.config.Config Class Reference
Inheritance diagram for src.backend.lib.config.Config:
src.backend.tests.library_test.Test_Config

Public Member Functions

 __init__ (self, root)
 init_config (self)
 get_logger (self)
 open_file (self)

Public Attributes

 root = root
dict config_structure
 logger = self.get_logger()
 book_path = env.get("BOOKPATH", self._data["BOOKPATH"])
str TITLE = env.get("TITLE", self._data["TITLE"])
 VERSION = env.get("VERSION", self._data["VERSION"])
 book_shelf = env.get("BOOKSHELF", self._data["BOOKSHELF"])
 catalogue_db = env.get("DATABASE", self._data["DATABASE"])
 user = self._data["USER"]
 password = self._data["PASSWORD"]
 db_host = env.get("DB_HOST", self._data["DB_HOST"])
 db_port = env.get("DB_PORT", self._data["DB_PORT"])
list file_array = [self.book_shelf]
bool auto_scan = True
 allowed_hosts
 db_engine = env.get("DB_ENGINE", self._data["DB_ENGINE"])
 db_user = env.get("USER", self._data["USER"])
 db_pass = env.get("PASSWORD", self._data["PASSWORD"])
 build_mode = env.get("BUILD_MODE", self._data["BUILD_MODE"])

Protected Attributes

str _fp = "config.json"
 _cp = Path.joinpath(root, self._fp)
 _data = self.init_config()

Detailed Description

Main System Configuration.

>>> config = Config(root)

Parameters
----------
root : File system root of program

Attributes
----------
root : str() stores root.
config_structure : dict() Default Configuration Structure.
_fp : str() file pointer to main configuration.
_cp : Path() object of configuration file.
_data : dict() parsed json of _fp.
logger : holds logging configuration from get_logger().
book_path : directory pointer to main books folder.
TITLE : str() Program title.
VERSION : str() Program  version.
TITLE : str() Combines TITLE & VERSION.
book_shelf : Deprecation TODO: Is this still in use?
catalogue_db : str() Database Name.
user : str() Database user name.
password : str() Database password.
db_host : str() Database host.
db_port : int() Database port.
file_array : list() copy of book_shelf TODO: See book_shelf
auto_scan: bool() Do we auto scan on launch?
allowed_hosts : list() Allowed host list.
db_engine : str() Desired database engine type.
db_user : str() Database user name. Duplication Warning.
db_pass : str() Database password. Duplication Warning.
build_mode : str() Production | Development mode.

Methods
-------
get_logger : Setup loguru.
open_file : Parse configuration file.

Constructor & Destructor Documentation

◆ __init__()

src.backend.lib.config.Config.__init__ ( self,
root )
Initialize main configuration options.

Member Function Documentation

◆ get_logger()

src.backend.lib.config.Config.get_logger ( self)
Instantiate logging system.

◆ init_config()

src.backend.lib.config.Config.init_config ( self)

◆ open_file()

src.backend.lib.config.Config.open_file ( self)
Open config.json and reads in configuration options.

Reimplemented in src.backend.tests.library_test.Test_Config.

Member Data Documentation

◆ _cp

src.backend.lib.config.Config._cp = Path.joinpath(root, self._fp)
protected

◆ _data

src.backend.lib.config.Config._data = self.init_config()
protected

◆ _fp

src.backend.lib.config.Config._fp = "config.json"
protected

◆ allowed_hosts

src.backend.lib.config.Config.allowed_hosts
Initial value:
= env.get("ALLOWED_HOSTS",
self._data["ALLOWED_HOSTS"])

◆ auto_scan

bool src.backend.lib.config.Config.auto_scan = True

◆ book_path

src.backend.lib.config.Config.book_path = env.get("BOOKPATH", self._data["BOOKPATH"])

◆ book_shelf

src.backend.lib.config.Config.book_shelf = env.get("BOOKSHELF", self._data["BOOKSHELF"])

◆ build_mode

src.backend.lib.config.Config.build_mode = env.get("BUILD_MODE", self._data["BUILD_MODE"])

◆ catalogue_db

src.backend.lib.config.Config.catalogue_db = env.get("DATABASE", self._data["DATABASE"])

◆ config_structure

src.backend.lib.config.Config.config_structure
Initial value:
= {
"TITLE": "pyShelf E-Book Server",
"VERSION": "0.7.0",
"BOOKPATH": "/mnt/books",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_ENGINE": "sqlite",
"DATABASE": "pyshelf",
"USER": "pyshelf",
"PASSWORD": "pyshelf",
"BOOKSHELF": "data/shelf.json",
"ALLOWED_HOSTS": [
"localhost",
"127.0.0.1",
"[::1]",
"0.0.0.0"
],
"BUILD_MODE": "development"
}

◆ db_engine

src.backend.lib.config.Config.db_engine = env.get("DB_ENGINE", self._data["DB_ENGINE"])

◆ db_host

src.backend.lib.config.Config.db_host = env.get("DB_HOST", self._data["DB_HOST"])

◆ db_pass

src.backend.lib.config.Config.db_pass = env.get("PASSWORD", self._data["PASSWORD"])

◆ db_port

src.backend.lib.config.Config.db_port = env.get("DB_PORT", self._data["DB_PORT"])

◆ db_user

src.backend.lib.config.Config.db_user = env.get("USER", self._data["USER"])

◆ file_array

list src.backend.lib.config.Config.file_array = [self.book_shelf]

◆ logger

src.backend.lib.config.Config.logger = self.get_logger()

◆ password

src.backend.lib.config.Config.password = self._data["PASSWORD"]

◆ root

src.backend.lib.config.Config.root = root

◆ TITLE

str src.backend.lib.config.Config.TITLE = env.get("TITLE", self._data["TITLE"])

◆ user

src.backend.lib.config.Config.user = self._data["USER"]

◆ VERSION

src.backend.lib.config.Config.VERSION = env.get("VERSION", self._data["VERSION"])

The documentation for this class was generated from the following file: