summaryrefslogtreecommitdiff
path: root/core/settings.py
blob: d5d6a6bb611729bc8eb93526f9b003cc603d5a3c (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
#!/usr/bin/python
'''
settings.py - load settings from config.yaml
environmental variables are ignored
'''
import os
import yaml

#this basically does "cd ../packages" from settings.py (__file__ is the path to settings.py)
sep = os.path.sep
path = os.path.realpath(__file__).split(sep)
path.pop()
path.pop()

#try loading values from config.yaml
path.append("config.yaml")
config_yaml_path = sep.join(path)
paths = yaml.load(open(config_yaml_path, "r"))

#base path to skdb installation
base_path = os.path.realpath(__file__).split(sep)
base_path.pop() #pop off "settings.py"
base_path.pop() #pop off "core"
base_path = sep.join(base_path)
assert os.path.isabs(base_path), "base_path must be an absolute path" #shouldn't happen

#assume all relative paths refer to skdb/ (not skdb/core/)
for key in paths:
    if type(paths[key]) == str:
        paths[key] = os.path.normpath(os.path.expanduser(paths[key]))
        assert os.path.isabs(paths[key])

def package_path(package_name):
    '''returns the full package path'''
    return os.path.join(paths["package_dir"],package_name)