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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a4761ab71fd3c43573703d45f7d5465b18030b08a52d78ea3cfac4c0fa34b6b
|
|
| MD5 |
469c9db3546d17fde38414e6f9c8d7e7
|
|
| BLAKE2b-256 |
f33442575d19f90e28fcaa43f241265c543202ddd7e3f8c6a38a1e628d749745
|
Provenance
The following attestation bundles were made for epoch8_smartfeed-0.2.0.tar.gz:
Publisher:
build-and-publish.yaml on epoch8/smartfeed
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
epoch8_smartfeed-0.2.0.tar.gz -
Subject digest:
9a4761ab71fd3c43573703d45f7d5465b18030b08a52d78ea3cfac4c0fa34b6b - Sigstore transparency entry: 724423579
- Sigstore integration time:
-
Permalink:
epoch8/smartfeed@ce8369476a4e50102d5bb490d428941dd66b45f9 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/epoch8
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-and-publish.yaml@ce8369476a4e50102d5bb490d428941dd66b45f9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file epoch8_smartfeed-0.2.0-py3-none-any.whl.
File metadata
- Download URL: epoch8_smartfeed-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a056118e089450c682e5cd4fb7f1ad4b5364af97f5fe90eb7d9484288768c768
|
|
| MD5 |
65e8477418967823b63423c1cb5e64fe
|
|
| BLAKE2b-256 |
ec72ca5705edf340b26357ee21235ee64e2ef37104f66c7723209dc8e75f81e2
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
epoch8_smartfeed-0.2.0-py3-none-any.whl -
Subject digest:
a056118e089450c682e5cd4fb7f1ad4b5364af97f5fe90eb7d9484288768c768 - Sigstore transparency entry: 724423581
- Sigstore integration time:
-
Permalink:
epoch8/smartfeed@ce8369476a4e50102d5bb490d428941dd66b45f9 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/epoch8
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-and-publish.yaml@ce8369476a4e50102d5bb490d428941dd66b45f9 -
Trigger Event:
push
-
Statement type: