def DatabaseName()

in cid/helpers/athena.py [0:0]


    def DatabaseName(self) -> str:
        """ Check if Athena database exist """

        if not self._DatabaseName:
            # Get AWS Athena databases
            athena_databases = self.list_databases()
            if not len(athena_databases):
                self._status = 'AWS Athena databases not found'
                print(self._status)
                exit(1)
            if len(athena_databases) == 1:
                self._DatabaseName = athena_databases.pop().get('Name')
            elif len(athena_databases) > 1:
                # Remove empty databases from the list
                for d in athena_databases:
                    tables = self.list_table_metadata(DatabaseName=d.get('Name'))
                    if not len(tables):
                        athena_databases.remove(d)
                # Select default database if present
                default_database = [d for d in athena_databases if d['Name'] == self.defaults.get('DatabaseName')]
                if len(default_database):
                    self._DatabaseName = default_database.pop().get('Name')
                else:
                    # Ask user
                    self._DatabaseName = questionary.select(
                        "Select AWS Athena database to use",
                        choices=[d['Name'] for d in athena_databases]
                    ).ask()
            logger.info(f'Using Athena database: {self._DatabaseName}')
        return self._DatabaseName