12345678910111213141516171819202122232425262728293031 |
- from contextlib import closing
- from glob import glob
- from json import load
- from os import path
- def discover(database):
- """
- find label providers in the corresponding folder and add them to the database
- :param database:
- :return:
- """
- with closing(database.cursor()) as cursor:
- # list folders in labels/
- for folder in glob('labels/*'):
- # load distribution.json
- with open(path.join(folder, 'configuration.json'), 'r') as file:
- label = load(file)
- # extract data
- name = label['name']
- description = label['description'] if 'description' in label else None
- # save to database
- cursor.execute('''
- INSERT INTO label_providers (name, description, root_folder)
- VALUES (?, ?, ?)
- ON CONFLICT (root_folder)
- DO UPDATE SET name = ?, description = ?
- ''', (name, description, folder, name, description))
|