[Checkins] SVN: megrok.icon/branches/utility-less/ Initial population now uses a module based path.

Souheil CHELFOUH souheil at chelfouh.com
Thu Jan 21 07:23:30 EST 2010


Log message for revision 108352:
  Initial population now uses a module based path.
  Using the GTK !
  

Changed:
  U   megrok.icon/branches/utility-less/buildout.cfg
  U   megrok.icon/branches/utility-less/src/megrok/icon/meta.py
  U   megrok.icon/branches/utility-less/src/megrok/icon/utils.py

-=-
Modified: megrok.icon/branches/utility-less/buildout.cfg
===================================================================
--- megrok.icon/branches/utility-less/buildout.cfg	2010-01-21 10:38:00 UTC (rev 108351)
+++ megrok.icon/branches/utility-less/buildout.cfg	2010-01-21 12:23:29 UTC (rev 108352)
@@ -1,7 +1,7 @@
 [buildout]
 develop = .
 parts = interpreter test releaser
-extends = http://grok.zope.org/releaseinfo/grok-1.1a2.cfg
+extends = http://svn.zope.org/repos/main/groktoolkit/trunk/grok.cfg
 versions = versions
 newest = false
 

Modified: megrok.icon/branches/utility-less/src/megrok/icon/meta.py
===================================================================
--- megrok.icon/branches/utility-less/src/megrok/icon/meta.py	2010-01-21 10:38:00 UTC (rev 108351)
+++ megrok.icon/branches/utility-less/src/megrok/icon/meta.py	2010-01-21 12:23:29 UTC (rev 108352)
@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 
+import os
 import martian
 import megrok.icon
 
@@ -8,6 +9,23 @@
     populate_icons_registry)
 
 
+def _get_resource_path(module_info, path):
+    resource_path = module_info.getResourcePath(path)
+    if os.path.isdir(resource_path):
+        static_module = module_info.getSubModuleInfo(path)
+        if static_module is not None:
+            if static_module.isPackage():
+                raise martian.error.GrokError(
+                    "The '%s' icon directory must not "
+                    "be a python package." % path, module_info.getModule())
+            else:
+                raise martian.error.GrokError(
+                    "A package can not contain both a '%s' "
+                    "icon directory and a module named "
+                    "'%s.py'" % (path, path), module_info.getModule())
+    return resource_path
+
+
 def default_name(factory, module=None, **data):
     return factory.__name__.lower()
 
@@ -18,6 +36,11 @@
     martian.directive(megrok.icon.path, default=None)
     martian.directive(megrok.icon.name, get_default=default_name)
 
+    def grok(self, name, factory, module_info, **kw):
+        factory.module_info = module_info
+        return super(IconsRegistryGrokker, self).grok(
+            name, factory, module_info, **kw)
+
     def execute(self, factory, config, name, path, **kw):
 
         mapping = getIconsRegistriesMap()
@@ -32,6 +55,7 @@
             mapping.register(name, factory)
 
         if path is not None:
+            path = _get_resource_path(factory.module_info, path)
             populate_icons_registry(name, path)
 
         return True

Modified: megrok.icon/branches/utility-less/src/megrok/icon/utils.py
===================================================================
--- megrok.icon/branches/utility-less/src/megrok/icon/utils.py	2010-01-21 10:38:00 UTC (rev 108351)
+++ megrok.icon/branches/utility-less/src/megrok/icon/utils.py	2010-01-21 12:23:29 UTC (rev 108352)
@@ -1,7 +1,6 @@
 # -*- coding: utf-8 -*-
 
 import os
-
 import megrok.icon
 from megrok.icon import getIconsRegistry, queryIconsRegistry
 from zope.traversing.browser.absoluteurl import absoluteURL



More information about the checkins mailing list