High level wrappers for Visiology APIs: Datacollection, ViQube and ViQube admin
Project description
visiology-py
Высокоуровневые обертки и вспомогательные функции для работы с API Visiology: ViQube, ViQube Admin и Datacollection
Установка
$ pip install visiology-py
Использование
Datacollection
Получение элементов измерений
import visiology_py as vi
import visiology_py.datacollection as dc
connection = vi.Connection(
schema="https",
host="bi.example.com",
username="<USERNAME>",
password="<PASSWORD>",
)
api = dc.ApiV2(connection)
elements = api.get_dimension_elements("dim_Status", {})
# ... работаем с elements ...
ViQube
Получение показателей из группы показателей
import visiology_py as vi
import visiology_py.viqube as vq
connection = vi.Connection(...)
api = vq.ApiV3(connection)
# Пример запроса, ГП вымышленная, для наглядности использованы русифицированные имена вместо транслита
result = api.post_metadata_rawdata_query(
{
"database": "1",
"mgid": "Цены",
"columns": [
{ "mid": "Цена без НДС" },
{ "mid": "Цена с НДС" },
{ "attrid": "Имя продукта", "dlid": "Продукты" },
{ "attrid": "Имя магазина", "dlid": "Магазины" },
],
},
)
# ... работаем с result ...
Автоматический выпуск токена
При использовании методов API, требующих аутентификации (передачи токена), его можно не указывать.
В таком случае токен будет выпущен (emit) автоматически и он же продолжит использоваться до тех пор, пока будет оставаться действительным. Токен будет выпускаться только по необходимости (не каждый запрос).
Внесение изменений в библиотеку
Подготовка к разработке
- Создание venv:
$ python3 -m venv venv
- Установка зависимостей:
$ pip3 install -r requirements.txt
Проверка
$ make test
— тесты (pytest
)$ make lint
— линтинг (pycodestyle
)$ make typecheck
— проверка типов (mypy
)$ make build
— сборка пакета для публикации в PyPi$ make
— всё вышеперечисленное
Общая информация
По-возможности, пишите тесты и тайп-хинты, проверяйте код перед тем как коммитить, коммитьте в develop/feature-ветки и делайте merge-реквесты в master.
Если нужно использовать внесённые изменения, через pip можно поставить пакет из локальной директории и продолжать редактирование кода:
# pip install -e .
(от рута)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.