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