Skip to content

Commit 04ca170

Browse files
authored
Merge pull request #3 from CourseOrchestra/refactor
Refactor: Изменение формата записи параметров
2 parents 134d7e6 + 7692ff3 commit 04ca170

17 files changed

+1106
-939
lines changed

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
env:
5353
COVERAGE_FILE: coverage-unit.dat
5454
run: >
55-
pytest -q tests/test_mellophone.py tests/test_structures.py
55+
pytest -q tests/unit
5656
--cov=src/mellophone
5757
--cov-report=
5858
@@ -132,7 +132,7 @@ jobs:
132132
env:
133133
COVERAGE_FILE: coverage-integration.dat
134134
run: >
135-
pytest -q tests/test_integration_mellophone.py
135+
pytest -q tests/integration
136136
--cov=src/mellophone
137137
--cov-report=
138138

README.md

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ uv add "mellophone-valve[httpx,requests] @ git+https://github.com/CourseOrchestr
7676

7777
## Быстрый старт
7878

79+
### Синхронный
80+
7981
```python
8082
from mellophone import Mellophone
8183

@@ -85,6 +87,23 @@ print(client.is_authenticated(session_id))
8587
client.logout(session_id)
8688
```
8789

90+
### Асинхронный
91+
92+
```python
93+
import asyncio
94+
from mellophone import Mellophone
95+
96+
97+
async def async_call():
98+
client = Mellophone(base_url="http://localhost:8082/mellophone")
99+
session_id = await client.login_async("user", "password")
100+
print(await client.is_authenticated_async(session_id))
101+
await client.logout_async(session_id)
102+
103+
104+
asyncio.run(async_call())
105+
```
106+
88107
## API клиента
89108

90109
Класс `Mellophone` поддерживает пары методов `sync/async`.
@@ -110,14 +129,14 @@ client.logout(session_id)
110129

111130
- `import_gp/import_gp_async` - импортирует groups/providers, возвращает список строк из ответа API.
112131
- `get_provider_list/get_provider_list_async` - возвращает список или структуру провайдеров по учетным данным.
113-
- `get_user_list/get_user_list_async` - возвращает список пользователей по `gp` (опционально `ip`, `pid`); токен берется из `self.user_manage_token`.
132+
- `get_user_list/get_user_list_async` - возвращает список пользователей по `gp` (опционально `ip`, `pid`); токен берется из `self.token_user_manage`.
114133

115134
Настройки и user management:
116135

117-
- `set_settings/set_settings_async` - обновляет настройки (`lockout_time`, `login_attempts_allowed`); токен берется из `self.set_settings_token`.
118-
- `create_user/create_user_async` - создает пользователя (`POST /user/create`, XML payload); токен берется из `self.user_manage_token`.
119-
- `update_user/update_user_async` - обновляет пользователя по `sid` (`POST /user/{sid}`, XML payload); токен берется из `self.user_manage_token`.
120-
- `delete_user/delete_user_async` - удаляет пользователя по `sid` (`DELETE /user/{sid}`); токен берется из `self.user_manage_token`.
136+
- `set_settings/set_settings_async` - обновляет настройки (`lockout_time`, `login_attempts_allowed`); токен берется из `self.token_set_settings`.
137+
- `create_user/create_user_async` - создает пользователя (`POST /user/create`, XML payload); токен берется из `self.token_user_manage`.
138+
- `update_user/update_user_async` - обновляет пользователя по `sid` (`POST /user/{sid}`, XML payload); токен берется из `self.token_user_manage`.
139+
- `delete_user/delete_user_async` - удаляет пользователя по `sid` (`DELETE /user/{sid}`); токен берется из `self.token_user_manage`.
121140

122141
Состояние сессии:
123142

@@ -135,5 +154,9 @@ client.logout(session_id)
135154
- `TransportError` - транспортная ошибка HTTP-клиента (сеть/соединение).
136155
- `RequestTimeoutError` - превышен таймаут запроса.
137156
- `ResponseParseError` - не удалось распарсить XML-ответ API.
138-
- `MissingTokenError` - в клиенте не задан обязательный токен (`set_settings_token` или `user_manage_token`).
157+
- `MissingTokenError` - в клиенте не задан обязательный токен (`token_set_settings` или `token_user_manage`).
158+
159+
Совместимость:
160+
161+
- Старые имена `set_settings_token` и `user_manage_token` сохранены как deprecated-алиасы и вызывают `DeprecationWarning`.
139162
- `AsyncClientUnavailableError` - вызваны `async`-методы без установленного `httpx`.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "mellophone-valve"
3-
version = "3.1.1"
3+
version = "3.2.0"
44
description = "Python-клиент для Mellophone"
55
readme = "README.md"
66
requires-python = ">=3.7"

0 commit comments

Comments
 (0)