Skip to content

Commit

Permalink
Only regenerate project when it's deleted or the module is reloaded
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewryanscott committed Jan 22, 2017
1 parent 1fdcb9d commit 3d34fb8
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions sf/mmck/kit.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ def __init__(self):
self.name = 'kit'
self._py_source = None
self._py_module = None
self._project = None
self.parameter_values = ParameterValues()

@property
Expand All @@ -23,6 +24,7 @@ def py_source(self):
def py_source(self, src):
self._py_source = src
_ = self.py_module
self._project = None

@property
def py_module(self):
Expand All @@ -41,6 +43,7 @@ def py_module(self, value):
if self._py_module is not None:
forget(self._py_module)
self._py_module = None
self._project = None
else:
raise SFValueError('can only be set to None')

Expand All @@ -54,9 +57,21 @@ def parameters(self):
return p

@property
def controllers(self):
self.project
return self._controllers

@property
def project(self):
if self._project is None:
p = self.parameter_values.copy()
c = controllers.Group()
project = rv.api.Project()
self.py_module.build_project(p=p, c=c, project=project)
self._controllers = c
self._project = project
return self._project

@project.deleter
def project(self):
p = self.parameter_values.copy()
c = controllers.Group()
project = rv.api.Project()
self.py_module.build_project(p=p, c=c, project=project)
return project, c
self._project = None

0 comments on commit 3d34fb8

Please sign in to comment.