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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b7ddd983076f776654c3d2fef5d5a7355c9cf13668d5b0a89890e601e528bc6
|
|
| MD5 |
5e41286d46aa791b8a6a2fcea347e096
|
|
| BLAKE2b-256 |
2a81aa54f6580ef210498b58bacc7f3665eee999a5f2411bb22cb0592f851037
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5c1539253242d62d524a631a30d1595180ab36a06a52867bfb2fde6aa30022a
|
|
| MD5 |
2387f6e13d74d5cfec4146fa568e534b
|
|
| BLAKE2b-256 |
e2cba07ecac7a1fbdaf621bbb1df5273d5e8ef1a866e70a0d14147ddf64fcc6b
|