Skip to main content

SmartFeed

Python-package для формирования ленты (Feed) из клиентских данных с заданной конфигурацией.

Содержание:

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

Установка

poetry add git+ssh://git@github.com:epoch8/looky-timeline.git

Формирование конфигурации

Конфигурация каждого фида должна быть словарем следующего вида:

"version": "1",
"view_session": True or False,
"session_size": 800,  # по умолчанию 100
"session_live_time": 500,  # по умолчанию 300
"feed": {
    "merger_id": "merger_pos",
    "type": "merger_positional",
    "positions": [1, 3, 15],
    "start": 17,
    "end": 200,
    "step": 2,
    "positional": {
        "subfeed_id": "sf_positional",
        "type": "subfeed",
        "method_name": "ads",
        "subfeed_params": {
            "limit_to_return": 10,
        },
    },
    "default": {
        "merger_id": "merger_percent",
        "type": "merger_percentage",
        "shuffle": False,
        "items": [
            {
                "percentage": 40,
                "data": {
                    "subfeed_id": "sf_1_default_merger_of_main",
                    "type": "subfeed",
                    "method_name": "followings",
                },
            },
            {
                "percentage": 60,
                "data": {
                    "subfeed_id": "sf_2_default_merger_of_main",
                    "type": "subfeed",
                    "method_name": "ads",
                    "raise_error": True or False (default = True),
                },
            },
        ],
    },
},

Требования к клиентскому методу

Клиентский метод для получения данных должен обязательно включать в себя следующие параметры:

  • user_id: Any - ID объекта, на который ориентируемся при получении данных субфида.
  • limit: int - Количество возвращаемых данных.
  • next_page: FeedResultNextPageInside - Объект курсора пагинации, формируется на стороне клиента после обработки данных.

Возвращаемый тип данных: FeedResultClient.

Запуск

Для получения ленты с помощью SmartFeed нужно выполнить следующий код:

from smartfeed.manager import FeedManager
from smartfeed.schemas import FeedResult, FeedResultNextPage, FeedResultNextPageInside

from client.services import ClientService

config = {} # получаем конфигурацию фида
methods_dict = {
    "method_1": ClientService().method_1,
    "method_2": ClientService().method_2,
    # и т.д.
}
# для конфигурации view_session = False,
# Redis передавать небязательно
redis_client = redis.Redis()

feed_manager = FeedManager(
    config=config,
    methods_dict=methods_dict,
    redis_client=redis_client,
)

user_id = "sjjdj?" # любой тип данных
limit = 100
next_page = FeedResultNextPage(
    data={
        "subfeed_id": FeedResultNextPageInside(page=1, after=None),
    }
)
data: FeedResult = await feed_manager.get_data(
    user_id=user_id,
    limit=limit,
    next_page=next_page,
)

Download files

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

Source Distribution

epoch8_smartfeed-0.2.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

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

epoch8_smartfeed-0.2.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file epoch8_smartfeed-0.2.0.tar.gz.

File metadata

  • Download URL: epoch8_smartfeed-0.2.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for epoch8_smartfeed-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9a4761ab71fd3c43573703d45f7d5465b18030b08a52d78ea3cfac4c0fa34b6b
MD5 469c9db3546d17fde38414e6f9c8d7e7
BLAKE2b-256 f33442575d19f90e28fcaa43f241265c543202ddd7e3f8c6a38a1e628d749745

See more details on using hashes here.

Provenance

The following attestation bundles were made for epoch8_smartfeed-0.2.0.tar.gz:

Publisher: build-and-publish.yaml on epoch8/smartfeed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epoch8_smartfeed-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for epoch8_smartfeed-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a056118e089450c682e5cd4fb7f1ad4b5364af97f5fe90eb7d9484288768c768
MD5 65e8477418967823b63423c1cb5e64fe
BLAKE2b-256 ec72ca5705edf340b26357ee21235ee64e2ef37104f66c7723209dc8e75f81e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for epoch8_smartfeed-0.2.0-py3-none-any.whl:

Publisher: build-and-publish.yaml on epoch8/smartfeed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

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