config: Use extended interpolation in Config
authorW. Trevor King <wking@tremily.us>
Thu, 21 Feb 2013 11:11:19 +0000 (06:11 -0500)
committerW. Trevor King <wking@tremily.us>
Thu, 21 Feb 2013 11:11:19 +0000 (06:11 -0500)
This avoids triggering accidental interpolation errors when your URL
contains percent signs (e.g. %2F).  Curly braces, on the other hand,
will never appear in an encoded URL.  From RFC 1738:

  Unsafe:
  ... Other characters are unsafe because gateways and other transport
  agents are known to sometimes modify such characters. These
  characters are "{", "}", "|", "\", "^", "~", "[", "]", and "`".

  All unsafe characters must always be encoded within a URL.

Signed-off-by: W. Trevor King <wking@tremily.us>
rss2email/config.py

index ebdd73fa2c987c5a31a09213181cef310c54e269..22f862667789a71beeb76dd60ef905fd94f1fad6 100644 (file)
@@ -34,8 +34,11 @@ import html2text as _html2text
 
 
 class Config (_configparser.ConfigParser):
-    def __init__(self, **kwargs):
-        super(Config, self).__init__(dict_type=_collections.OrderedDict)
+    def __init__(self, dict_type=_collections.OrderedDict,
+                 interpolation=_configparser.ExtendedInterpolation(),
+                 **kwargs):
+        super(Config, self).__init__(
+            dict_type=dict_type, interpolation=interpolation, **kwargs)
 
     def _setup(self, section='DEFAULT'):
         _html2text.UNICODE_SNOB = self.getboolean(