コード例 #1
0
ファイル: application.py プロジェクト: yehuaqing/pweb
    def _match(self, mapping, value):
        for pat, what in mapping:
            if pat.startswith('^'): pat = pat[1:]
            if pat.endswith('$'): pat = pat[:-1]
            if self.deploy_path != '/':
                if self.deploy_path.endswith('/'):
                    if pat.startswith('/'):
                        pat = "%s%s"% (self.deploy_path, pat[1:])
                    else:
                        pat = "%s%s"% (self.deploy_path, pat)
                else:
                    if pat.startswith('/'):
                        pat = "%s%s"% (self.deploy_path, pat)
                    else:
                        pat = "%s/%s"% (self.deploy_path, pat)

            if isinstance(what, basestring):
                what, result = utils.re_subm('^' + pat + '$', what, value)
            else:
                result = utils.re_compile('^' + pat + '$').match(value)

            if result: # it's a match
                return what, [x for x in result.groups()]

        return None, None
コード例 #2
0
ファイル: browser.py プロジェクト: yehuaqing/pweb
    def _filter_links(self, links, 
            text=None, text_regex=None,
            url=None, url_regex=None,
            predicate=None):
        predicates = []
        if text is not None:
            predicates.append(lambda link: link.string == text)
        if text_regex is not None:
            predicates.append(lambda link: re_compile(text_regex).search(link.string or ''))
        if url is not None:
            predicates.append(lambda link: link.get('href') == url)
        if url_regex is not None:
            predicates.append(lambda link: re_compile(url_regex).search(link.get('href', '')))
        if predicate:
            predicate.append(predicate)

        def f(link):
            for p in predicates:
                if not p(link):
                    return False
            return True

        return [link for link in links if f(link)]
コード例 #3
0
ファイル: session.py プロジェクト: yehuaqing/pweb
 def _valid_session_id(self, session_id):
     rx = utils.re_compile('^[0-9a-fA-F]+$')
     return rx.match(session_id)