aboutsummaryrefslogtreecommitdiff
path: root/src/__init__.py
blob: 08131ce1d14db5b5569dab1e1fa848a36180c007 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys
import os
import logging


__version__ = '2.0.0rc6'


class Logger(logging.getLoggerClass()):
    '''
        Custom Logger class to handle custom VERBOSE log level.
        Levels used in this program are as follows:
            VERBOSE     Annoyingly frequent debug messages (e.g, in loops)
            DEBUG       Ordinary debug information
            INFO        Expected events that are expensive or irreversible
            WARNING     A non-fatal error or suspicious behaviour
            ERROR       Any error that would interrupt the user
            CRITICAL    Things that really shouldn't happen at all
    '''
    def __init__(self, name, level=logging.NOTSET):
        super().__init__(name, level)
        logging.addLevelName(5, "VERBOSE")

    def verbose(self, msg, *args, **kwargs):
        if self.isEnabledFor(5):
            self._log(5, msg, args, **kwargs)
logging.setLoggerClass(Logger)
logging.VERBOSE = 5


if getattr(sys, 'frozen', False):
    # frozen
    wd = os.path.dirname(sys.executable)
else:
    # unfrozen
    wd = os.path.dirname(os.path.realpath(__file__))