docs: update booleans in docs

This commit is contained in:
Evgenii Alekseev 2024-08-26 23:32:02 +03:00
parent 5f79cbc34b
commit 54a331cc96
39 changed files with 75 additions and 72 deletions

View File

@ -59,7 +59,7 @@ class Handler:
repository_id(RepositoryId): repository unique identifier
Returns:
bool: True on success, False otherwise
bool: ``True`` on success, ``False`` otherwise
"""
try:
configuration = Configuration.from_path(args.configuration, repository_id)
@ -129,7 +129,7 @@ class Handler:
check condition and flag and raise ExitCode exception in case if it is enabled and condition match
Args:
enabled(bool): if False no check will be performed
enabled(bool): if ``False`` no check will be performed
predicate(bool): indicates condition on which exception should be thrown
Raises:

View File

@ -97,7 +97,7 @@ class Lock(LazyLogging):
fd(int): file descriptor:
Returns:
bool: True in case if file is locked and False otherwise
bool: ``True`` in case if file is locked and ``False`` otherwise
"""
try:
fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
@ -119,7 +119,7 @@ class Lock(LazyLogging):
watch until lock disappear
Returns:
bool: True in case if file is locked and False otherwise
bool: ``True`` in case if file is locked and ``False`` otherwise
"""
# there are reasons why we are not using inotify here. First of all, if we would use it, it would bring to
# race conditions because multiple processes will be notified at the same time. Secondly, it is good library,
@ -223,7 +223,7 @@ class Lock(LazyLogging):
exc_tb(TracebackType): exception traceback if any
Returns:
Literal[False]: always False (do not suppress any exception)
Literal[False]: always ``False`` (do not suppress any exception)
"""
self.clear()
status = BuildStatusEnum.Success if exc_val is None else BuildStatusEnum.Failed

View File

@ -101,7 +101,7 @@ class PacmanDatabase(SyncHttpClient):
local_path(Path): path to locally stored file
Returns:
bool: True in case if remote file is newer than local file
bool: ``True`` in case if remote file is newer than local file
Raises:
PacmanError: in case if no last-modified header was found

View File

@ -96,7 +96,7 @@ class Auth(LazyLogging):
password(str | None): entered password
Returns:
bool: True in case if password matches, False otherwise
bool: ``True`` in case if password matches, ``False`` otherwise
"""
del username, password
return True
@ -109,7 +109,7 @@ class Auth(LazyLogging):
username(str): username
Returns:
bool: True in case if user is known and can be authorized and False otherwise
bool: ``True`` in case if user is known and can be authorized and ``False`` otherwise
"""
del username
return True
@ -124,7 +124,7 @@ class Auth(LazyLogging):
context(str | None): URI request path
Returns:
bool: True in case if user is allowed to do this request and False otherwise
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
"""
del username, required, context
return True

View File

@ -38,7 +38,7 @@ async def authorized_userid(*args: Any, **kwargs: Any) -> Any:
**kwargs(Any): named argument list as provided by authorized_userid function
Returns:
Any: None in case if no aiohttp_security module found and function call otherwise
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
"""
if _has_aiohttp_security:
return await aiohttp_security.authorized_userid(*args, **kwargs) # pylint: disable=no-value-for-parameter
@ -54,7 +54,7 @@ async def check_authorized(*args: Any, **kwargs: Any) -> Any:
**kwargs(Any): named argument list as provided by authorized_userid function
Returns:
Any: None in case if no aiohttp_security module found and function call otherwise
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
"""
if _has_aiohttp_security:
return await aiohttp_security.check_authorized(*args, **kwargs) # pylint: disable=no-value-for-parameter
@ -70,7 +70,7 @@ async def forget(*args: Any, **kwargs: Any) -> Any:
**kwargs(Any): named argument list as provided by authorized_userid function
Returns:
Any: None in case if no aiohttp_security module found and function call otherwise
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
"""
if _has_aiohttp_security:
return await aiohttp_security.forget(*args, **kwargs) # pylint: disable=no-value-for-parameter
@ -86,7 +86,7 @@ async def remember(*args: Any, **kwargs: Any) -> Any:
**kwargs(Any): named argument list as provided by authorized_userid function
Returns:
Any: None in case if no aiohttp_security module found and function call otherwise
Any: ``None`` in case if no aiohttp_security module found and function call otherwise
"""
if _has_aiohttp_security:
return await aiohttp_security.remember(*args, **kwargs) # pylint: disable=no-value-for-parameter

View File

@ -57,7 +57,7 @@ class Mapping(Auth):
password(str | None): entered password
Returns:
bool: True in case if password matches, False otherwise
bool: ``True`` in case if password matches, ``False`` otherwise
"""
if password is None:
return False # invalid data supplied
@ -72,7 +72,7 @@ class Mapping(Auth):
username(str): username
Returns:
User | None: user descriptor if username is known and None otherwise
User | None: user descriptor if username is known and ``None`` otherwise
"""
return self.database.user_get(username)
@ -84,7 +84,7 @@ class Mapping(Auth):
username(str): username
Returns:
bool: True in case if user is known and can be authorized and False otherwise
bool: ``True`` in case if user is known and can be authorized and ``False`` otherwise
"""
return username is not None and self.get_user(username) is not None
@ -98,7 +98,7 @@ class Mapping(Auth):
context(str | None): URI request path
Returns:
bool: True in case if user is allowed to do this request and False otherwise
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
"""
user = self.get_user(username)
return user is not None and user.verify_access(required)

View File

@ -79,7 +79,7 @@ class PAM(Mapping):
password(str | None): entered password
Returns:
bool: True in case if password matches, False otherwise
bool: ``True`` in case if password matches, ``False`` otherwise
"""
if password is None:
return False # invalid data supplied
@ -101,7 +101,7 @@ class PAM(Mapping):
username(str): username
Returns:
bool: True in case if user is known and can be authorized and False otherwise
bool: ``True`` in case if user is known and can be authorized and ``False`` otherwise
"""
try:
_ = getpwnam(username)
@ -119,7 +119,7 @@ class PAM(Mapping):
context(str | None): URI request path
Returns:
bool: True in case if user is allowed to do this request and False otherwise
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
"""
# this method is basically inverted, first we check overrides in database and then fallback to the PAM logic
if (user := self.get_user(username)) is not None:

View File

@ -138,7 +138,7 @@ class Sources(LazyLogging):
sources_dir(Path): local path to git repository
Returns:
bool: True in case if there is any remote and false otherwise
bool: ``True`` in case if there is any remote and false otherwise
"""
instance = Sources()
remotes = check_output(*instance.git(), "remote", cwd=sources_dir, logger=instance.logger)
@ -261,7 +261,7 @@ class Sources(LazyLogging):
commit_author(tuple[str, str] | None, optional): optional commit author if any (Default value = None)
Returns:
bool: True in case if changes have been committed and False otherwise
bool: ``True`` in case if changes have been committed and ``False`` otherwise
"""
if not self.has_changes(sources_dir):
return False # nothing to commit
@ -351,7 +351,7 @@ class Sources(LazyLogging):
sources_dir(Path): local path to git repository
Returns:
bool: True if there are uncommitted changes and False otherwise
bool: ``True`` if there are uncommitted changes and ``False`` otherwise
"""
# there is --exit-code argument to diff, however, there might be other process errors
changes = check_output(*self.git(), "diff", "--cached", "--name-only", cwd=sources_dir, logger=self.logger)

View File

@ -149,7 +149,7 @@ class Validator(RootValidator):
check if paths exists
Args:
constraint(bool): True in case if path must exist and False otherwise
constraint(bool): ``True`` in case if path must exist and ``False`` otherwise
field(str): field name to be checked
value(Path): value to be checked

View File

@ -74,7 +74,7 @@ class Operations(LazyLogging):
Args:
query(Callable[[Connection], T]): function to be called with connection
commit(bool, optional): if True commit() will be called on success (Default value = False)
commit(bool, optional): if ``True`` commit() will be called on success (Default value = False)
Returns:
T: result of the ``query`` call

View File

@ -32,7 +32,7 @@ class BuildPrinter(StringPrinter):
Args:
package(Package): built package
is_success(bool): True in case if build has success status and False otherwise
is_success(bool): ``True`` in case if build has success status and ``False`` otherwise
use_utf(bool): use utf instead of normal symbols
"""
StringPrinter.__init__(self, f"{self.sign(is_success, use_utf)} {package.base}")
@ -43,7 +43,7 @@ class BuildPrinter(StringPrinter):
generate sign according to settings
Args:
is_success(bool): True in case if build has success status and False otherwise
is_success(bool): ``True`` in case if build has success status and ``False`` otherwise
use_utf(bool): use utf instead of normal symbols
Returns:

View File

@ -57,7 +57,7 @@ class ChangesPrinter(Printer):
generate entry title from content
Returns:
str | None: content title if it can be generated and None otherwise
str | None: content title if it can be generated and ``None`` otherwise
"""
if self.changes.is_empty:
return None

View File

@ -63,7 +63,7 @@ class Printer:
generate entry title from content
Returns:
str | None: content title if it can be generated and None otherwise
str | None: content title if it can be generated and ``None`` otherwise
"""
return None

View File

@ -42,6 +42,6 @@ class StringPrinter(Printer):
generate entry title from content
Returns:
str | None: content title if it can be generated and None otherwise
str | None: content title if it can be generated and ``None`` otherwise
"""
return self.content

View File

@ -85,7 +85,7 @@ class SyncHttpClient(LazyLogging):
exception(requests.RequestException): exception raised
Returns:
str: text of the response if it is not None and empty string otherwise
str: text of the response if it is not ``None`` and empty string otherwise
"""
result: str = exception.response.text if exception.response is not None else ""
return result

View File

@ -38,8 +38,8 @@ class JinjaTemplate:
* homepage - link to homepage, string, optional
* link_path - prefix fo packages to download, string, required
* has_package_signed - True in case if package sign enabled, False otherwise, required
* has_repo_signed - True in case if repository database sign enabled, False otherwise, required
* has_package_signed - ``True`` in case if package sign enabled, ``False`` otherwise, required
* has_repo_signed - ``True`` in case if repository database sign enabled, ``False`` otherwise, required
* packages - sorted list of packages properties, required
* architecture, string
* archive_size, pretty printed size, string

View File

@ -78,7 +78,7 @@ class RemoteCall(Report):
process_id(str): remote process id
Returns:
bool: True in case if remote process is alive and False otherwise
bool: ``True`` in case if remote process is alive and ``False`` otherwise
"""
try:
response = self.client.make_request("GET", f"{self.client.address}/api/v1/service/process/{process_id}")

View File

@ -72,7 +72,7 @@ class Spawn(Thread, LazyLogging):
value(bool): command line argument value
Returns:
str: if ``value`` is True, then returns positive flag and negative otherwise
str: if ``value`` is ``True``, then returns positive flag and negative otherwise
"""
return name if value else f"no-{name}"
@ -153,7 +153,7 @@ class Spawn(Thread, LazyLogging):
process_id(str): process id to be checked as returned by :func:`_spawn_process()`
Returns:
bool: True in case if process still counts as active and False otherwise
bool: ``True`` in case if process still counts as active and ``False`` otherwise
"""
with self._lock:
return process_id in self.active

View File

@ -216,7 +216,7 @@ class Client:
Args:
package_base(str): package base
version(str | None): package version to remove logs. If None set, all logs will be removed
version(str | None): package version to remove logs. If ``None`` is set, all logs will be removed
Raises:
NotImplementedError: not implemented method
@ -245,7 +245,7 @@ class Client:
Args:
package_base(str): package base to update
variable(str | None): patch name. If None set, all patches will be removed
variable(str | None): patch name. If ``None`` is set, all patches will be removed
Raises:
NotImplementedError: not implemented method

View File

@ -164,7 +164,7 @@ class LocalClient(Client):
Args:
package_base(str): package base
version(str | None): package version to remove logs. If None set, all logs will be removed
version(str | None): package version to remove logs. If ``None`` is set, all logs will be removed
"""
self.database.logs_remove(package_base, version, self.repository_id)
@ -188,7 +188,7 @@ class LocalClient(Client):
Args:
package_base(str): package base to update
variable(str | None): patch name. If None set, all patches will be removed
variable(str | None): patch name. If ``None`` is set, all patches will be removed
"""
variables = [variable] if variable is not None else None
self.database.patches_remove(package_base, variables)

View File

@ -338,7 +338,7 @@ class WebClient(Client, SyncAhrimanClient):
Args:
package_base(str): package base
version(str | None): package version to remove logs. If None set, all logs will be removed
version(str | None): package version to remove logs. If ``None`` is set, all logs will be removed
"""
query = self.repository_id.query()
if version is not None:
@ -373,7 +373,7 @@ class WebClient(Client, SyncAhrimanClient):
Args:
package_base(str): package base to update
variable(str | None): patch name. If None set, all patches will be removed
variable(str | None): patch name. If ``None`` is set, all patches will be removed
"""
with contextlib.suppress(Exception):
self.make_request("DELETE", self._patches_url(package_base, variable or ""))

View File

@ -64,7 +64,7 @@ class Leaf:
packages(Iterable[Leaf]): list of known leaves
Returns:
bool: True in case if package is dependency of others and False otherwise
bool: ``True`` in case if package is dependency of others and ``False`` otherwise
"""
for leaf in packages:
if leaf.dependencies.intersection(self.items):
@ -79,7 +79,7 @@ class Leaf:
packages(Iterable[Leaf]): list of known leaves
Returns:
bool: True if any of packages is dependency of the leaf, False otherwise
bool: ``True`` if any of packages is dependency of the leaf, ``False`` otherwise
"""
for leaf in packages:
if self.dependencies.intersection(leaf.items):

View File

@ -160,7 +160,7 @@ class GitHub(Upload, HttpUpload):
get release object if any
Returns:
dict[str, Any] | None: GitHub API release object if release found and None otherwise
dict[str, Any] | None: GitHub API release object if release found and ``None`` otherwise
"""
url = f"https://api.github.com/repos/{self.github_owner}/{
self.github_repository}/releases/tags/{self.github_release_tag}"

View File

@ -225,8 +225,8 @@ def extract_user() -> str | None:
extract user from system environment
Returns:
str | None: SUDO_USER in case if set and USER otherwise. It can return None in case if environment has been
cleared before application start
str | None: SUDO_USER in case if set and USER otherwise. It can return ``None`` in case if environment has been
cleared before application start
"""
return os.getenv("SUDO_USER") or os.getenv("DOAS_USER") or os.getenv("USER")
@ -295,7 +295,7 @@ def package_like(filename: Path) -> bool:
filename(Path): name of file to check
Returns:
bool: True in case if name contains ``.pkg.`` and not signature, False otherwise
bool: ``True`` in case if name contains ``.pkg.`` and not signature, ``False`` otherwise
"""
name = filename.name
return not name.startswith(".") and ".pkg." in name and not name.endswith(".sig")

View File

@ -44,7 +44,7 @@ class AuthSettings(StrEnum):
get enabled flag
Returns:
bool: False in case if authorization is disabled and True otherwise
bool: ``False`` in case if authorization is disabled and ``True`` otherwise
"""
return self != AuthSettings.Disabled

View File

@ -29,11 +29,15 @@ class EventType(StrEnum):
predefined event types
Attributes:
PackageOutdated(EventType): (class attribute) package has been marked as out-of-date
PackageRemoved(EventType): (class attribute) package has been removed
PackageUpdateFailed(EventType): (class attribute) package update has been failed
PackageUpdated(EventType): (class attribute) package has been updated
"""
PackageOutdated = "package-outdated"
PackageRemoved = "package-removed"
PackageUpdateFailed = "package-update-failed"
PackageUpdated = "package-updated"
@ -58,11 +62,10 @@ class Event:
def __post_init__(self) -> None:
"""
replace null data to empty dictionary
convert event type to enum if it is a well-known event type
"""
if self.event in EventType:
object.__setattr__(self, "event", EventType(self.event))
object.__setattr__(self, "data", self.data or {})
@classmethod
def from_json(cls, dump: dict[str, Any]) -> Self:

View File

@ -41,7 +41,7 @@ class MigrationResult:
check migration and check if there are pending migrations
Returns:
bool: True in case if it requires migrations and False otherwise
bool: ``True`` in case if it requires migrations and ``False`` otherwise
"""
self.validate()
return self.new_version > self.old_version

View File

@ -158,7 +158,7 @@ class Package(LazyLogging):
get VCS flag based on the package base
Returns:
bool: True in case if package base looks like VCS package and False otherwise
bool: ``True`` in case if package base looks like VCS package and ``False`` otherwise
"""
return self.base.endswith("-bzr") \
or self.base.endswith("-csv")\
@ -504,7 +504,7 @@ class Package(LazyLogging):
timestamp(float | int): timestamp to check build date against
Returns:
bool: True in case if package was built after the specified date and False otherwise. In case if build date
bool: ``True`` in case if package was built after the specified date and ``False`` otherwise. In case if build date
is not set by any of packages, it returns False
"""
return any(
@ -528,7 +528,7 @@ class Package(LazyLogging):
(Default value = True)
Returns:
bool: True if the package is out-of-dated and False otherwise
bool: ``True`` if the package is out-of-dated and ``False`` otherwise
"""
min_vcs_build_date = utcnow().timestamp() - vcs_allowed_age
if calculate_version and not self.is_newer_than(min_vcs_build_date):

View File

@ -55,7 +55,7 @@ class PkgbuildPatch:
parse key and define whether it function or not
Returns:
bool: True in case if key ends with parentheses and False otherwise
bool: ``True`` in case if key ends with parentheses and ``False`` otherwise
"""
return self.key is not None and self.key.endswith("()")
@ -65,7 +65,7 @@ class PkgbuildPatch:
check if patch is full diff one or just single-variable patch
Returns:
bool: True in case key set and False otherwise
bool: ``True`` in case key set and ``False`` otherwise
"""
return self.key is None

View File

@ -29,7 +29,7 @@ class Property:
Attributes:
name(str): name of the property
value(Any): property value
is_required(bool): if set to True then this property is required
is_required(bool): if set to ``True`` then this property is required
indent(int): property indentation level
"""

View File

@ -57,7 +57,7 @@ class RemoteSource:
check if source is remote
Returns:
bool: True in case if package is well-known remote source (e.g. AUR) and False otherwise
bool: ``True`` in case if package is well-known remote source (e.g. AUR) and ``False`` otherwise
"""
return self.source in (PackageSource.AUR, PackageSource.Repository)

View File

@ -52,7 +52,7 @@ class RepositoryId:
check if all data is supplied for the loading
Returns:
bool: True in case if architecture or name are not set and False otherwise
bool: ``True`` in case if architecture or name are not set and ``False`` otherwise
"""
return not self.architecture or not self.name
@ -85,7 +85,7 @@ class RepositoryId:
other(Any): other object to compare
Returns:
bool: True in case if this is less than other and False otherwise
bool: ``True`` in case if this is less than other and ``False`` otherwise
Raises:
TypeError: if other is different from RepositoryId type

View File

@ -82,7 +82,7 @@ class Result:
get if build result is empty or not
Returns:
bool: True in case if success list is empty and False otherwise
bool: ``True`` in case if success list is empty and ``False`` otherwise
"""
return not self._added and not self._updated
@ -191,7 +191,7 @@ class Result:
other(Any): other object instance
Returns:
bool: True if the other object is the same and False otherwise
bool: ``True`` if the other object is the same and ``False`` otherwise
"""
if not isinstance(other, Result):
return False

View File

@ -98,7 +98,7 @@ class User:
salt(str): salt for hashed password
Returns:
bool: True in case if password matches, False otherwise
bool: ``True`` in case if password matches, ``False`` otherwise
"""
try:
verified: bool = self._HASHER.verify(password + salt, self.password)
@ -131,7 +131,7 @@ class User:
required(UserAccess): required access level
Returns:
bool: True in case if user is allowed to do this request and False otherwise
bool: ``True`` in case if user is allowed to do this request and ``False`` otherwise
"""
return self.access.permits(required)

View File

@ -47,7 +47,7 @@ class UserAccess(StrEnum):
other(UserAccess): other permission to compare
Returns:
bool: True in case if current permission allows the operation and False otherwise
bool: ``True`` in case if current permission allows the operation and ``False`` otherwise
"""
for member in UserAccess:
if member == other:

View File

@ -63,7 +63,7 @@ class _AuthorizationPolicy(aiohttp_security.AbstractAuthorizationPolicy):
identity(str): username
Returns:
str | None: user identity (username) in case if user exists and None otherwise
str | None: user identity (username) in case if user exists and ``None`` otherwise
"""
return identity if await self.validator.known_username(identity) else None
@ -77,7 +77,7 @@ class _AuthorizationPolicy(aiohttp_security.AbstractAuthorizationPolicy):
context(str | None, optional): URI request path (Default value = None)
Returns:
bool: True in case if user is allowed to perform this request and False otherwise
bool: ``True`` in case if user is allowed to perform this request and ``False`` otherwise
"""
# some methods for type checking and parent class compatibility
if identity is None or not isinstance(permission, UserAccess):

View File

@ -38,7 +38,7 @@ def _is_templated_unauthorized(request: Request) -> bool:
request(Request): source request to check
Returns:
bool: True in case if response should be rendered as html and False otherwise
bool: ``True`` in case if response should be rendered as html and ``False`` otherwise
"""
return request.path in ("/api/v1/login", "/api/v1/logout") \
and "application/json" not in request.headers.getall("accept", [])

View File

@ -247,7 +247,7 @@ class BaseView(View, CorsViewMixin):
extract username from request if any
Returns:
str | None: authorized username if any and None otherwise (e.g. if authorization is disabled)
str | None: authorized username if any and ``None`` otherwise (e.g. if authorization is disabled)
"""
try: # try to read from payload
data: dict[str, str] = await self.request.json() # technically it is not, but we only need str here

View File

@ -3,9 +3,9 @@ from ahriman.models.event import Event, EventType
def test_post_init() -> None:
"""
must remove replace empty dictionary
must replace event type for known types
"""
assert Event("", "").data == {}
assert Event("random", "")
assert isinstance(Event(str(EventType.PackageUpdated), "").event, EventType)