mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-12 23:51:08 +00:00
import-bug-from-debian: add type hints
This commit is contained in:
parent
c205ee0381
commit
c9339aeae4
@ -29,6 +29,8 @@ import logging
|
|||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import webbrowser
|
import webbrowser
|
||||||
|
from collections.abc import Iterable
|
||||||
|
from email.message import EmailMessage
|
||||||
|
|
||||||
import debianbts
|
import debianbts
|
||||||
from launchpadlib.launchpad import Launchpad
|
from launchpadlib.launchpad import Launchpad
|
||||||
@ -40,7 +42,7 @@ Logger = getLogger()
|
|||||||
ATTACHMENT_MAX_SIZE = 2000
|
ATTACHMENT_MAX_SIZE = 2000
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args() -> argparse.Namespace:
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-b",
|
"-b",
|
||||||
@ -73,7 +75,7 @@ def parse_args():
|
|||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def get_bug_numbers(bug_list):
|
def get_bug_numbers(bug_list: Iterable[str]) -> list[int]:
|
||||||
bug_re = re.compile(r"bug=(\d+)")
|
bug_re = re.compile(r"bug=(\d+)")
|
||||||
|
|
||||||
bug_nums = []
|
bug_nums = []
|
||||||
@ -92,7 +94,7 @@ def get_bug_numbers(bug_list):
|
|||||||
return bug_nums
|
return bug_nums
|
||||||
|
|
||||||
|
|
||||||
def walk_multipart_message(message):
|
def walk_multipart_message(message: EmailMessage) -> tuple[str, list[tuple[int, EmailMessage]]]:
|
||||||
summary = ""
|
summary = ""
|
||||||
attachments = []
|
attachments = []
|
||||||
i = 1
|
i = 1
|
||||||
@ -135,7 +137,13 @@ Faulty message part:
|
|||||||
return summary, attachments
|
return summary, attachments
|
||||||
|
|
||||||
|
|
||||||
def process_bugs(bugs, launchpad, package, dry_run=True, browserless=False):
|
def process_bugs(
|
||||||
|
bugs: Iterable[debianbts.Bugreport],
|
||||||
|
launchpad: Launchpad,
|
||||||
|
package: str,
|
||||||
|
dry_run: bool = True,
|
||||||
|
browserless: bool = False,
|
||||||
|
) -> bool:
|
||||||
debian = launchpad.distributions["debian"]
|
debian = launchpad.distributions["debian"]
|
||||||
ubuntu = launchpad.distributions["ubuntu"]
|
ubuntu = launchpad.distributions["ubuntu"]
|
||||||
lp_debbugs = launchpad.bug_trackers.getByName(name="debbugs")
|
lp_debbugs = launchpad.bug_trackers.getByName(name="debbugs")
|
||||||
@ -149,11 +157,12 @@ def process_bugs(bugs, launchpad, package, dry_run=True, browserless=False):
|
|||||||
subject = bug.subject
|
subject = bug.subject
|
||||||
log = debianbts.get_bug_log(bug_num)
|
log = debianbts.get_bug_log(bug_num)
|
||||||
message = log[0]["message"]
|
message = log[0]["message"]
|
||||||
attachments = []
|
assert isinstance(message, EmailMessage)
|
||||||
|
attachments: list[tuple[int, EmailMessage]] = []
|
||||||
if message.is_multipart():
|
if message.is_multipart():
|
||||||
summary, attachments = walk_multipart_message(message)
|
summary, attachments = walk_multipart_message(message)
|
||||||
else:
|
else:
|
||||||
summary = message.get_payload()
|
summary = str(message.get_payload())
|
||||||
|
|
||||||
target = ubuntu.getSourcePackage(name=ubupackage)
|
target = ubuntu.getSourcePackage(name=ubupackage)
|
||||||
if target is None:
|
if target is None:
|
||||||
@ -217,7 +226,7 @@ def process_bugs(bugs, launchpad, package, dry_run=True, browserless=False):
|
|||||||
return err
|
return err
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main() -> None:
|
||||||
options = parse_args()
|
options = parse_args()
|
||||||
|
|
||||||
config = UDTConfig(options.no_conf)
|
config = UDTConfig(options.no_conf)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user