Browse Source

Merge pull request #200 from davefowler/master

Infinite Recursion fix
main
Lakshmi Vyas 12 years ago
parent
commit
76c924ae22
1 changed files with 9 additions and 2 deletions
  1. +9
    -2
      hyde/generator.py

+ 9
- 2
hyde/generator.py View File

@@ -28,6 +28,7 @@ class Generator(object):
self.site = site
self.generated_once = False
self.deps = Dependents(site.sitepath)
self.waiting_deps = {}
self.create_context()
self.template = None
Plugin.load_all(site)
@@ -132,6 +133,7 @@ class Generator(object):
if not resource.source_file.is_text:
return []
rel_path = resource.relative_path
self.waiting_deps[rel_path] = []
deps = []
if hasattr(resource, 'depends'):
user_deps = resource.depends
@@ -139,13 +141,18 @@ class Generator(object):
deps.append(dep)
dep_res = self.site.content.resource_from_relative_path(dep)
if dep_res:
deps.extend(self.get_dependencies(dep_res))
if dep_res.relative_path in self.waiting_deps.keys():
self.waiting_deps[dep_res.relative_path].append(rel_path)
else:
deps.extend(self.get_dependencies(dep_res))
if resource.uses_template:
deps.extend(self.template.get_dependencies(rel_path))
deps = list(set(deps))
if None in deps:
deps.remove(None)
self.deps[rel_path] = deps
for path in self.waiting_deps[rel_path]:
self.deps[path].extend(deps)
return deps

def has_resource_changed(self, resource):
@@ -343,4 +350,4 @@ class Generator(object):
logger.debug("Copying binary file [%s]", resource)
self.events.begin_binary_resource(resource)
resource.source_file.copy_to(target)
self.events.binary_resource_complete(resource)
self.events.binary_resource_complete(resource)

Loading…
Cancel
Save