Skip to main content

visiology-py

pipeline status PyPI version

Высокоуровневые обертки и вспомогательные функции для работы с API Visiology: ViQube, ViQube Admin и Smart Forms

Установка

$ pip install visiology-py

Использование

Smart Forms

Получение элементов измерений

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", None)

# ... работаем с 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) автоматически и он же продолжит использоваться до тех пор, пока будет оставаться действительным. Токен будет выпускаться только по необходимости (не каждый запрос).

Декорирование API

Для задействования дополнительных возможностей, повышающих удобство использования API, существуют декораторы, оборачивающие все методы API. Все определены в модуле visiology_py.decorators.

Кеширование

Библиотека может кешировать результаты тяжелых запросов, для любого нужного TTL (time to live), для этого существует декоратор cached:

from datetime import timedelta

import visiology_py.datacollection as dc
from visiology_py.decorators import decorate_api, cached


# Декорируем API декоратором `cached`
decorate_api(
    dc.ApiV2,
    cached(timedelta(minutes=5)),
)


# ... работаем с dc.ApiV2 ...

Повтор запроса

Библиотека может повторить запрос несколько раз, в случае если предыдущее выполнение завершилось неудачей, для этого существует декоратор retried:

Запросы выполняются с задержкой, которая определяется функцией timeout_function, передаваемой декоратору

По-умолчанию используется эксоненциальная функция, которая делает задержки равными 0.1с, 0.2с, 0.4с, 0.8с и т.д., до максимального значения в 300с (5 минут).

Это позволяет использовать большие значения max_tries, без риска перегрузить API.

from datetime import timedelta

import visiology_py.viqube as vq
from visiology_py.decorators import decorate_api, retried


# Декорируем API декоратором `retried`
decorate_api(
    vq.ApiV3,
    retried(max_tries=5),
)


# ... работаем с vq.ApiV3 ...

Внесение изменений в библиотеку

Подготовка к разработке

  1. Создание venv: $ python3 -m venv venv
  2. Установка зависимостей: $ pip3 install -r requirements.txt

Проверка

  1. $ make test — тесты (pytest)
  2. $ make lint — линтинг (pycodestyle)
  3. $ make typecheck — проверка типов (mypy)
  4. $ make coverage — проверка покрытия тестами (pytest-cov)
  5. $ make quality — проверка различных метрик качества кода (radon)
  6. $ make build — сборка пакета для публикации в PyPi
  7. $ make — всё вышеперечисленное

Общая информация

По-возможности, пишите тесты и тайп-хинты, проверяйте код перед тем как коммитить, коммитьте в develop/feature-ветки и делайте merge-реквесты в master.

Если нужно использовать внесённые изменения, через pip можно поставить пакет из локальной директории и продолжать редактирование кода:

# pip install -e . (от рута)

Metadata

Release files for visiology-py 0.10.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for visiology-py 0.10.3
File Size Uploaded
visiology-py-0.10.3.tar.gz 12.1 kB Details

Release files / visiology-py-0.10.3.tar.gz

Download URL visiology-py-0.10.3.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
98726dc34f77cc125776bbbd0619f87febdbedc66f4438d0d707861f81d97d32
BLAKE2b-256 checksum
How to use checksums
854d4621a424a40857842f97b1e3779d03cb1860385d495d628ca36b402a9cf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.10.3 This release

1 release file

0.10.2

1 release file

0.10.1

1 release file

0.10.0

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page