Fix ruff errors

This commit is contained in:
I-Al-Istannen
2025-10-19 15:25:40 +02:00
parent 2cf0e060ed
commit 6e563134b2
26 changed files with 194 additions and 209 deletions

View File

@@ -1,5 +1,5 @@
from collections.abc import Callable
from configparser import SectionProxy
from typing import Callable, Dict
from ..config import Config
from .authenticator import Authenticator, AuthError, AuthLoadError, AuthSection # noqa: F401
@@ -18,7 +18,7 @@ AuthConstructor = Callable[
Authenticator,
]
AUTHENTICATORS: Dict[str, AuthConstructor] = {
AUTHENTICATORS: dict[str, AuthConstructor] = {
"credential-file": lambda n, s, c: CredentialFileAuthenticator(n, CredentialFileAuthSection(s), c),
"keyring": lambda n, s, c: KeyringAuthenticator(n, KeyringAuthSection(s)),
"pass": lambda n, s, c: PassAuthenticator(n, PassAuthSection(s)),

View File

@@ -1,5 +1,4 @@
from abc import ABC, abstractmethod
from typing import Tuple
from ..config import Section
@@ -35,7 +34,7 @@ class Authenticator(ABC):
self.name = name
@abstractmethod
async def credentials(self) -> Tuple[str, str]:
async def credentials(self) -> tuple[str, str]:
pass
async def username(self) -> str:

View File

@@ -1,5 +1,4 @@
from pathlib import Path
from typing import Tuple
from ..config import Config
from ..utils import fmt_real_path
@@ -23,7 +22,9 @@ class CredentialFileAuthenticator(Authenticator):
with open(path, encoding="utf-8") as f:
lines = list(f)
except UnicodeDecodeError:
raise AuthLoadError(f"Credential file at {fmt_real_path(path)} is not encoded using UTF-8")
raise AuthLoadError(
f"Credential file at {fmt_real_path(path)} is not encoded using UTF-8"
) from None
except OSError as e:
raise AuthLoadError(f"No credential file at {fmt_real_path(path)}") from e
@@ -42,5 +43,5 @@ class CredentialFileAuthenticator(Authenticator):
self._username = uline[9:]
self._password = pline[9:]
async def credentials(self) -> Tuple[str, str]:
async def credentials(self) -> tuple[str, str]:
return self._username, self._password

View File

@@ -1,4 +1,4 @@
from typing import Optional, Tuple, cast
from typing import Optional, cast
import keyring
@@ -27,7 +27,7 @@ class KeyringAuthenticator(Authenticator):
self._password_invalidated = False
self._username_fixed = section.username() is not None
async def credentials(self) -> Tuple[str, str]:
async def credentials(self) -> tuple[str, str]:
# Request the username
if self._username is None:
async with log.exclusive_output():

View File

@@ -1,6 +1,5 @@
import re
import subprocess
from typing import List, Tuple
from ..logging import log
from .authenticator import Authenticator, AuthError, AuthSection
@@ -12,11 +11,11 @@ class PassAuthSection(AuthSection):
self.missing_value("passname")
return value
def username_prefixes(self) -> List[str]:
def username_prefixes(self) -> list[str]:
value = self.s.get("username_prefixes", "login,username,user")
return [prefix.lower() for prefix in value.split(",")]
def password_prefixes(self) -> List[str]:
def password_prefixes(self) -> list[str]:
value = self.s.get("password_prefixes", "password,pass,secret")
return [prefix.lower() for prefix in value.split(",")]
@@ -31,14 +30,14 @@ class PassAuthenticator(Authenticator):
self._username_prefixes = section.username_prefixes()
self._password_prefixes = section.password_prefixes()
async def credentials(self) -> Tuple[str, str]:
async def credentials(self) -> tuple[str, str]:
log.explain_topic("Obtaining credentials from pass")
try:
log.explain(f"Calling 'pass show {self._passname}'")
result = subprocess.check_output(["pass", "show", self._passname], text=True)
except subprocess.CalledProcessError as e:
raise AuthError(f"Failed to get password info from {self._passname}: {e}")
raise AuthError(f"Failed to get password info from {self._passname}: {e}") from e
prefixed = {}
unprefixed = []

View File

@@ -1,4 +1,4 @@
from typing import Optional, Tuple
from typing import Optional
from ..logging import log
from ..utils import agetpass, ainput
@@ -23,7 +23,7 @@ class SimpleAuthenticator(Authenticator):
self._username_fixed = self.username is not None
self._password_fixed = self.password is not None
async def credentials(self) -> Tuple[str, str]:
async def credentials(self) -> tuple[str, str]:
if self._username is not None and self._password is not None:
return self._username, self._password

View File

@@ -1,5 +1,3 @@
from typing import Tuple
from ..logging import log
from ..utils import ainput
from .authenticator import Authenticator, AuthError
@@ -17,7 +15,7 @@ class TfaAuthenticator(Authenticator):
code = await ainput("TFA code: ")
return code
async def credentials(self) -> Tuple[str, str]:
async def credentials(self) -> tuple[str, str]:
raise AuthError("TFA authenticator does not support usernames")
def invalidate_username(self) -> None: