diff options
Diffstat (limited to 'docs/state/development/settings.rst')
-rw-r--r-- | docs/state/development/settings.rst | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/docs/state/development/settings.rst b/docs/state/development/settings.rst new file mode 100644 index 0000000..806a29a --- /dev/null +++ b/docs/state/development/settings.rst @@ -0,0 +1,44 @@ +SDVState: Program Settings handler +---------------------------------- + +``from tools.conf import settings`` + +Settings will be loaded from several ``.yaml`` or ``.yml`` files and any +user provided settings files. + +So, that user can use these settings values across program. + +This utility loads settings from yaml files in form of key and value +where key is always ``string`` while value can be of type python: + +- ``int`` e.g. 5, 45, 1234 +- ``str`` e.g. hello, world +- ``float`` e.g. 34.56, 12.7 +- ``list`` e.g. [ ‘month’ , ‘is’, 45 ] +- ``dict`` e.g. {‘program’: ‘sdv’, ‘language’: ‘python’} +- ``bool`` e.g. True, False + +keys are case-insensitive +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The utility is case-insensitive to keys used as it automatically +converts all keys to lower case. + +E.g. ``Program : sdv``, ``program : sdv``, ``PrOgRam : sdv`` all are +same. + +- ``settings.load_from_file(path/to/file)`` +- ``settings.load_from_env()`` +- ``settings.load_from_dir(directory/to/search/yamls)`` + +``settings.load_from_dir()`` reads all yaml files in given directory and +all it’s sub-directory recursively in ascending order, hence if a +configuration item exists in more than one file, then the setting in the +file that occurs in the last read file will have high precedence and +overwrite previous values. . + + +Managing Settings +^^^^^^^^^^^^^^^^^ +- Get ``value`` of ``key`` using ``settings.getValue(key)`` +- Set ``key, value`` using ``settings.setValue(key, value)``
\ No newline at end of file |