diff options
author | bwarsaw <> | 2006-07-30 19:35:36 +0000 |
---|---|---|
committer | bwarsaw <> | 2006-07-30 19:35:36 +0000 |
commit | e7cf2af0ec44ca0a09c847411ab0adce15c79093 (patch) | |
tree | 88d524b246e2e70e89a77ba0095d1e856944dbf7 /Mailman/Utils.py | |
parent | c8b70cd189cc938a1a2fca32cf3f29f85c5e25ed (diff) | |
download | mailman2-e7cf2af0ec44ca0a09c847411ab0adce15c79093.tar.gz mailman2-e7cf2af0ec44ca0a09c847411ab0adce15c79093.tar.xz mailman2-e7cf2af0ec44ca0a09c847411ab0adce15c79093.zip |
Back port Python 2.5 compatibility changes to Mailman 2.1. Specifically,
- In SecurityManager.py, fix the parsecookie() code to work with Python 2.5
generated cookie text. The latter was changed to be more RFC compliant so
it does not output trailing semicolons for each line of cookie text. This
broke the splitting rules, so now first split on newlines, then on ';\s*'.
This should work across all Python versions.
- In Python 2.5, exceptions are new-style, and thus are no longer of
ClassType. The instantiation type test in hold_for_approval() was too
naive. This one is fixed differently here than in the MM trunk because in
Python 2.1, 'type' isn't a type, it's a function and so can't be used as the
second argument to isinstance() directly.
- Raising strings generates deprecation warnings in Python 2.5. Switch the
one weird use of this in Utils.py to use a class exception. Don't call it
"quick exit" though because it's probably not.
Diffstat (limited to '')
-rw-r--r-- | Mailman/Utils.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Mailman/Utils.py b/Mailman/Utils.py index 5218fed8..5c9707c7 100644 --- a/Mailman/Utils.py +++ b/Mailman/Utils.py @@ -443,6 +443,9 @@ def UnobscureEmail(addr): +class OuterExit(Exception): + pass + def findtext(templatefile, dict=None, raw=False, lang=None, mlist=None): # Make some text from a template file. The order of searches depends on # whether mlist and lang are provided. Once the templatefile is found, @@ -509,7 +512,6 @@ def findtext(templatefile, dict=None, raw=False, lang=None, mlist=None): searchdirs.append(os.path.join(mm_cfg.TEMPLATE_DIR, 'site')) searchdirs.append(mm_cfg.TEMPLATE_DIR) # Start scanning - quickexit = 'quickexit' fp = None try: for lang in languages: @@ -517,12 +519,12 @@ def findtext(templatefile, dict=None, raw=False, lang=None, mlist=None): filename = os.path.join(dir, lang, templatefile) try: fp = open(filename) - raise quickexit + raise OuterExit except IOError, e: if e.errno <> errno.ENOENT: raise # Okay, it doesn't exist, keep looping fp = None - except quickexit: + except OuterExit: pass if fp is None: # Try one last time with the distro English template, which, unless |