initial comit

This commit is contained in:
Jan Grewe 2019-03-08 11:27:11 +01:00
commit 8145e57c38
2 changed files with 56 additions and 0 deletions

11
dj_local_conf.json Normal file
View File

@ -0,0 +1,11 @@
{
"database.host": "localhost",
"database.password": "datajoint",
"database.port": 3306,
"loglevel": "DEBUG",
"display.width": 14,
"display.limit": 7,
"safemode": true,
"database.user": "dj",
"connection.init_function": null
}

45
util.py Normal file
View File

@ -0,0 +1,45 @@
from IPython import embed
from functools import reduce
def read_info_file(file_name):
"""
Reads the info file and returns the stored metadata in a dictionary. The dictionary may be nested.
@param file_name: The name of the info file.
@return: dictionary, the stored information.
"""
root = {}
with open(file_name, 'r') as f:
lines = f.readlines()
for l in lines:
if not l.startswith("#"):
continue
l = l.strip("#").strip()
if len(l) == 0:
continue
if not ": " in l: # subsection
sec = {}
root[l[:-1] if l.endswith(":") else l] = sec
else:
parts = l.split(': ')
sec[parts[0].strip()] = parts[1].strip('"').strip()
return root
def find_key_recursive(dictionary, key, path=[]):
assert(isinstance(dictionary, dict))
if key in dictionary.keys():
path.append(key)
return True
for k in dictionary.keys():
if isinstance(dictionary[k], dict):
if find_key_recursive(dictionary[k], key, path):
path.insert(-1, k)
break
return len(path) > 0
def deep_get(dictionary, keys, default=None):
assert(isinstance(dictionary, dict))
assert(isinstance(keys, list))
return reduce(lambda d, key: d.get(key, default) if isinstance(d, dict) else default, keys, dictionary)