gengineapi 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gengineapi
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: G-Engine API Client
5
5
  Requires-Python: >=3.13
6
6
  Description-Content-Type: text/markdown
@@ -8,7 +8,7 @@ Requires-Dist: aiohttp>=3.8.0
8
8
  Requires-Dist: typing-extensions>=4.0.0
9
9
  Requires-Dist: aiohttp-socks>=0.7.1
10
10
 
11
- # G-Engine API Client
11
+ # GEngineAPI
12
12
 
13
13
  Асинхронный модульный клиент для взаимодействия с API G-Engine.
14
14
 
@@ -28,44 +28,63 @@ Requires-Dist: aiohttp-socks>=0.7.1
28
28
  ## Установка
29
29
 
30
30
  ```bash
31
- pip install -r requirements.txt
31
+ pip install gengineapi
32
32
  ```
33
33
 
34
- Или с помощью setup.py:
34
+ Для поддержки SOCKS5 прокси убедитесь, что установлен пакет `aiohttp-socks`:
35
35
 
36
36
  ```bash
37
- pip install .
37
+ pip install aiohttp-socks
38
38
  ```
39
39
 
40
- ## Структура проекта
40
+ ## Использование
41
41
 
42
- ```
43
- src/
44
- └── gengineapi/
45
- ├── __init__.py # Экспорт основных классов
46
- ├── client.py # Основной класс клиента
47
- ├── http.py # HTTP клиент с поддержкой аутентификации
48
- ├── exceptions.py # Иерархия исключений API
49
- ├── config.py # Класс-конфигурация для настройки параметров
50
- ├── farm.py # Ферма клиентов для управления множеством клиентов
51
- └── modules/ # Папка с модулями API
52
- ├── __init__.py
53
- ├── base.py # Базовый класс для всех модулей
54
- ├── payments.py # Модуль для работы с платежами
55
- ├── finances.py # Модуль для работы с финансами
56
- ├── auth.py # Модуль для аутентификации
57
- ├── users.py # Модуль для работы с пользователями
58
- ├── transactions.py # Модуль для работы с транзакциями
59
- └── currencies.py # Модуль для работы с валютами
60
- ```
42
+ ### Быстрый старт
61
43
 
62
- ## Использование
44
+ ```python
45
+ import os
46
+ import asyncio
47
+ import logging
48
+ from gengineapi import ClientFarm
49
+ from dotenv import load_dotenv
50
+
51
+ load_dotenv()
52
+
53
+ GTOKEN = os.getenv("GTOKEN")
54
+
55
+ # Настройка логирования
56
+ logging.basicConfig(
57
+ level=logging.INFO,
58
+ format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
59
+ )
60
+ logger = logging.getLogger("gengine")
63
61
 
62
+ gfarm = ClientFarm(logger=logger)
63
+
64
+ gfarm.create_config(name="base",
65
+ base_url="https://b2b-api.ggsel.com/api/v2",
66
+ jwt_token=GTOKEN,
67
+ timeout=60,
68
+ max_retries=5,
69
+ proxy="socks5://username:password@host:port") # Прокси опциональные
70
+
71
+ async def main():
72
+ client = await gfarm.get_client("base")
73
+
74
+ async with client:
75
+ me = await client.users.get_me()
76
+
77
+ logger.info(me)
78
+
79
+
80
+ if __name__ == "__main__":
81
+ asyncio.run(main())
82
+ ```
64
83
  ### Инициализация с существующим токеном
65
84
 
66
85
  ```python
67
86
  import asyncio
68
- from src.gengineapi import GEngineClient
87
+ from gengineapi import GEngineClient
69
88
 
70
89
  async def main():
71
90
  # Создаем клиент с существующим токеном
@@ -86,7 +105,7 @@ asyncio.run(main())
86
105
 
87
106
  ```python
88
107
  import asyncio
89
- from src.gengineapi import GEngineClient
108
+ from gengineapi import GEngineClient
90
109
 
91
110
  async def main():
92
111
  # Создаем клиент без токена
@@ -121,7 +140,7 @@ asyncio.run(main())
121
140
 
122
141
  ```python
123
142
  import asyncio
124
- from src.gengineapi import GEngineClient
143
+ from gengineapi import GEngineClient
125
144
 
126
145
  async def main():
127
146
  # Создаем клиент с использованием SOCKS5 прокси
@@ -151,7 +170,7 @@ asyncio.run(main())
151
170
 
152
171
  ```python
153
172
  import asyncio
154
- from src.gengineapi import GEngineConfig
173
+ from gengineapi import GEngineConfig
155
174
 
156
175
  async def main():
157
176
  # Настройка параметров клиента
@@ -196,7 +215,7 @@ asyncio.run(main())
196
215
 
197
216
  ```python
198
217
  import asyncio
199
- from src.gengineapi import ClientFarm
218
+ from gengineapi import ClientFarm
200
219
 
201
220
  async def main():
202
221
  # Создаем ферму клиентов
@@ -240,41 +259,62 @@ async def main():
240
259
  asyncio.run(main())
241
260
  ```
242
261
 
243
- ### Экспорт и импорт конфигураций фермы
262
+ ### Работа с платежами
244
263
 
245
264
  ```python
246
265
  import asyncio
247
- from src.gengineapi import ClientFarm
266
+ import uuid
267
+ from decimal import Decimal
268
+ from gengineapi import GEngineClient
248
269
 
249
270
  async def main():
250
- # Создаем и настраиваем ферму
251
- farm = ClientFarm()
252
-
253
- # Добавляем конфигурации
254
- farm.create_config(name="client1", base_url="...", jwt_token="...", proxy="...")
255
- farm.create_config(name="client2", base_url="...", jwt_token="...", proxy="...")
256
-
257
- # Экспортируем конфигурации в файл
258
- await farm.export_configs("farm_config.json")
259
-
260
- # Импортируем конфигурации из файла
261
- new_farm = await ClientFarm.import_configs("farm_config.json")
262
-
263
- # Используем импортированные конфигурации
264
- client = await new_farm.get_next_client()
265
-
266
- # При завершении работы закрываем все клиенты
267
- await new_farm.close_all()
271
+ async with GEngineClient(
272
+ base_url="https://api.example.com/api/v2",
273
+ jwt_token="your-jwt-token"
274
+ ) as client:
275
+ # Генерируем уникальный идентификатор транзакции
276
+ transaction_id = str(uuid.uuid4())
277
+
278
+ # Создаем и верифицируем платеж
279
+ payment = await client.payments.verify(
280
+ transaction_id=transaction_id,
281
+ service_id=1,
282
+ account="user123",
283
+ amount=Decimal("10.99"),
284
+ currency="USD"
285
+ )
286
+ print(f"Создан платеж: {payment['transaction_id']}")
287
+
288
+ # Выполняем платеж
289
+ result = await client.payments.execute(transaction_id=transaction_id)
290
+ print(f"Статус платежа: {result['status_code']}")
291
+
292
+ # Получаем статус платежа
293
+ status = await client.payments.get_status(transaction_id=transaction_id)
294
+ print(f"Текущий статус платежа: {status['status_code']}")
268
295
 
269
296
  asyncio.run(main())
270
297
  ```
271
298
 
299
+ ## Доступные модули API
300
+
301
+ - `payments` - создание и выполнение платежей
302
+ - `finances` - работа с финансовыми данными
303
+ - `auth` - аутентификация и управление токенами
304
+ - `users` - работа с пользователями и их балансами
305
+ - `transactions` - работа с транзакциями
306
+ - `currencies` - работа с курсами валют
307
+
308
+ ## Дополнительная документация
309
+
310
+ Ручки, которые дергаем - https://b2b-api.ggsel.com/api/v2/docs#
311
+
272
312
  ## Зависимости
273
313
 
274
314
  - Python 3.7+
275
315
  - aiohttp >= 3.8.0
276
316
  - typing-extensions >= 4.0.0
277
- - aiohttp-socks >= 0.7.1 (для поддержки SOCKS5 прокси)
317
+ - aiohttp-socks >= 0.7.1 (опционально, для поддержки SOCKS5 прокси)
278
318
 
279
319
  ## Лицензия
280
320
 
@@ -12,7 +12,7 @@ gengineapi/modules/finances.py,sha256=fwOWo1LI56ZC3qlTG-tv_cqbI7RyCPYQSNOT5r6VzT
12
12
  gengineapi/modules/payments.py,sha256=dwOqQcwsq256OQKzXJUn8a0H6krsf3Rb73KdAaRcEnw,4634
13
13
  gengineapi/modules/transactions.py,sha256=QUtTxzTFsLesqog9Da6H-pdq5DP0sgh9w2cIlZQiKCk,2932
14
14
  gengineapi/modules/users.py,sha256=WQyI37MVBAzqDE3i1LPpV2G5g_1cGvQh0vLomTF4vkI,4291
15
- gengineapi-0.2.0.dist-info/METADATA,sha256=ITliNO5hqOBbTEQW276ie5GcMBfQWFzqjSGzpprW5l8,10732
16
- gengineapi-0.2.0.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
17
- gengineapi-0.2.0.dist-info/top_level.txt,sha256=mYdcVWOxFzj4EzoczGzeT-ccVrNEjNI98w2JW51wnfk,11
18
- gengineapi-0.2.0.dist-info/RECORD,,
15
+ gengineapi-0.2.2.dist-info/METADATA,sha256=ctCyxDB5_RgW3ADHhu8C-leYpIdAyWTdEhuSVsCyOwE,11184
16
+ gengineapi-0.2.2.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
17
+ gengineapi-0.2.2.dist-info/top_level.txt,sha256=mYdcVWOxFzj4EzoczGzeT-ccVrNEjNI98w2JW51wnfk,11
18
+ gengineapi-0.2.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5