forked from Mirror/pmbootstrap
pmb: Use inspect.get_annotations()
On Python 3.10 and newer, this is the recommended way of accessing annotations[1]. It also works with Mypyc, unlike directly accessing __annotations__. [1]: https://docs.python.org/3/howto/annotations.html Part-of: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/merge_requests/2634
This commit is contained in:
parent
53f050ef14
commit
0ade6cab4d
2 changed files with 6 additions and 4 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
import enum
|
import enum
|
||||||
|
import inspect
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
from typing import Any, ClassVar, TypedDict
|
from typing import Any, ClassVar, TypedDict
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -90,14 +91,14 @@ class Config:
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
# Make sure we aren't modifying the class defaults
|
# Make sure we aren't modifying the class defaults
|
||||||
for key in Config.__annotations__.keys():
|
for key in inspect.get_annotations(Config).keys():
|
||||||
setattr(self, key, deepcopy(Config.get_default(key)))
|
setattr(self, key, deepcopy(Config.get_default(key)))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def keys() -> list[str]:
|
def keys() -> list[str]:
|
||||||
keys = list(Config.__annotations__.keys())
|
keys = list(inspect.get_annotations(Config).keys())
|
||||||
keys.remove("mirrors")
|
keys.remove("mirrors")
|
||||||
keys += [f"mirrors.{k}" for k in Mirrors.__annotations__.keys()]
|
keys += [f"mirrors.{k}" for k in inspect.get_annotations(Mirrors).keys()]
|
||||||
return sorted(keys)
|
return sorted(keys)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
|
@ -5,6 +5,7 @@ from pathlib import Path
|
||||||
from pmb.core.context import get_context
|
from pmb.core.context import get_context
|
||||||
from pmb.core.arch import Arch
|
from pmb.core.arch import Arch
|
||||||
from pmb.helpers import logging
|
from pmb.helpers import logging
|
||||||
|
import inspect
|
||||||
import os
|
import os
|
||||||
import pmb.config
|
import pmb.config
|
||||||
import pmb.helpers.other
|
import pmb.helpers.other
|
||||||
|
@ -53,7 +54,7 @@ def _parse_kernel_suffix(info: dict[str, str], device: str, kernel: str | None)
|
||||||
ret = copy.copy(info)
|
ret = copy.copy(info)
|
||||||
|
|
||||||
suffix_kernel = kernel.replace("-", "_")
|
suffix_kernel = kernel.replace("-", "_")
|
||||||
for key in Deviceinfo.__annotations__.keys():
|
for key in inspect.get_annotations(Deviceinfo).keys():
|
||||||
key_kernel = f"{key}_{suffix_kernel}"
|
key_kernel = f"{key}_{suffix_kernel}"
|
||||||
if key_kernel not in ret:
|
if key_kernel not in ret:
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue