# SPDX-FileCopyrightText: 2025 Marco Ricci <software@the13thletter.info>
#
# SPDX-License-Identifier: Zlib
# ruff: noqa: TRY400
"""Command-line machinery for derivepassphrase.
Warning:
Non-public module (implementation detail), provided for didactical and
educational purposes only. Subject to change without notice, including
removal.
"""
from __future__ import annotations
import collections
import importlib.metadata
import inspect
import logging
import os
import socket
import warnings
from typing import TYPE_CHECKING, Callable, Literal, TextIO, TypeVar
import click
import click.shell_completion
from typing_extensions import Any, ParamSpec, override
from derivepassphrase import _internals, _types
from derivepassphrase._internals import cli_messages as _msg
if TYPE_CHECKING:
import types
from collections.abc import (
MutableSequence,
)
from typing_extensions import Self
PROG_NAME = _internals.PROG_NAME
VERSION = _internals.VERSION
VERSION_OUTPUT_WRAPPING_WIDTH = 72
# Error messages
NOT_AN_INTEGER = 'not an integer'
NOT_A_NONNEGATIVE_INTEGER = 'not a non-negative integer'
NOT_A_POSITIVE_INTEGER = 'not a positive integer'