Source code for aiida.cmdline.utils.defaults

# -*- coding: utf-8 -*-
###########################################################################
# Copyright (c), The AiiDA team. All rights reserved.                     #
# This file is part of the AiiDA code.                                    #
#                                                                         #
# The code is hosted on GitHub at https://github.com/aiidateam/aiida_core #
# For further information on the license, see the LICENSE.txt file        #
# For further information please visit http://www.aiida.net               #
###########################################################################
"""Default values and lazy default get methods for command line options."""
from __future__ import division
from __future__ import print_function
from __future__ import absolute_import

from aiida.cmdline.utils import echo
from aiida.common import exceptions
from aiida.manage.configuration import get_config


[docs]def get_default_profile(ctx, param, value): # pylint: disable=unused-argument """Try to get the default profile. This should be used if the default profile should be returned lazily, at a point for example when the config is not created at import time. Otherwise, the preference should go to calling `get_config` to load the actual config and using `config.default_profile_name` to get the default profile name :raises click.UsageError: if the config could not be loaded or no default profile exists :return: the default profile """ if value: return value try: config = get_config() except exceptions.ConfigurationError as exception: echo.echo_critical(str(exception)) try: default_profile = config.get_profile(config.default_profile_name) except exceptions.ProfileConfigurationError: default_profile = None return default_profile