Current File : /home/inlingua/miniconda3/lib/python3.12/site-packages/conda/cli/main_notices.py |
# Copyright (C) 2012 Anaconda, Inc
# SPDX-License-Identifier: BSD-3-Clause
"""CLI implementation for `conda notices`.
Manually retrieves channel notifications, caches them and displays them.
"""
from argparse import ArgumentParser, Namespace, _SubParsersAction
def configure_parser(sub_parsers: _SubParsersAction, **kwargs) -> ArgumentParser:
from ..auxlib.ish import dals
from .helpers import add_parser_channels, add_parser_json
summary = "Retrieve latest channel notifications."
description = dals(
f"""
{summary}
Conda channel maintainers have the option of setting messages that
users will see intermittently. Some of these notices are informational
while others are messages concerning the stability of the channel.
"""
)
epilog = dals(
"""
Examples::
conda notices
conda notices -c defaults
"""
)
p = sub_parsers.add_parser(
"notices",
help=summary,
description=description,
epilog=epilog,
**kwargs,
)
add_parser_channels(p)
add_parser_json(p)
p.set_defaults(func="conda.cli.main_notices.execute")
return p
def execute(args: Namespace, parser: ArgumentParser) -> int:
"""Command that retrieves channel notifications, caches them and displays them."""
from ..exceptions import CondaError
from ..notices import core as notices
try:
channel_notice_set = notices.retrieve_notices()
except OSError as exc:
raise CondaError(f"Unable to retrieve notices: {exc}")
notices.display_notices(channel_notice_set)
return 0