Skip to content

Commit

Permalink
Change Optional[...] to ... | None (#3910)
Browse files Browse the repository at this point in the history
  • Loading branch information
kaijif authored Dec 9, 2023
1 parent 6372518 commit a4dca7c
Show file tree
Hide file tree
Showing 13 changed files with 44 additions and 47 deletions.
4 changes: 2 additions & 2 deletions bugbug/bugzilla.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import re
from datetime import datetime
from logging import INFO, basicConfig, getLogger
from typing import Iterable, Iterator, NewType, Optional
from typing import Iterable, Iterator, NewType

import tenacity
from dateutil.relativedelta import relativedelta
Expand Down Expand Up @@ -82,7 +82,7 @@
INCLUDE_FIELDS = ["_default", "filed_via"]


def get_bugs(include_invalid: Optional[bool] = False) -> Iterator[BugDict]:
def get_bugs(include_invalid: bool | None = False) -> Iterator[BugDict]:
yield from (
bug
for bug in db.read(BUGS_DB)
Expand Down
4 changes: 2 additions & 2 deletions bugbug/models/bugtype.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# You can obtain one at http://mozilla.org/MPL/2.0/.

import logging
from typing import Iterable, Optional
from typing import Iterable

import numpy as np
import xgboost
Expand Down Expand Up @@ -33,7 +33,7 @@


def bug_to_types(
bug: bugzilla.BugDict, bug_map: Optional[dict[int, bugzilla.BugDict]] = None
bug: bugzilla.BugDict, bug_map: dict[int, bugzilla.BugDict] | None = None
) -> list[str]:
types = set()

Expand Down
12 changes: 6 additions & 6 deletions bugbug/models/testselect.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import pickle
import statistics
from functools import reduce
from typing import Any, Callable, Collection, Iterable, Optional, Sequence, Set
from typing import Any, Callable, Collection, Iterable, Sequence, Set

import numpy as np
import xgboost
Expand All @@ -37,7 +37,7 @@


def get_commit_map(
revs: Optional[Set[test_scheduling.Revision]] = None,
revs: Set[test_scheduling.Revision] | None = None,
) -> dict[test_scheduling.Revision, repository.CommitDict]:
commit_map = {}

Expand Down Expand Up @@ -562,7 +562,7 @@ def select_tests(
self,
commits: Sequence[repository.CommitDict],
confidence: float = 0.5,
push_num: Optional[int] = None,
push_num: int | None = None,
) -> dict[str, float]:
commit_data = commit_features.merge_commits(commits)

Expand Down Expand Up @@ -692,9 +692,9 @@ def evaluation(self) -> None:
def do_eval(
executor: concurrent.futures.ProcessPoolExecutor,
confidence_threshold: float,
reduction: Optional[float],
cap: Optional[int],
minimum: Optional[int],
reduction: float | None,
cap: int | None,
minimum: int | None,
) -> None:
futures: dict[concurrent.futures.Future, dict[str, Any]] = {}
for push in test_pushes.values():
Expand Down
12 changes: 6 additions & 6 deletions bugbug/phabricator.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import logging
from datetime import datetime, timedelta
from typing import Collection, Iterator, NewType, Optional
from typing import Collection, Iterator, NewType

import tenacity
from libmozdata.phabricator import PhabricatorAPI
Expand Down Expand Up @@ -69,7 +69,7 @@ def get_transactions(rev_phid: str) -> Collection[TransactionDict]:


def get(
rev_ids: Optional[Collection[int]] = None, modified_start: Optional[datetime] = None
rev_ids: Collection[int] | None = None, modified_start: datetime | None = None
) -> Collection[RevisionDict]:
assert PHABRICATOR_API is not None

Expand Down Expand Up @@ -159,7 +159,7 @@ def download_modified_revisions():
db.append(REVISIONS_DB, modified_revisions)


def get_testing_project(rev: RevisionDict) -> Optional[str]:
def get_testing_project(rev: RevisionDict) -> str | None:
testing_projects = [
TESTING_PROJECTS[projectPHID]
for projectPHID in rev["attachments"]["projects"]["projectPHIDs"]
Expand All @@ -177,7 +177,7 @@ def get_testing_project(rev: RevisionDict) -> Optional[str]:

def get_review_dates(
rev: RevisionDict,
) -> tuple[Optional[datetime], list[datetime], list[datetime], list[datetime]]:
) -> tuple[datetime | None, list[datetime], list[datetime], list[datetime]]:
creation_date = None
review_dates = []

Expand Down Expand Up @@ -208,7 +208,7 @@ def get_review_dates(
return creation_date, review_dates, exclusion_start_dates, exclusion_end_dates


def get_first_review_time(rev: RevisionDict) -> Optional[timedelta]:
def get_first_review_time(rev: RevisionDict) -> timedelta | None:
(
creation_date,
review_dates,
Expand Down Expand Up @@ -257,7 +257,7 @@ def get_first_review_time(rev: RevisionDict) -> Optional[timedelta]:
)


def get_pending_review_time(rev: RevisionDict) -> Optional[timedelta]:
def get_pending_review_time(rev: RevisionDict) -> timedelta | None:
if rev["fields"]["status"]["value"] != "needs-review":
return None

Expand Down
14 changes: 7 additions & 7 deletions bugbug/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import threading
from datetime import datetime
from functools import lru_cache
from typing import Collection, Iterable, Iterator, NewType, Optional, Set, Union
from typing import Collection, Iterable, Iterator, NewType, Set, Union

import hglib
import lmdb
Expand All @@ -35,7 +35,7 @@

CommitDict = NewType("CommitDict", dict)

code_analysis_server: Optional[rust_code_analysis_server.RustCodeAnalysisServer] = None
code_analysis_server: rust_code_analysis_server.RustCodeAnalysisServer | None = None

hg_servers = list()
hg_servers_lock = threading.Lock()
Expand Down Expand Up @@ -173,7 +173,7 @@ def __init__(
author: str,
desc: str,
pushdate: datetime,
bug_id: Optional[int],
bug_id: int | None,
backsout: list[str],
backedoutby: str,
author_email: str,
Expand Down Expand Up @@ -312,7 +312,7 @@ def get_commits(
)


def get_revision_id(commit: CommitDict) -> Optional[int]:
def get_revision_id(commit: CommitDict) -> int | None:
match = PHABRICATOR_REVISION_REGEX.search(commit["desc"])
if not match:
return None
Expand Down Expand Up @@ -871,7 +871,7 @@ def _transform(commit):


def hg_log(
hg: hglib.client, revs: list[bytes], branch: Optional[str] = "tip"
hg: hglib.client, revs: list[bytes], branch: str | None = "tip"
) -> tuple[Commit, ...]:
if len(revs) == 0:
return tuple()
Expand Down Expand Up @@ -1303,7 +1303,7 @@ def close_component_mapping():


def hg_log_multi(
repo_dir: str, revs: list[bytes], branch: Optional[str] = "tip"
repo_dir: str, revs: list[bytes], branch: str | None = "tip"
) -> tuple[Commit, ...]:
if len(revs) == 0:
return tuple()
Expand Down Expand Up @@ -1338,7 +1338,7 @@ def download_commits(
repo_dir: str,
rev_start: str | None = None,
revs: list[bytes] | None = None,
branch: Optional[str] = "tip",
branch: str | None = "tip",
save: bool = True,
use_single_process: bool = False,
include_no_bug: bool = False,
Expand Down
5 changes: 2 additions & 3 deletions bugbug/rust_code_analysis_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import logging
import subprocess
import time
from typing import Optional

import requests

Expand All @@ -20,7 +19,7 @@


class RustCodeAnalysisServer:
def __init__(self, thread_num: Optional[int] = None):
def __init__(self, thread_num: int | None = None):
for _ in range(START_RETRIES):
self.start_process(thread_num)

Expand All @@ -41,7 +40,7 @@ def __init__(self, thread_num: Optional[int] = None):
def base_url(self):
return f"http://127.0.0.1:{self.port}"

def start_process(self, thread_num: Optional[int] = None):
def start_process(self, thread_num: int | None = None):
self.port = utils.get_free_tcp_port()

try:
Expand Down
3 changes: 1 addition & 2 deletions bugbug/test_scheduling.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
Iterable,
Iterator,
NewType,
Optional,
Set,
Union,
cast,
Expand Down Expand Up @@ -646,7 +645,7 @@ def set_touched_together(f1: str, f2: str) -> None:
)


def update_touched_together() -> Generator[None, Optional[Revision], None]:
def update_touched_together() -> Generator[None, Revision | None, None]:
touched_together = get_touched_together_db(False)
last_analyzed = (
touched_together[b"last_analyzed"]
Expand Down
6 changes: 3 additions & 3 deletions bugbug/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from contextlib import contextmanager
from datetime import datetime
from functools import lru_cache
from typing import Any, Iterator, Optional
from typing import Any, Iterator

import boto3
import dateutil.parser
Expand Down Expand Up @@ -207,7 +207,7 @@ def download_check_etag(url, path=None):
return True


def get_last_modified(url: str) -> Optional[datetime]:
def get_last_modified(url: str) -> datetime | None:
session = get_session(urllib.parse.urlparse(url).netloc)
r = session.head(url, allow_redirects=True)

Expand Down Expand Up @@ -524,7 +524,7 @@ def extract_metadata(body: str) -> dict:
return dict(match_list)


def extract_private(issue_body: str) -> Optional[tuple]:
def extract_private(issue_body: str) -> tuple | None:
"""Extract private issue information from public issue body.
Parse public issue body and extract private issue number and
Expand Down
10 changes: 5 additions & 5 deletions http_service/bugbug_http/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import uuid
from dataclasses import dataclass, field
from datetime import datetime, timedelta
from typing import Any, Callable, Optional, Sequence
from typing import Any, Callable, Sequence

import orjson
import zstandard
Expand Down Expand Up @@ -175,14 +175,14 @@ def get_job_id() -> str:
return uuid.uuid4().hex


def init_job(job: JobInfo, job_id: Optional[str] = None) -> str:
def init_job(job: JobInfo, job_id: str | None = None) -> str:
job_id = job_id or get_job_id()
redis_conn.mset({job.mapping_key: job_id})
return job_id


def schedule_job(
job: JobInfo, job_id: Optional[str] = None, timeout: Optional[int] = None
job: JobInfo, job_id: str | None = None, timeout: int | None = None
) -> None:
job_id = init_job(job, job_id)

Expand All @@ -197,7 +197,7 @@ def schedule_job(


def prepare_queue_job(
job: JobInfo, job_id: Optional[str] = None, timeout: Optional[int] = None
job: JobInfo, job_id: str | None = None, timeout: int | None = None
) -> Queue:
job_id = init_job(job, job_id)
return Queue.prepare_data(
Expand Down Expand Up @@ -379,7 +379,7 @@ def clean_prediction_cache(job):
redis_conn.delete(job.change_time_key)


def get_result(job: JobInfo) -> Optional[Any]:
def get_result(job: JobInfo) -> Any | None:
LOGGER.debug(f"Checking for existing results at {job.result_key}")
result = redis_conn.get(job.result_key)

Expand Down
10 changes: 5 additions & 5 deletions scripts/commit_classifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import subprocess
from datetime import datetime
from logging import INFO, basicConfig, getLogger
from typing import Optional, cast
from typing import cast

import dateutil.parser
import hglib
Expand Down Expand Up @@ -136,8 +136,8 @@ def __init__(
method_defect_predictor_dir: str,
use_single_process: bool,
skip_feature_importance: bool,
phabricator_deployment: Optional[str] = None,
diff_id: Optional[int] = None,
phabricator_deployment: str | None = None,
diff_id: int | None = None,
):
self.model_name = model_name
self.repo_dir = repo_dir
Expand Down Expand Up @@ -582,8 +582,8 @@ def feature_sort_key(f):

def classify(
self,
revision: Optional[str] = None,
runnable_jobs_path: Optional[str] = None,
revision: str | None = None,
runnable_jobs_path: str | None = None,
) -> None:
self.update_commit_db()

Expand Down
4 changes: 2 additions & 2 deletions scripts/generate_landings_risk_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import traceback
import urllib.parse
from datetime import datetime, timedelta, timezone
from typing import Any, Optional, Set, cast
from typing import Any, Set, cast

import bs4
import dateutil.parser
Expand Down Expand Up @@ -1365,7 +1365,7 @@ def regression_to_text(bug):
)
)

def get_top_crashes(team: str, channel: str) -> Optional[str]:
def get_top_crashes(team: str, channel: str) -> str | None:
top_crashes = []

if team in super_teams:
Expand Down
3 changes: 1 addition & 2 deletions scripts/revision_retriever.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import argparse
from datetime import datetime, timezone
from logging import getLogger
from typing import Optional

import dateutil.parser
from dateutil.relativedelta import relativedelta
Expand All @@ -18,7 +17,7 @@ class Retriever(object):
def retrieve_revisions(
self,
limit_months: int = 2,
limit_count: Optional[int] = None,
limit_count: int | None = None,
) -> None:
"""Retrieve revisions from Phabricator.
Expand Down
4 changes: 2 additions & 2 deletions scripts/shadow_scheduler_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import time
import traceback
from datetime import datetime
from typing import Any, Optional
from typing import Any

import matplotlib.pyplot as plt
import mozci.push
Expand Down Expand Up @@ -254,7 +254,7 @@ def plot_graphs(granularity: str) -> None:


def print_uncaught(
granularity: str, scheduler1: str, scheduler2: Optional[str] = None
granularity: str, scheduler1: str, scheduler2: str | None = None
) -> None:
push_data_db = (
test_scheduling.PUSH_DATA_GROUP_DB
Expand Down

0 comments on commit a4dca7c

Please sign in to comment.