An open API service indexing awesome lists of open source software.

https://github.com/javascriptdude/app_global

Sharing global variables between modules in a Python application
https://github.com/javascriptdude/app_global

Last synced: 9 months ago
JSON representation

Sharing global variables between modules in a Python application

Awesome Lists containing this project

README

          

# app_global

From [docs.python.org](https://docs.python.org/3/faq/programming.html?highlight=global#how-do-i-share-global-variables-across-modules):

"The canonical way to share information across modules within a single program is to create a special module (often called config or cfg). Just import the config module in all modules of your application; the module then becomes available as a global name. Because there is only one instance of each module, any changes made to the module object get reflected everywhere. For example:"


See /Example/app_global_test for an illustration that can be run in VSCode


Although not illustrated, it is recommended to categorize data within the app globals to keep organized and thus reduce possiblity obscure failure:
* config.C - For global constants
* config.G - For global application state like DB connections, caches etc.
* config.opts - Application options
* config.log - Application logger
* config.printCli - Common print cli handler for clean exit during initialization


As with any global data, care should be taken when using from within any multi threading applications. Use appropriate locking mechanisms as required.


Besides improving documentation, the main source `config.py` will be left as an empty source file so that is infinitely flexible