No project description provided
Project description
utilities for distributed environment
Python Outfit is set of dependencies across a range of python standard package for software development.
Features for 0.0.1 version:
Load config using yaml.
Integrated to Consul.
Load config file from a path in KV Consul.
Integrated to Vault.
Load Secret KV from Vault.
add some db status to py-healtchecker.
simple Logger.
Load Logger configurations from consul, yaml, json, and dictionary logging var in python file.
How to install Outfit
- ::
pip3 install python-outfit
pypi link : link to outfit
Quick Start
Just add outfit packe then import the Class that you need. First to load configuration import Outfit class. Then call Oufit.setup(‘config_path’) call setup static method and pass the path of the configuration file to Oufit.setup()
from outfit import Outfit
if __name__ == '__main__':
Outfit.setup('conf/configuration.yaml')
Then you can import ConsulCon for Consul Connection or VaulCon for Vault Connection, or you can use Logger to do some logging text for debug, info, error, or critical mode.
from outfit import Outfit
from outfit import ConsulCon, VaultCon
from outfit import Logger
if __name__ == '__main__':
Outfit.setup('conf/configuration.yaml')
con_consul = ConsulCon()
Logger.debug('get the information such as config file from consul kv then will be returned as python dictionary')
config_dict = con_consul.get_kv()
con_vault = VaultCon()
Logger.info('get the secret information in vault secret kv then will be returned as python dictionary')
secret_dict = con_vault.get_secret_kv()
The consul and vault connection will get the configs information from yaml file, including the Logger config source.
This is the example of the .yaml file for outfit configurations:
vault:
host: localhost
port: 9500
scheme: http
token: token123jhk123
path: sample/app
consul:
host: localhost
port: 9500
scheme: http
token: token123jhk123
path: sample/app
logconfig:
mode: development
source_type: yaml_file
source_location: ./tests/assets/logging.yaml
We can see that the logconfig will provide the log configuration information, it contains mode, source_type, and source_location. - mode of log it depends on the logger profile that you write in log config. - source_type, it can be yaml_file, json_file, consul kv, and dictionary var in python file. - source_location, it will provide the location of the files or consul kv directory.
Sample for log config using source_type consul kv:
vault:
host: localhost
port: 9500
scheme: http
token: token123jhk123
path: sample/app
consul:
host: localhost
port: 9500
scheme: http
token: token123jhk123
path: sample/app
logconfig:
mode: development
source_type: consulkv
source_location: assets/logging.yaml
And for logging yaml file or the structures :
---
version: 1
disable_existing_loggers: False
formatters:
simple:
format: "%(asctime)s, %(levelname)s:%(filename)s(%(lineno)d)> %(message)s"
handlers:
debug_console:
class: logging.StreamHandler
level: DEBUG
formatter: simple
stream: ext://sys.stdout
production_console:
class: logging.StreamHandler
level: INFO
formatter: simple
stream: ext://sys.stdout
debug_file_handler:
class: logging.handlers.RotatingFileHandler
level: DEBUG
formatter: simple
filename: tests/logs/debug.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
info_file_handler:
class: logging.handlers.RotatingFileHandler
level: INFO
formatter: simple
filename: tests/logs/info.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
error_file_handler:
class: logging.handlers.RotatingFileHandler
level: ERROR
formatter: simple
filename: tests/logs/errors.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
critical_file_handler:
class: logging.handlers.RotatingFileHandler
level: CRITICAL
formatter: simple
filename: tests/logs/critical.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
loggers:
development:
level: DEBUG
handlers: [debug_console, debug_file_handler, info_file_handler, error_file_handler, critical_file_handler]
propagate: True
production:
level: INFO
handlers: [production_console, info_file_handler, error_file_handler, critical_file_handler]
propagate: True
...
you can get more detail about log config in yaml from this link
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python-outfit-0.0.1.post5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34a1aca77a2672052b1e44949b7232011d25c49af6d3b7e28ab61d5c3994728f |
|
MD5 | 455821b670626c6d48e544f95b20dbe6 |
|
BLAKE2b-256 | 4f76aea8ab325c0c42e0e68bb7a85613c1785fb8d166fe1ea191e82fa8377488 |
Hashes for python_outfit-0.0.1.post5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 130e322b2e41e04739ef69594661bb64cf31f0c581f6109a4867f08f60f94e2b |
|
MD5 | 6dc3f58f6c13618ab5de3a602ed4e468 |
|
BLAKE2b-256 | faf197102036cc29d2eb7f2a63aee37d100f9e6d8848cf696d6b4aa2b7578a41 |