Jan-Jaap Driessen avatar Jan-Jaap Driessen committed cd074a9

cleanup resources to remove resources that are already in the rollup of another currently needed resource.

Comments (0)

Files changed (1)

fanstatic/inclusion.py

     return sorted(resources, key=key)
 
 
+def cleanup_resources(resources):
+    """
+    """
+    seen = set()
+    for resource in resources:
+        if resource.rollups:
+            s = set(resource.rollups)
+            if s.issubset(seen):
+                # Drop this resource, it has already been seen.
+                continue
+        seen.add(resource)
+        yield resource
+
+
 class Inclusion(object):
     """
     An Inclusion is a container/group for a set of Resources that are needed.
 
         resources = sort_resources(resources)
 
+        resources = cleanup_resources(resources)
+
         if compile:
             for resource in resources:
                 resource.compile()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.