pyproject.toml: Enforce import annotations style
Add new ruff rules and fix their fallout:
future-annotations = true
select = [ "TC", # type-checking import placement rules "FA", # future annotations rules ]This comprises:
- Streamline imports and exports in cmds.xxx.Cmd
- Import base class as "Base"- Export types Cmd and Parent via __all__- Move all types imported only for annotation below TYPE_CHECKING
- Use "from __future__ import annotations" all over the place
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
7a65a7b5e1
commit
5d1ba6e15a
77 changed files with 382 additions and 196 deletions
|
|
@ -4,8 +4,10 @@ import asyncio
|
|||
import concurrent.futures
|
||||
import contextlib
|
||||
|
||||
from collections.abc import Awaitable, Generator
|
||||
from typing import TypeVar
|
||||
from typing import TypeVar, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Awaitable, Generator
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@ from __future__ import annotations
|
|||
import abc
|
||||
import sys
|
||||
|
||||
from argparse import ArgumentParser
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from .log import ERR
|
||||
from .Types import LoadTypes, Types
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser
|
||||
from typing import Any
|
||||
|
||||
from .App import App
|
||||
|
|
|
|||
|
|
@ -9,11 +9,12 @@ from functools import cached_property
|
|||
from typing import TYPE_CHECKING
|
||||
|
||||
from .log import ERR, INFO, WARNING, log
|
||||
from .base import InputMode
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Iterable
|
||||
|
||||
from .base import InputMode, Result
|
||||
from .base import Result
|
||||
from .ExecContext import ExecContext
|
||||
from .Package import Package
|
||||
from .PackageFilter import PackageFilter
|
||||
|
|
|
|||
|
|
@ -8,10 +8,11 @@ from typing import TYPE_CHECKING
|
|||
|
||||
from .log import DEBUG, ERR, log
|
||||
from .Uri import Uri
|
||||
from .ProcFilter import ProcPipeline
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .base import Result, StatResult
|
||||
from .ProcFilter import ProcFilter, ProcPipeline
|
||||
from .ProcFilter import ProcFilter
|
||||
|
||||
class FileContext(abc.ABC):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
from __future__ import annotations
|
||||
import abc
|
||||
import re
|
||||
|
||||
from .Package import Package
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .Package import Package
|
||||
|
||||
class PackageFilter(abc.ABC):
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ from __future__ import annotations
|
|||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from .base import Result
|
||||
from .ProcFilter import ProcFilter
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .base import Result
|
||||
from .ExecContext import ExecContext
|
||||
|
||||
class ProcFilterGpg(ProcFilter):
|
||||
|
|
|
|||
|
|
@ -6,10 +6,13 @@ import tarfile
|
|||
|
||||
from tarfile import TarFile, TarInfo
|
||||
|
||||
from .base import StatResult
|
||||
from .CopyContext import CopyContext
|
||||
from .ExecContext import ExecContext
|
||||
from .log import DEBUG, ERR, log
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .base import StatResult
|
||||
|
||||
class TarIo(CopyContext):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
from __future__ import annotations
|
||||
import abc
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
from collections.abc import Iterator
|
||||
from typing import TYPE_CHECKING, Generic, Iterable, TypeVar
|
||||
|
||||
from .log import OFF, log, parse_log_level
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Iterator
|
||||
from typing import Any
|
||||
|
||||
T = TypeVar('T')
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
from enum import Enum, auto
|
||||
from typing import NamedTuple, TypeAlias
|
||||
from typing import NamedTuple, TypeAlias, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import os
|
||||
|
||||
class InputMode(Enum):
|
||||
Interactive = auto()
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ from __future__ import annotations
|
|||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from ..base import Result
|
||||
from ..FileContext import FileContext as Base
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..base import Result
|
||||
from ..ExecContext import ExecContext
|
||||
from ..Uri import Uri
|
||||
from .Local import Local
|
||||
|
|
|
|||
|
|
@ -8,13 +8,12 @@ import sys
|
|||
from enum import Flag, auto
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from ..base import Result
|
||||
from ..ExecContext import ExecContext
|
||||
from ..log import DEBUG, ERR, INFO, NOTICE, WARNING, log
|
||||
from ..Uri import Uri
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ..Uri import Uri
|
||||
from ..base import Result
|
||||
|
||||
class SSHClient(ExecContext):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ from __future__ import annotations
|
|||
from typing import TYPE_CHECKING
|
||||
|
||||
import paramiko # type: ignore[import-untyped] # error: Library stubs not installed for "paramiko"
|
||||
import paramiko.agent # type: ignore[import-untyped]
|
||||
import paramiko.SCPClient # type: ignore[import-untyped]
|
||||
|
||||
from ...base import Result
|
||||
from ...log import ERR, log
|
||||
|
|
@ -12,9 +14,6 @@ from .util import join_cmd
|
|||
if TYPE_CHECKING:
|
||||
from typing import Any
|
||||
|
||||
import paramiko.agent # type: ignore[import-untyped]
|
||||
import paramiko.SCPClient # type: ignore[import-untyped]
|
||||
|
||||
class Paramiko(Base):
|
||||
|
||||
def __init__(self, uri, *args, **kwargs) -> None:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import json
|
|||
import os
|
||||
import sys
|
||||
|
||||
from argparse import Namespace
|
||||
from enum import Enum, auto
|
||||
from typing import TYPE_CHECKING, Iterable, TypeVar, cast
|
||||
|
||||
|
|
@ -13,6 +12,7 @@ from .log import DEBUG, ERR, log
|
|||
from .Uri import Uri
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import Namespace
|
||||
from .ExecContext import ExecContext
|
||||
from .FileContext import FileContext
|
||||
from .ProcFilter import ProcFilter, ProcPipeline
|
||||
|
|
@ -93,7 +93,7 @@ async def run_curl_into(
|
|||
raise TypeError(
|
||||
f'Expected {expected_type.__name__}, got {type(ret).__name__} from Curl'
|
||||
)
|
||||
return cast(T, ret)
|
||||
return cast('T', ret)
|
||||
|
||||
async def run_askpass(
|
||||
askpass_env: list[str],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue