def validate_profile(self, name): """Validate that a profile exists. :param name: name of the profile: :raises aiida.common.ProfileConfigurationError: if the name is not found in the configuration file """ from aiida.common import exceptions if name not in self.profile_names: raise exceptions.ProfileConfigurationError(f'profile `{name}` does not exist')
def get_profile(self, name=None): """Return the profile for the given name or the default one if not specified. :return: the profile instance or None if it does not exist :raises aiida.common.ProfileConfigurationError: if the name is not found in the configuration file """ from aiida.common import exceptions if not name and not self.default_profile_name: raise exceptions.ProfileConfigurationError( f'no default profile defined: {self._default_profile}\n{self.dictionary}' ) if not name: name = self.default_profile_name self.validate_profile(name) return self._profiles[name]
""" Django settings for the AiiDA project. """ from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.dialects.postgresql import UUID from aiida.common import exceptions from aiida.common.timezone import get_current_timezone from aiida.manage.configuration import get_profile, settings try: PROFILE = get_profile() except exceptions.MissingConfigurationError as exception: raise exceptions.MissingConfigurationError( 'the configuration could not be loaded: {}'.format(exception)) if PROFILE is None: raise exceptions.ProfileConfigurationError('no profile has been loaded') if PROFILE.database_backend != 'django': raise exceptions.ProfileConfigurationError( 'incommensurate database backend `{}` for profile `{}`'.format( PROFILE.database_backend, PROFILE.name)) PROFILE_CONF = PROFILE.dictionary DATABASES = { 'default': { 'ENGINE': 'django.db.backends.' + PROFILE.database_engine, 'NAME': PROFILE.database_name, 'PORT': PROFILE.database_port, 'HOST': PROFILE.database_hostname, 'USER': PROFILE.database_username,