Gila¶
Gila is a python3 configuration library based very heavily on the Viper config library for Go. It is designed to facilitate making 12Factor apps as easy as possible using python3.
Example Usage:
import gila
from os import environ
# Setting default values for keys
gila.set_default('host', 'localhost:8080')
gila.set_default('allow_insecure', False)
# This will tell Gila to automatically load in ENV vars that start with GILA
gila.set_env_prefix('GILA')
gila.automatic_env()
# This would normally be done outside of program
# eg. in docker compose or k8s manifest
environ['GILA_HOST'] = 'localhost:9999'
# This is the preferred method of grabbing
# the configurations. Other methods exist (all_config, debug)
# but this method is the most performant for single
# value calls.
host = gila.get('host')
allow_insecure = gila.get('allow_insecure')
"""
Output:
Host: localhost:9999
Insecure allowed: false
"""
print(f'Host: {host}')
print(f'Insecure allowed: {allow_insecure}')
Features¶
Easily load in config values for use in your 12factor application
Allow default values to be set for each config key
Automatically find config files on multiple paths
Load in environment variables automatically that have a specific prefix
Support most popular config languages: yaml, toml, json, properties files, hcl, dotenv
Singleton pattern for ease of use in most applications
You can either use the Gila library as a singleton pattern, by using
import gila
gila.get("key")
or you can create an instance to use in your application like this
import gila
gila_instance = Gila()
gila_instance.get("key")
All functions of the gila class are available in the singleton instance
with the addition of gila.reset()
, which will reset the singleton
instance back to empty.
License¶
Gila is released under the MPL2.0 License. See LICENSE file for details.