Skip to main content

telemars

Project description

telemars

telemars — это высокоуровневая, асинхронная библиотека-надстройка для работы с API Mediascope, построенная на базе mediascope-api-lib.

Инструмент создан для решения ключевых проблем оригинальной библиотеки: отсутствия валидации данных, медленной работы и сложности в поддержке кода.

Установка

pip install telemars

Конфигурация

Для работы библиотеки необходимо создать файл settings.json в корне проекта со следующей структурой:

{
    "username": "YOUR_USERNAME",
    "passw": "YOUR_PASSWORD",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "auth_server": "https://auth.mediascope.net/auth/realms/mediascope/protocol/openid-connect/token",
    "root_url": "https://api.mediascope.net/tvindex/api/v1"
}

Данное требование обусловлено особенностями оригинальной библиотеки mediascope-api-lib.

Внимание: Не забудьте добавить settings.json в .gitignore, чтобы не допустить утечки конфиденциальных данных.

Пример использования

import asyncio
from datetime import date
from pprint import pprint

import polars as pl

from telemars.filters import crosstab as filter
from telemars.options.crosstab import Option
from telemars.params.filters import crosstab as cflt
from telemars.params.options import crosstab as cops
from telemars.params.slices.crosstab import Slice
from telemars.params.statistics.crosstab import K7Statistic as Statistic
from telemars.tasks.crosstab import CrosstabTask


async def main() -> pl.DataFrame:
    ct = CrosstabTask(
        date_filter=filter.DateFilter(
            date_from=(date(2025, 1, 1)),
            date_to=date(2025, 1, 31),
        ),
        basedemo_filter=[
            filter.BaseDemoFilter(sex=cflt.Sex.FEMALE, age=(18, 99)),
        ],
        break_filter=filter.BreakFilter(
            breaks_content_type=[cflt.BreaksContentType.COMMERCIAL],
            breaks_issue_status_id=[cflt.BreaksIssueStatusId.REAL],
            breaks_distribution_type=[
                cflt.BreaksDistributionType.NETWORK,
                cflt.BreaksDistributionType.ORBITAL,
            ],
        ),
        platform_filter=filter.PlatformFilter(
            platform_id=[
                cflt.Platform.TV,
                cflt.Platform.DESKTOP,
                cflt.Platform.MOBILE,
            ],
        ),
        playbacktype_filter=filter.PlayBackTypeFilter(
            playback_type_id=[p for p in cflt.PlayBackType],
        ),
        slices=[
            Slice.BREAKS_DISTRIBUTION_TYPE_NAME,
            Slice.TV_COMPANY_NAME,
        ],
        options=Option(
            kit_id=cops.KitId.BIG_TV,
            big_tv=cops.BigTv.YES,
            issue_type=cops.IssueType.BREAKS,
        ),
        sortings=[
            (Slice.BREAKS_DISTRIBUTION_TYPE_NAME, cops.SortOrder.DESC),
            (Slice.TV_COMPANY_NAME, cops.SortOrder.ASC),
        ],
        statistics=[
            Statistic.RTG_PER_AVG,
        ],
    )

    result: pl.DataFrame = await ct.execute()

    pprint(result)


if __name__ == '__main__':
    asyncio.run(main())

Контрибьюция

Предложения по улучшению и доработке проекта приветствуются. Если вы обнаружили проблему или у вас есть идеи по развитию функционала, пожалуйста, создайте соответствующий Issue.

Контакты

Email: prosvirnin.a@outlook.com
Telegram: @prosvirninjr

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telemars-0.1.5.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telemars-0.1.5-py3-none-any.whl (48.8 kB view details)

Uploaded Python 3

File details

Details for the file telemars-0.1.5.tar.gz.

File metadata

  • Download URL: telemars-0.1.5.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for telemars-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e17de23f1fb53af7989b9f52ebf54c8e0768be8c686eb865f8c367bfd33edb00
MD5 51b4a7221e507e4e7ae30d18af4e0704
BLAKE2b-256 927e255b264aec8ef2c79c870711b9390b76f21df2e3ce4d5d4bdb9c172f7d18

See more details on using hashes here.

File details

Details for the file telemars-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: telemars-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 48.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for telemars-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0c258983bc521a805445dbf676b73a8e2d761fbb55171126557adef686968940
MD5 d51186ac8c228fd61dc4c3f4a92f2797
BLAKE2b-256 901d56651b40cd2069af93890452e1d370a82cd2fe1822c02ee3ae5c46f449d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page