org.guifications.plugins.buildsystem_rewrite: 7385adcbc00aead85475acc70ace4254fe23ae04

grim at guifications.org grim at guifications.org
Sun Apr 27 20:05:07 CDT 2008


-----------------------------------------------------------------
Revision: 7385adcbc00aead85475acc70ace4254fe23ae04
Ancestor: 97b2fc64deaf47b3feb802049fad3228c484b356
Author: grim at guifications.org
Date: 2008-04-27T00:50:56
Branch: org.guifications.plugins.buildsystem_rewrite

Modified files:
        Makefile.am plugin_pack.py

ChangeLog: 

added a 'make stats' target


-----------------------------------------------------------------
This revision's diffstat output:
 Makefile.am    |    3 +++
 plugin_pack.py |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
-------------- next part --------------
============================================================
--- Makefile.am	bce5851ba39ad66c7700046d8b3c3b02b26fa648
+++ Makefile.am	175cb95cc7fffe40d4a19aaa8bf35a4e9840aee5
@@ -51,3 +51,6 @@ info:
 
 info:
 	@echo $(PP_DIST_DIRS)
+
+stats:
+	@$(PYTHON) plugin_pack.py stats
============================================================
--- plugin_pack.py	8eda805254ae324fe8b266579968260298747ccd
+++ plugin_pack.py	43dfa1a031573a210e4454beb2104a97a3faefd2
@@ -139,6 +139,22 @@ class PluginPack:
 
 		return list
 
+	def list_dep(self, dep):
+		list = []
+
+		for name in self.plugins.keys():
+			plugin = self.plugins[name]
+
+			try:
+				plugin.depends.index(dep)
+				list.append(plugin)
+			except ValueError:
+				pass
+
+		list.sort()
+
+		return list
+
 	def print_names(self, list):
 		names = []
 		for plugin in list:
@@ -155,6 +171,15 @@ class PluginPack:
 	def incomplete_plugins(self):
 		return self.list_type('incomplete')
 
+	def purple_plugins(self):
+		return self.list_dep('purple')
+
+	def finch_plugins(self):
+		return self.list_dep('finch')
+
+	def pidgin_plugins(self):
+		return self.list_dep('pidgin')
+
 	def unique_dirs(self):
 		dirs = {}
 		for name in self.plugins.keys():
@@ -258,6 +283,35 @@ class PluginPack:
 			print
 	commands['info'] = info
 
+	def stats(self, args):
+		counts = {}
+		
+		counts['total'] = len(self.plugins)
+		counts['default'] = len(self.default_plugins())
+		counts['incomplete'] = len(self.incomplete_plugins())
+		counts['abusive'] = len(self.abusive_plugins())
+		counts['purple'] = len(self.purple_plugins())
+		counts['finch'] = len(self.finch_plugins())
+		counts['pidgin'] = len(self.pidgin_plugins())
+
+		def value(val):
+			return "%3d (%0.2f%%)" % (val, (float(val) / float(counts['total'])) * 100.0)
+
+		print "Purple Plugin Pack Stats"
+		print ""
+		print "%d plugins in total" % (counts['total'])
+		print
+		print "Status:"
+		print "  complete:   %s" % (value(counts['default']))
+		print "  incomplete: %s" % (value(counts['incomplete']))
+		print "  abusive:    %s" % (value(counts['abusive']))
+		print ""
+		print "Type:"
+		print "  purple: %s" % (value(counts['purple']))
+		print "  finch:  %s" % (value(counts['finch']))
+		print "  pidgin: %s" % (value(counts['pidgin']))
+	commands['stats'] = stats
+
 def main():
 	# create our main instance
 	pp = PluginPack()


More information about the Plugins-commits mailing list