pmb.helpers.logging: wrap logging module (MR 2252)

We use a custom verbose log level in pmbootstrap, unfortunately it isn't
possible to correctly type this due to some limitations in the logging
library [1], [2].

Given that our usecase is fairly simple, we can just wrap the module
with our own so we only have to tell mypy to ignore the error once
instead of at every callsite.

[1]: https://github.com/cryptax/droidlysis/issues/15
[2]: https://github.com/python/typing/discussions/980

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
This commit is contained in:
Caleb Connolly 2024-04-04 04:05:53 +02:00 committed by Oliver Smith
parent 4b6c198ca4
commit 71e7af57e6
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
65 changed files with 110 additions and 69 deletions

View file

@ -13,7 +13,7 @@ from . import config
from . import parse
from .config import init as config_init
from .helpers import frontend
from .helpers import logging as pmb_logging
from .helpers import logging
from .helpers import mount
from .helpers import other
from .core import Chroot
@ -98,7 +98,8 @@ def main() -> int:
except Exception as e:
# Dump log to stdout when args (and therefore logging) init failed
if not args:
logging.getLogger().setLevel(logging.DEBUG)
import logging as pylogging
pylogging.getLogger().setLevel(logging.DEBUG)
logging.info("ERROR: " + str(e))
logging.info("See also: <https://postmarketos.org/troubleshooting>")

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
import pmb.aportgen.busybox_static
import pmb.aportgen.device
import pmb.aportgen.gcc

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import fnmatch
import logging
from pmb.helpers import logging
import re
from pmb.core.types import PmbArgs
import pmb.helpers.git

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pmb.core.types import PmbArgs
import pmb.helpers.cli

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import datetime
import enum
import logging
from pmb.helpers import logging
from pathlib import Path
import pmb.build

View file

@ -1,8 +1,8 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
import os
from typing import Dict
from pathlib import Path
from pmb.helpers import logging
from typing import Dict, Optional
import pmb.config
import pmb.chroot.apk

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pathlib import Path

View file

@ -1,6 +1,6 @@
# Copyright 2023 Robert Yang
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import re

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
import pathlib

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
from pathlib import Path
from typing import Any, Dict

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
from pathlib import Path
import pmb.chroot.user
from pmb.core.types import PmbArgs

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import shlex

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import shlex
from typing import List

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
import shutil
import tarfile
import tempfile

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
from pmb.core.types import PmbArgs
import pmb.helpers.run

View file

@ -2,8 +2,8 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import enum
import filecmp
import glob
import logging
from typing import List
from pmb.helpers import logging
import os
import filecmp

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pathlib import Path
import pmb.chroot.initfs_hooks
import pmb.chroot.other

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import glob
import logging
from pmb.helpers import logging
import pmb.config
import pmb.chroot.apk

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pathlib import Path
from typing import Dict

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
from pathlib import Path
import pmb.chroot.apk
from pmb.core.types import PmbArgs

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import socket
from contextlib import closing

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import logging
from pmb.helpers import logging
import os
import pmb.chroot

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import collections
import glob
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import pmb.chroot

View file

@ -1,6 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.core.chroot import Chroot
from pmb.helpers import logging
import glob
import json
import os

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import configparser
import os
import sys

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import configparser
import logging
from pmb.helpers import logging
import os
import sys

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
from pmb.core.types import PmbArgs

View file

@ -1,4 +1,4 @@
import logging
from pmb.helpers import logging
import os
from pmb.core.types import PmbArgs

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pathlib import Path
import pmb.build

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pathlib import Path
from typing import List

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import pmb.config
from pmb.core.types import PmbArgs

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import datetime
import fnmatch
import logging
from pmb.helpers import logging
import os
import re
import urllib.parse

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import datetime
import logging
from pmb.helpers import logging
import os
import re
import readline

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import json
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import sys

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import configparser
import logging
from pmb.helpers import logging
import os
from pathlib import Path

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import hashlib
import json
import logging
from pmb.helpers import logging
import os
import shutil
import urllib.request

View file

@ -1,6 +1,6 @@
# Copyright 2023 Danct12 <danct12@disroot.org>
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
import pmb.chroot

View file

@ -130,3 +130,38 @@ def init(args: PmbArgs):
def disable():
logger = logging.getLogger()
logger.disabled = True
# We have our own logging wrappers so we can make mypy happy
# by not calling the (undefined) logging.verbose() function.
def critical(msg: object, *args, **kwargs):
logging.critical(msg, *args, **kwargs)
def fatal(msg: object, *args, **kwargs):
logging.fatal(msg, *args, **kwargs)
def error(msg: object, *args, **kwargs):
logging.error(msg, *args, **kwargs)
def warning(msg: object, *args, **kwargs):
logging.warning(msg, *args, **kwargs)
def info(msg: object, *args, **kwargs):
logging.info(msg, *args, **kwargs)
def debug(msg: object, *args, **kwargs):
logging.debug(msg, *args, **kwargs)
def verbose(msg: object, *args, **kwargs):
logging.verbose(msg, *args, **kwargs) # type: ignore[attr-defined]
def log(level: int, msg: object, *args, **kwargs):
logging.log(level, msg, *args, **kwargs)

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import re

View file

@ -9,7 +9,7 @@ See also:
- pmb/helpers/repo.py (work with binary package repos)
"""
import copy
import logging
from pmb.helpers import logging
from pmb.core.types import PmbArgs
import pmb.helpers.pmaports

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pmb.core.types import PmbArgs
import pmb.helpers.file

View file

@ -7,7 +7,7 @@ See also:
- pmb/helpers/package.py (work with both)
"""
import glob
import logging
from pmb.helpers import logging
import os
from pathlib import Path
from typing import Optional, Sequence, Dict

View file

@ -9,7 +9,7 @@ See also:
"""
import os
import hashlib
import logging
from pmb.helpers import logging
from pathlib import Path
from typing import List

View file

@ -1,6 +1,6 @@
# Copyright 2024 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import glob
import pmb.config.pmaports

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import pmb.build
from pmb.core.types import PmbArgs

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import fcntl
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import selectors

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
import re
import glob

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
import glob
from pathlib import Path

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import pmb.chroot
from pmb.core import Chroot
from pmb.core.types import PmbArgs

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import json
import logging
from pmb.helpers import logging
import os
import time

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
import time
import pmb.chroot

View file

@ -1,6 +1,6 @@
# Copyright 2023 Attila Szollosi
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import pmb.chroot
import pmb.config.pmaports

View file

@ -1,6 +1,6 @@
# Copyright 2023 Dylan Van Assche
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pmb.core.types import PmbArgs
import pmb.helpers.pmaports

View file

@ -1,6 +1,6 @@
# Copyright 2023 Mark Hargreaves, Luca Weiss
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pathlib import Path
import socket
import time

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# mypy: disable-error-code="attr-defined"
import logging
from pmb.helpers import logging
import os
from pathlib import Path
import re

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import collections
import logging
from pmb.helpers import logging
from pathlib import Path
import tarfile
import pmb.chroot.apk

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import pmb.config
# Get magic and mask from binfmt info file

View file

@ -1,7 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from pmb.helpers import logging
from pathlib import Path
from pmb.core.types import PmbArgs
import pmb.helpers.run

View file

@ -1,6 +1,7 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from typing import Dict, List, Sequence, Set
from pmb.helpers import logging
import pmb.chroot
import pmb.chroot.apk
from pmb.core.types import PmbArgs

View file

@ -1,7 +1,8 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import copy
import logging
from typing import Dict
from pmb.helpers import logging
import os
import pmb.config
from pmb.core.types import PmbArgs

View file

@ -1,7 +1,7 @@
# Copyright 2023 Attila Szollosi
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import logging
from pathlib import Path
from pmb.helpers import logging
import re
import os

View file

@ -1,6 +1,7 @@
# Copyright 2023 Pablo Castellano, Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from typing import Sequence
from pmb.helpers import logging
import os
from pathlib import Path
import re

View file

@ -1,7 +1,8 @@
# Copyright 2023 Martijn Braam
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import logging
from typing import List
from pmb.helpers import logging
import shlex
from argparse import Namespace

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
from pmb.core.types import PmbArgs
import pytest
import sys

View file

@ -1,6 +1,6 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
from pmb.helpers import logging
import os
from pmb.core.types import PmbArgs
import pytest