-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Нужно написать скрипт для загрузки данных обзора FASHI (https://fast.bao.ac.cn/cms/article/271/) через API в новую базу данных. Общий смысл того, что нужно сделать, следующий - создать новую запись о статье FASHI в нашей таблице библиографии, создать пустую таблицу для данных из статьи, наполнить эту таблицу. Нужно воспользоваться клиентом Hyperleda (https://github.com/HyperLEDA/client), алгоритм примерно следующий:
- Установить (или переустановить, если последний раз устанавливалась давно) последнюю версию окружения сервера: https://hyperleda.github.io/db-app/dev/environment.ru/, проверить что всё работает - тесты запускаются, база данных поднимается.
- Стартовать сервер при помощи команды
make runserver. - Загрузить CSV таблицу (можно руками): по ссылке выше скачать с сайта FASHI таблицу, открыть её в каком-нибудь текстовом редакторе, полюбоваться.
- Прочитать её при помощи pandas, в нём есть встроенная функция: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html. Дальше можно верхнюю её часть вывести в консоль при помощи
print(df). - Создание таблицы: https://github.com/HyperLEDA/client/blob/master/hyperleda/client.py#L72. Нужно прочитать CSV-файл, который предоставляет FASHI и, аналогично прошлому пункту, вызвать метод с нужными параметрами - описаниями таблицы, столбцов и прочего. Список столбцов pandas-таблицы можно получить при помощи
df.columns. Функция, кроме названия столбца, принимает так же единицы измерения столбца (пока оставить"None"для всех, потом нужно будет правильно наполнить из второй строки csv) и описания столбцов (можно тоже оставить None или пустую строку). Эта функция вернёт id созданной в HyperLeda таблицы, который нужен в следующем пункте. - Загрузка данных: https://github.com/HyperLEDA/client/blob/master/hyperleda/client.py#L83. Нужно входную CSV таблицу разбить на части по 10000 строк и для каждой части вызвать этот метод. Каждую часть (pandas-таблицу) нужно передать в аргумент data вместе с id таблицы из прошлого пункта.
Итогом будет python-скрипт, который позволяет по входной csv-таблице загрузить данные обзора FASHI из CSV-таблицы в HyperLeda.
Скрипт можно писать где угодно и потом его нужно загрузить в специальный общий репозиторий со скриптами загрузки данных из астрономических каталогов в директорию fashi: https://github.com/HyperLEDA/scripts. Загружать код в этот репозиторий можно аналогично основному репозиторию: https://hyperleda.github.io/db-app/dev/change.ru/, но при клонировании репозитория нужно заменить https://github.com/HyperLEDA/db-app.git на https://github.com/HyperLEDA/scripts.git.