PyORAm
[iotcloud.git] / PyORAM / src / pyoram / __init__.py
1 from pyoram.__about__ import __version__
2
3 def _configure_logging():
4     import os
5     import logging
6
7     log = logging.getLogger("pyoram")
8     formatter = logging.Formatter(
9         fmt=("[%(asctime)s.%(msecs)03d,"
10              "%(name)s,%(levelname)s] %(threadName)s %(message)s"),
11         datefmt="%Y-%m-%d %H:%M:%S")
12
13     level = os.environ.get("PYORAM_LOGLEVEL", "WARNING")
14     logfilename = os.environ.get("PYORAM_LOGFILE", None)
15     if len(logging.root.handlers) == 0:
16         # configure the logging with some sensible
17         # defaults.
18         try:
19             import tempfile
20             tempfile = tempfile.TemporaryFile(dir=".")
21             tempfile.close()
22         except OSError:
23             # cannot write in current directory, use the
24             # console logger
25             handler = logging.StreamHandler()
26         else:
27             if logfilename is None:
28                 handler = logging.StreamHandler()
29             else:
30                 # set up a basic logfile in current directory
31                 handler = logging.FileHandler(logfilename)
32         handler.setFormatter(formatter)
33         handler.setLevel(level)
34         log.addHandler(handler)
35         log.setLevel(level)
36         log.info("PyORAM log configured using built-in "
37                  "defaults, level=%s", level)
38
39 _configure_logging()
40 del _configure_logging
41
42 def _configure_pyoram():
43     class _Configure(object):
44         __slots__ = ("SHOW_PROGRESS_BAR",)
45         def __init__(self):
46             self.SHOW_PROGRESS_BAR = False
47     return _Configure()
48 config = _configure_pyoram()
49 del _configure_pyoram
50
51 import pyoram.util
52 import pyoram.crypto
53 import pyoram.storage
54 import pyoram.encrypted_storage
55 import pyoram.oblivious_storage