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

Uploaded Python 3

File details

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

File metadata

  • Download URL: epoch8_smartfeed-0.1.0.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.10.12 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for epoch8_smartfeed-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0b7ddd983076f776654c3d2fef5d5a7355c9cf13668d5b0a89890e601e528bc6
MD5 5e41286d46aa791b8a6a2fcea347e096
BLAKE2b-256 2a81aa54f6580ef210498b58bacc7f3665eee999a5f2411bb22cb0592f851037

See more details on using hashes here.

File details

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

File metadata

  • Download URL: epoch8_smartfeed-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.10.12 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for epoch8_smartfeed-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5c1539253242d62d524a631a30d1595180ab36a06a52867bfb2fde6aa30022a
MD5 2387f6e13d74d5cfec4146fa568e534b
BLAKE2b-256 e2cba07ecac7a1fbdaf621bbb1df5273d5e8ef1a866e70a0d14147ddf64fcc6b

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