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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for telemars-0.1.7.tar.gz
Algorithm Hash digest
SHA256 68433c6897a2f8c8af50d384cb694bf1e7430752cf8edb43af2925c9157c819d
MD5 714ba9c786fe1610df33118d1de91e3d
BLAKE2b-256 cd53e0b919863cefbead72ae3cfde21689ff06c63b57ba299d0a820436c65b9b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for telemars-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8dee1dd373d9aeffffb5107cb07f4365241515bd41c8ea14c0b3a35515dc1789
MD5 2eb52b456a7b4e6c9e4925d55f6cdd5c
BLAKE2b-256 98e9c969a08505462d8ddbb25c0b655031a4f6d2e3aec80a9478f5ec766f91d9

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