def __init__(self, baseurl, connection=None, all_tasks=False, progress_hook=None): if hasattr(baseurl, "baseurl"): baseurl.baseurl = valid_lp_url(baseurl.baseurl, BASEURL.BUGLIST) else: baseurl = valid_lp_url(baseurl, BASEURL.BUGLIST) LPBugList.__init__(self, baseurl, connection, all_tasks, BugPage, progress_hook)
def __init__(self, bug=None, url=None, connection=None): assert len([i for i in (bug, url) if i]) == 1, "Bug needs one argument, either <bug> or <url>" assert connection, "Connection object needed" [self.__bugnumber, self.__url, self.__status, self.__importance, self.__sourcepackage, self.__summary] = [None]*6 self.__connection = connection self.__saved_hash = None if bug: if isinstance(bug, str): bug = int(bug) if isinstance(bug, int): self.__bugnumber = bug self.__url = bugnumber_to_url(self.__bugnumber) elif isinstance(bug, LPBugInfo): self.__bugnumber = int(bug) self.__url = bug.url self.__status = bug.status self.__importance = bug.importance self.__sourcepackage = bug.sourcepackage self.__summary = bug.summary self.__saved_hash = hash(bug) else: assert None, "type of bugnumber must be INT or STRING or bugnumber must be an instance of BugInfo, %s" %bug elif url: #TODO: check for valid url self.__url = valid_lp_url(url, BASEURL.BUG) assert self.__url, "Invalid launchpad url %s" %url self.__bugnumber = int(self.__url.split("/")[-1])
def __init__(self, lp_url, lp_bugnr, lp_title, watch_url, watch_bugnr, watch_status, private, all_tasks): url = valid_lp_url(lp_url, BASEURL.BUG) LPBugInfo.__init__(self, lp_bugnr, url, None, None, lp_title, None, all_tasks) # add additional attributes self.watch_url = watch_url or "unknown" self.watch_bugnr = watch_bugnr self.watch_status = watch_status or "unknown" self.private = private
def find_parse_function(connection, url, all_tasks): url = valid_lp_url(url, BASEURL.BLUEPRINTLIST) lp_content = connection.get(url) xmldoc = libxml2.htmlParseDoc(unicode_for_libxml2(lp_content.text), "UTF-8") u = urlparse.urlsplit(url) if "+milestone" in u[2]: result = BlueprintPage.parse_html_milestone_specs(xmldoc, all_tasks, url) else: result = BlueprintPage.parse_html_blueprintpage(xmldoc, all_tasks, url) return result
def __init__(self, bugnumber, url, importance, summary, private, package, date_last_update, all_tasks=False): url = valid_lp_url(url, BASEURL.BUG) if package is None: u = urlparse.urlsplit(url) m = re_url_to_project.match(u[2]) if m: package = m.group(1) LPBugInfo.__init__(self, bugnumber, url, None, importance, summary, package, all_tasks) # add additional attributes self.private = private self.date_last_update = date_last_update
def find_parse_function(connection, url, all_tasks): """ this can extended to parse other listtypes (like https://edge.launchpad.net/ubuntu/+milestone/gutsy-updates""" url = valid_lp_url(url, BASEURL.BUGPAGE) u = urlparse.urlsplit(url) if u[2].endswith("+bugs-text"): pass elif u[2].endswith("+bugs"): url = urlparse.urlunsplit((u[0],u[1],"%s-text"%u[2],u[3],u[4])) else: url = urlparse.urlunsplit((u[0],u[1],"%s/+bugs-text"%u[2],u[3],u[4])) lp_content = connection.get(url) result = BugPage.parse_text_bugpage(lp_content.text, all_tasks, url) return result
def find_parse_function(connection, url, all_tasks): url = valid_lp_url(url, BASEURL.BUGPAGE) lp_content = connection.get(url) xmldoc = libxml2.htmlParseDoc(unicode_for_libxml2(lp_content.text), "UTF-8") u = urlparse.urlsplit(url) if "+milestone" in u[2]: result = BugPage.parse_html_milestone_bugpage(xmldoc, all_tasks, url) elif "+expirable-bugs" in u[2]: result = BugPage.parse_html_expirable_bugpage(xmldoc, all_tasks, url) elif "bugs/bugtrackers" in u[2]: result = BugPage.parse_html_bugtracker_bugpage(xmldoc, all_tasks, url) else: result = BugPage.parse_html_bugpage(xmldoc, all_tasks, url) return result
def __init__(self, nr, url, status, importance, summary, package=None, all_tasks=False): url = valid_lp_url(url, BASEURL.BUG) LPBugInfo.__init__(self, nr, url, status, importance, summary, package, all_tasks)
def __init__(self, url, project): self.url = valid_lp_url(url, BASEURL.BLUEPRINT) self.project = project
def __init__(self, priority, spec, title, url, design, delivery, assignee, project, mentorship): url = valid_lp_url(url, BASEURL.BLUEPRINT) BlueprintInfo.__init__(self, priority, spec, title, url, design, delivery, assignee, project, mentorship)
def __init__( self, url, connection ): self.__url = utils.valid_lp_url( url, utils.PROJECT_PACKAGES ) self._connection = connection