[Zodb-checkins] CVS: Zope/lib/python/zLOG - component.xml:1.9
datatypes.py:1.12
Chris McDonough
cvs-admin at zope.org
Fri Oct 31 03:00:55 EST 2003
Update of /cvs-repository/Zope/lib/python/zLOG
In directory cvs.zope.org:/tmp/cvs-serv20354/lib/python/zLOG
Modified Files:
component.xml datatypes.py
Log Message:
Add <warnfilter> section, which allows you to configure Python warning filters in zope.conf. Useful for suppressing the USELESS DeprecationWarnings that emanate from TALGenerator wrt i18n.
=== Zope/lib/python/zLOG/component.xml 1.8 => 1.9 ===
--- Zope/lib/python/zLOG/component.xml:1.8 Mon Mar 24 17:32:41 2003
+++ Zope/lib/python/zLOG/component.xml Fri Oct 31 03:00:24 2003
@@ -58,4 +58,12 @@
<multisection type="zLOG.loghandler" attribute="handlers" name="*"/>
</sectiontype>
+ <sectiontype name="warnfilter" datatype=".warning_filter_handler">
+ <key name="action" datatype=".warn_action" default="default"/>
+ <key name="message" default=""/>
+ <key name="category" datatype=".warning_subclass" default="Warning"/>
+ <key name="module" default=""/>
+ <key name="lineno" datatype="integer" default="0"/>
+ </sectiontype>
+
</component>
=== Zope/lib/python/zLOG/datatypes.py 1.11 => 1.12 ===
--- Zope/lib/python/zLOG/datatypes.py:1.11 Sat Aug 2 01:45:51 2003
+++ Zope/lib/python/zLOG/datatypes.py Fri Oct 31 03:00:24 2003
@@ -238,3 +238,50 @@
if handler_level < lowest:
lowest = factory.getLevel()
return lowest
+
+def importable_name(name):
+ try:
+ components = name.split('.')
+ start = components[0]
+ g = globals()
+ package = __import__(start, g, g)
+ modulenames = [start]
+ for component in components[1:]:
+ modulenames.append(component)
+ try:
+ package = getattr(package, component)
+ except AttributeError:
+ n = '.'.join(modulenames)
+ package = __import__(n, g, g, component)
+ return package
+ except ImportError:
+ raise ValueError, (
+ 'The object named by "%s" could not be imported' % name )
+
+def warning_subclass(val):
+ ob = importable_name(val) # will fail in course
+ try:
+ if not issubclass(ob, Warning):
+ raise ValueError, (
+ 'warning category "%s" must be a Warning subclass' % val)
+ except TypeError:
+ raise ValueError, (
+ 'warning category "%s" must be a Warning subclass' % val)
+
+ return ob
+
+def warn_action(val):
+ OK = ("error", "ignore", "always", "default", "module", "once")
+ if val not in OK:
+ raise ValueError, "warning action %s not one of %s" % (val, OK)
+ return val
+
+def warning_filter_handler(section):
+ import warnings
+ # add the warning filter
+ warnings.filterwarnings(section.action, section.message, section.category,
+ section.module, section.lineno, 1)
+ return section
+
+
+
More information about the Zodb-checkins
mailing list