Skip to main content

No project description provided

Project description

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

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

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.

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