Michał Górny avatar Michał Górny committed c80fd99

Automatically drop empty, modified entries.

Now entries for which all flags have been removed will be removed as
well implicitly during file writing -- there's no need for explicit
checks anymore.

Comments (0)

Files changed (3)

lib/flaggie/action.py

 			for ns in self.ns:
 				puse = pfiles[ns]
 				for p in pkgs:
-					for pe in list(puse[p]):
+					for pe in puse[p]:
 						for f in self.args:
 							del pe[f]
-						if not pe:
-							puse.remove(pe)
 
 	class output(BaseAction):
 		def __call__(self, pkgs, pfiles):

lib/flaggie/cleanup.py

 					cache[pe.package].add(flag.name)
 				else:
 					pe.remove(flag)
-			if not pe:
-				f.remove(pe)
 
 class SortEntries(BaseCleanupAction):
 	def _perform(self, f):

lib/flaggie/packagefile.py

 			def __init__(self, l):
 				self.data = l
 
+			def __nonzero__(self):
+				return True
+
 			def toString(self):
 				return self.data
 
 
 			f = codecs.open(self.path, 'w', 'utf8')
 			for l in self:
-				f.write(l.toString())
+				if l:
+					f.write(l.toString())
 			f.close()
 
 			for e in self:
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.