Пакет ``pghist-client`` предоставляет клиент для работы с сервисом ``pgchangehistory``.
Возможности
-----------
* Выполнение запросов к сервису логирования с учётом фильтров [pgchangehistory](https://stash.bars-open.ru/projects/M3/repos/pgchangehistory).
* Предобработка результатов выполнения запросов.
* Представление результатов в виде dataclass'ов.
* Предоставление провайдера `HistoryDataProvider` для работы с данными.
Системные требования
--------------------
* [Python](http://www.python.org/) >=3.6
* [Django](http://djangoproject.com/) >=2.2,<5.1
* [requests](https://pypi.org/project/requests/) >=2,<3
* [requests-oauthlib](https://pypi.org/project/requests-oauthlib/) <=1.3.1
* [oauthlib](https://pypi.org/project/oauthlib/) >=2,<3.3
* [djangorestframework](https://pypi.org/project/djangorestframework/)
Установка и подключение
-------------------------
Установка:
```bash
$ pip install pghist-client
```
Настройка:
```python
INSTALLED_APPS += [
'rest_framework',
'pghist_client',
]
PGHIST = dict(
API_URL='http://pgchangehistory.api.url/',
TIMEOUT=5,
USE_SIMPLE_SERVER=False,
OAUTH2=dict(
ACCESS_TOKEN='token_to_access',
TOKEN_URL='http://pgchangehistory.api.url/oauth2/token/',
CLIENT_ID='client_id',
CLIENT_SECRET='client_secret',
USERNAME='username',
PASSWORD='******',
),
)
```
Настройки
---------
- `API_URL` --- URL API сервера _**pgchangehistory**_.
- `TIMEOUT` --- timeout запроса к серверу **_pgchangehistory_** в секундах.
- `USE_SIMPLE_SERVER` --- Флаг использования сервиса без авторизации (при `True` потребуется какой-либо дефолтный `ACCESS_TOKEN`, имеющийся в сервисе).
- `ACCESS_TOKEN` --- Токен доступа к сервису (требуется только при использовании сервиса без авторизации).
- `OAUTH2` --- Блок параметров для OAUTH2 авторизации (необходимы при `USE_SIMPLE_SERVER=False`):
* `TOKEN_URL` --- URL для получения токена, должен использоваться HTTPS.
* `CLIENT_ID` --- ID клиента, созданный на стороне REST-сервера.
* `CLIENT_SECRET` --- Секретный ключ клиента, созданный на стороне REST-сервера.
* `USERNAME` --- username пользователя для получения токена.
* `PASSWORD` --- password пользователя для получения токена.
Raw data
{
"_id": null,
"home_page": "https://stash.bars-open.ru/projects/M3/repos/pghist-client",
"name": "pghist-client",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "django pghist client",
"author": "BARS Group",
"author_email": "bars@bars.group",
"download_url": "https://files.pythonhosted.org/packages/3a/a0/a66fb540ad43750edb9c376166a8197e973158a2ab21e9f8c36625dcc86b/pghist_client-0.1.1.tar.gz",
"platform": null,
"description": "\u041f\u0430\u043a\u0435\u0442 ``pghist-client`` \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c ``pgchangehistory``.\n\n\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\n-----------\n\n* \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 [pgchangehistory](https://stash.bars-open.ru/projects/M3/repos/pgchangehistory).\n* \u041f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n* \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435 dataclass'\u043e\u0432.\n* \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 `HistoryDataProvider` \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\n\n\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\n--------------------\n\n* [Python](http://www.python.org/) >=3.6\n* [Django](http://djangoproject.com/) >=2.2,<5.1\n* [requests](https://pypi.org/project/requests/) >=2,<3\n* [requests-oauthlib](https://pypi.org/project/requests-oauthlib/) <=1.3.1\n* [oauthlib](https://pypi.org/project/oauthlib/) >=2,<3.3\n* [djangorestframework](https://pypi.org/project/djangorestframework/)\n\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\n-------------------------\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430:\n\n```bash\n $ pip install pghist-client\n```\n\n\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430:\n\n```python\n\n INSTALLED_APPS += [\n 'rest_framework',\n 'pghist_client',\n ]\n\n PGHIST = dict(\n API_URL='http://pgchangehistory.api.url/',\n TIMEOUT=5,\n USE_SIMPLE_SERVER=False,\n OAUTH2=dict(\n ACCESS_TOKEN='token_to_access',\n TOKEN_URL='http://pgchangehistory.api.url/oauth2/token/',\n CLIENT_ID='client_id',\n CLIENT_SECRET='client_secret',\n USERNAME='username',\n PASSWORD='******',\n ),\n )\n```\n\n\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\n---------\n- `API_URL` --- URL API \u0441\u0435\u0440\u0432\u0435\u0440\u0430 _**pgchangehistory**_.\n- `TIMEOUT` --- timeout \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 **_pgchangehistory_** \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445.\n- `USE_SIMPLE_SERVER` --- \u0424\u043b\u0430\u0433 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u0435\u0437 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u043f\u0440\u0438 `True` \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 `ACCESS_TOKEN`, \u0438\u043c\u0435\u044e\u0449\u0438\u0439\u0441\u044f \u0432 \u0441\u0435\u0440\u0432\u0438\u0441\u0435).\n- `ACCESS_TOKEN` --- \u0422\u043e\u043a\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u0435\u0437 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438).\n- `OAUTH2` --- \u0411\u043b\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f OAUTH2 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043f\u0440\u0438 `USE_SIMPLE_SERVER=False`):\n * `TOKEN_URL` --- URL \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430, \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f HTTPS.\n * `CLIENT_ID` --- ID \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 REST-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n * `CLIENT_SECRET` --- \u0421\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 REST-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n * `USERNAME` --- username \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430.\n * `PASSWORD` --- password \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\u041a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (PGHist).",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://stash.bars-open.ru/projects/M3/repos/pghist-client"
},
"split_keywords": [
"django",
"pghist",
"client"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "675668e61bceb21b7b5b6e2115c1114865774b5f452c581faed63513077a5bc2",
"md5": "953e7829481acd9382b425af7c7aae2a",
"sha256": "2c48062679ec425ced65db8962d25ae0c2759d1ac33b30c5df59d79b1aa27bc3"
},
"downloads": -1,
"filename": "pghist_client-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "953e7829481acd9382b425af7c7aae2a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 12067,
"upload_time": "2024-10-25T13:26:57",
"upload_time_iso_8601": "2024-10-25T13:26:57.629143Z",
"url": "https://files.pythonhosted.org/packages/67/56/68e61bceb21b7b5b6e2115c1114865774b5f452c581faed63513077a5bc2/pghist_client-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3aa0a66fb540ad43750edb9c376166a8197e973158a2ab21e9f8c36625dcc86b",
"md5": "1130b87b6df95c4e75fabd342b2f83cc",
"sha256": "d92bae661458b3d89cb4a050eaf9ae08d7b222932366d6021225164494ec45e4"
},
"downloads": -1,
"filename": "pghist_client-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "1130b87b6df95c4e75fabd342b2f83cc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11010,
"upload_time": "2024-10-25T13:26:59",
"upload_time_iso_8601": "2024-10-25T13:26:59.283281Z",
"url": "https://files.pythonhosted.org/packages/3a/a0/a66fb540ad43750edb9c376166a8197e973158a2ab21e9f8c36625dcc86b/pghist_client-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-25 13:26:59",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pghist-client"
}