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.4.tar.gz (33.6 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.4-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for telemars-0.1.4.tar.gz
Algorithm Hash digest
SHA256 63b4919d0e52c437ec5ed839313b1b70bbb6f75fea688cd6c30804df017677e4
MD5 3ce1b5f43a9ac678a277b0168fe57b54
BLAKE2b-256 8ac8d8b2582b77219b3cb463045cecef1d16a219d71451394fbc1b6b3f6b083e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for telemars-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f4e718e992ccb09e58ae8038544e77068bee4ab6b4d9f6f5f609498f3b3e50cc
MD5 c5e0ad01fb8eadd6a8ec95f05a0eba55
BLAKE2b-256 5e5976b5553e8eeb6a4beb62e2831f8a7a880c0042f89671a7d5a2c4fc1be36d

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