Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

No project description provided

Project description

Info:utilities for distributed environment
Repository:https://github.com/situkangsayur/python-outfit
Author: Hendri Karisma (http://github.com/situkangsayur)
Maintainer:Hendri Karisma (http://github.com/situkangsayur)
https://travis-ci.org/situkangsayur/python-outfit.svg?branch=master https://coveralls.io/repos/github/situkangsayur/python-outfit/badge.svg?branch=master

Python Outfit is set of dependencies across a range of python standard package for software development.

Features for 0.0.1 version:

  1. Load config using yaml.
  2. Integrated to Consul.
  3. Load config file from a path in KV Consul.
  4. Integrated to Vault.
  5. Load Secret KV from Vault.
  6. add some db status to py-healtchecker.
  7. simple Logger.
  8. Load Logger configurations from consul, yaml, json, and dictionary logging var in python file.

How to install Outfit

You can use pip for installing python-outfit.

pip 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 type from 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-outfit, version 0.0.1.post9
Filename, size File type Python version Upload date Hashes
Filename, size python_outfit-0.0.1.post9-py3-none-any.whl (10.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size python-outfit-0.0.1.post9.tar.gz (7.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page