Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 37 additions & 31 deletions DataProcessingTools/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,42 +49,48 @@ class DPObject():

def __init__(self, *args, **kwargs):
fname = kwargs.get("loadFrom", None)
_dirs = kwargs.get("dirs")
if fname is not None:
self.load(fname=fname)
else:
self.args = {}
# process positional arguments
# TODO: We need to somehow consume these, ie. remove the processed ones
pargs = [p for p in filter(lambda t: not isinstance(t, tuple), type(self).argsList)]
qargs = pargs.copy()
for (k, v) in zip(pargs, args):
self.args[k] = v
qargs.remove(k)
# run the remaining throgh kwargs
for k in qargs:
if k in kwargs.keys():
self.args[k] = kwargs[k]

# process keyword arguments
kargs = filter(lambda t: isinstance(t, tuple), type(self).argsList)
for (k, v) in kargs:
self.args[k] = kwargs.get(k, v)

redoLevel = kwargs.get("redoLevel", 0)
saveLevel = kwargs.get("saveLevel", 0)
fname = self.get_filename()
verbose = kwargs.get("verbose", 1)
if redoLevel == 0 and os.path.isfile(fname):
self.load(fname)
if verbose > 0:
print("Object loaded from file {0}".format(fname))
if self.level is not None and _dirs != []:
ldir = levels.resolve_level(self.level)
else:
# create object
self.create(*args, **kwargs)
if self.dirs and saveLevel > 0:
self.save()
ldir = os.getcwd()
with misc.CWD(ldir):
self.args = {}
# process positional arguments
# TODO: We need to somehow consume these, ie. remove the processed ones
pargs = [p for p in filter(lambda t: not isinstance(t, tuple), type(self).argsList)]
qargs = pargs.copy()
for (k, v) in zip(pargs, args):
self.args[k] = v
qargs.remove(k)
# run the remaining throgh kwargs
for k in qargs:
if k in kwargs.keys():
self.args[k] = kwargs[k]

# process keyword arguments
kargs = filter(lambda t: isinstance(t, tuple), type(self).argsList)
for (k, v) in kargs:
self.args[k] = kwargs.get(k, v)

redoLevel = kwargs.get("redoLevel", 0)
saveLevel = kwargs.get("saveLevel", 0)
fname = self.get_filename()
verbose = kwargs.get("verbose", 1)
if redoLevel == 0 and os.path.isfile(fname):
self.load(fname)
if verbose > 0:
print("Object saved to file {0}".format(fname))
print("Object loaded from file {0}".format(fname))
else:
# create object
self.create(*args, **kwargs)
if self.dirs and saveLevel > 0:
self.save()
if verbose > 0:
print("Object saved to file {0}".format(fname))

def create(self, *args, **kwargs):
self.dirs = kwargs.get("dirs", [os.getcwd()])
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from distutils.core import setup

setup(name="DataProcessingTools",
version="0.18.0",
version="0.19.0",
description="""Tools for processing data with hierarchical organization""",
url="https://github.com/grero/DataProcessingTools.git",
author="Roger Herikstad",
Expand Down