[wwwsearch-commits] r33285 - wwwsearch/ClientForm/trunk
jjlee at codespeak.net
jjlee at codespeak.net
Sat Oct 14 20:52:20 CEST 2006
Author: jjlee
Date: Sat Oct 14 20:52:18 2006
New Revision: 33285
Modified:
wwwsearch/ClientForm/trunk/ClientForm.py
Log:
Stupid hack to allow mechanize to get ClientForm to use a copy of BeautifulSoup bundled with mechanize (bother, this means I have to release another ClientForm)
Modified: wwwsearch/ClientForm/trunk/ClientForm.py
==============================================================================
--- wwwsearch/ClientForm/trunk/ClientForm.py (original)
+++ wwwsearch/ClientForm/trunk/ClientForm.py Sat Oct 14 20:52:18 2006
@@ -838,13 +838,14 @@
sgmllib.SGMLParser.__init__(self)
_AbstractFormParser.__init__(self, entitydefs, encoding)
-try:
- if sys.version_info[:2] < (2, 2):
- raise ImportError # BeautifulSoup uses generators
- import BeautifulSoup
-except ImportError:
- pass
-else:
+
+# sigh, must support mechanize by allowing dynamic creation of classes based on
+# its bundled copy of BeautifulSoup (which was necessary because of dependency
+# problems)
+
+def _create_bs_classes(bs,
+ icbinbs,
+ ):
class _AbstractBSFormParser(_AbstractSgmllibParser):
bs_base_class = None
def __init__(self, entitydefs=None, encoding=DEFAULT_ENCODING):
@@ -854,18 +855,33 @@
_AbstractFormParser.handle_data(self, data)
self.bs_base_class.handle_data(self, data)
- class RobustFormParser(_AbstractBSFormParser, BeautifulSoup.BeautifulSoup):
+ class RobustFormParser(_AbstractBSFormParser, bs):
"""Tries to be highly tolerant of incorrect HTML."""
- bs_base_class = BeautifulSoup.BeautifulSoup
- class NestingRobustFormParser(_AbstractBSFormParser,
- BeautifulSoup.ICantBelieveItsBeautifulSoup):
+ pass
+ RobustFormParser.bs_base_class = bs
+ class NestingRobustFormParser(_AbstractBSFormParser, icbinbs):
"""Tries to be highly tolerant of incorrect HTML.
Different from RobustFormParser in that it more often guesses nesting
above missing end tags (see BeautifulSoup docs).
"""
- bs_base_class = BeautifulSoup.ICantBelieveItsBeautifulSoup
+ pass
+ NestingRobustFormParser.bs_base_class = icbinbs
+
+ return RobustFormParser, NestingRobustFormParser
+
+try:
+ if sys.version_info[:2] < (2, 2):
+ raise ImportError # BeautifulSoup uses generators
+ import BeautifulSoup
+except ImportError:
+ pass
+else:
+ RobustFormParser, NestingRobustFormParser = _create_bs_classes(
+ BeautifulSoup.BeautifulSoup, BeautifulSoup.ICantBelieveItsBeautifulSoup
+ )
+
#FormParser = XHTMLCompatibleFormParser # testing hack
#FormParser = RobustFormParser # testing hack
More information about the wwwsearch-commits
mailing list