Мощный SDK для работы с API Low Code с расширенными возможностями обработки ошибок и сетевого взаимодействия
Project description
Low Code API Lib SDK
Версия 0.1.1 - Мощный SDK для работы с API платформы Low Code с расширенными возможностями обработки ошибок, сетевого взаимодействия и тестирования.
🚀 Новое в версии 0.1.1
- ✅ Расширенная обработка ошибок - специализированные исключения для различных типов ошибок
- ✅ Сетевые возможности - NetworkManager для управления соединениями и NetworkSharing для обмена данными
- ✅ Модули тестирования - полный набор тестов для всех компонентов SDK
- ✅ Улучшенная документация - подробная документация в папке
docs/ - ✅ Повышенная надежность - автоматические повторные попытки и пулинг соединений
📦 Установка
pip install low-code-api-lib-sdk
Требования
- Python 3.7+
- requests >= 2.25.0
- urllib3 >= 1.26.0
📖 Использование
Быстрый старт
from my_sdk import Client
from my_sdk.exceptions import SDKError, AuthenticationError
# Создание клиента с токеном авторизации
client = Client(
token="ваш_токен_авторизации",
base_url="https://api.lowcodeapi.ru" # опционально
)
# Безопасное использование с обработкой ошибок
try:
user_info = client.auth.get_me()
print(f"Добро пожаловать, {user_info['name']}!")
except AuthenticationError as e:
print(f"Ошибка аутентификации: {e}")
except SDKError as e:
print(f"Ошибка SDK: {e}")
🔧 Инициализация клиента
Аутентификация
# Получение модуля аутентификации
auth = client.auth()
# Вход в систему
login_result = auth.login(username="username", password="password")
print(login_result)
# Регистрация нового пользователя
register_result = auth.register(
username="new_user",
password="secure_password",
email="user@example.com"
)
print(register_result)
# Выход из системы
logout_result = auth.logout()
print(logout_result)
Работа с пользователями
# Получение модуля пользователя
user = client.user()
# Получение информации о пользователе
user_info = user.get_info()
print(user_info)
# Получение статистики пользователя
user_stats = user.get_stats()
print(user_stats)
Работа с ботами
# Получение модуля ботов
bots = client.bots()
# Генерация кода бота
generate_code_result = bots.generate_code(bot_id=123, language="python")
print(generate_code_result)
# Запуск бота
run_bot_result = bots.run_bot(bot_id=123)
print(run_bot_result)
# Остановка бота
stop_bot_result = bots.stop_bot(bot_id=123)
print(stop_bot_result)
# Получение статуса бота
bot_status = bots.get_bot_status(bot_id=123)
print(bot_status)
Работа с шаблонами
# Получение модуля шаблонов
templates = client.templates()
# Скачивание шаблона
download_result = templates.download(template_id=456)
print(download_result)
# Оценка шаблона
rate_result = templates.rate(template_id=456, rating=5)
print(rate_result)
# Добавление комментария к шаблону
comment_result = templates.comment(template_id=456, comment_text="Отличный шаблон!")
print(comment_result)
# Использование шаблона для создания бота
use_template_result = templates.use_template(template_id=456, bot_name="Мой новый бот")
print(use_template_result)
Работа с медиафайлами
# Получение модуля медиа
media = client.media()
# Загрузка медиафайла для бота
with open("image.jpg", "rb") as file:
upload_result = media.upload_media(bot_id=123, file_data=file)
print(upload_result)
Работа с визуальным редактором
# Получение модуля визуального редактора
visual_editor = client.visual_editor()
# Получение конфигурации блоков
blocks_config = visual_editor.get_blocks_config()
print(blocks_config)
# Генерация кода из блоков
blocks = [
{"type": "start", "id": "1"},
{"type": "message", "id": "2", "text": "Привет, мир!"}
]
generate_code_result = visual_editor.generate_code(blocks=blocks)
print(generate_code_result)
Административные функции
# Получение модуля администратора
admin = client.admin()
# Получение статистики для администратора
admin_stats = admin.get_stats()
print(admin_stats)
# Получение комплексной статистики платформы
comprehensive_stats = admin.get_comprehensive_stats()
print(comprehensive_stats)
Системные функции
# Получение модуля системы
system = client.system()
# Проверка работоспособности системы
health_check = system.health_check()
print(health_check)
🌐 Сетевые возможности (Новое в 0.1.1)
NetworkManager для управления соединениями
from my_sdk.network import get_network_manager
# Получение менеджера сети с автоматическими повторными попытками
network_manager = get_network_manager()
# Выполнение запроса с автоматическими повторами
response = network_manager.request(
method='GET',
url='https://api.example.com/data',
max_retries=3,
timeout=30
)
NetworkSharing для обмена данными
from my_sdk.network import NetworkSharing
# Создание сервера для обмена данными
sharing = NetworkSharing()
# Запуск сервера
sharing.start_server(host='localhost', port=8080)
# Отправка данных клиенту
data = {'message': 'Привет от сервера!'}
sharing.send_data('client_id', data)
# Подключение клиента
client_sharing = NetworkSharing()
client_sharing.connect_client('localhost', 8080)
⚠️ Обработка ошибок (Новое в 0.1.1)
Специализированные исключения
from my_sdk.exceptions import (
SDKError, AuthenticationError, NetworkError,
ValidationError, RateLimitError
)
try:
# Ваш код здесь
result = client.users.get_user(user_id=123)
except AuthenticationError:
print("Проблемы с аутентификацией")
except NetworkError:
print("Проблемы с сетью")
except ValidationError as e:
print(f"Ошибка валидации: {e}")
except RateLimitError:
print("Превышен лимит запросов")
except SDKError as e:
print(f"Общая ошибка SDK: {e}")
Валидация входных данных
from my_sdk.exceptions import validate_token, validate_base_url
# Валидация токена
try:
validate_token("your_token_here")
except ValidationError as e:
print(f"Неверный токен: {e}")
# Валидация URL
try:
validate_base_url("https://api.example.com")
except ValidationError as e:
print(f"Неверный URL: {e}")
🧪 Тестирование (Новое в 0.1.1)
Запуск тестов
# Установка зависимостей для тестирования
pip install pytest pytest-cov
# Запуск всех тестов
pytest tests/
# Запуск тестов с покрытием кода
pytest tests/ --cov=my_sdk --cov-report=html
# Запуск конкретного теста
pytest tests/test_client.py::TestClient::test_client_initialization
Структура тестов
tests/test_base.py- тесты базового API классаtests/test_client.py- тесты клиента SDKtests/test_exceptions.py- тесты обработки ошибокtests/test_network.py- тесты сетевых возможностей
📚 Документация
Полная документация доступна в папке docs/:
docs/API_REFERENCE.md- справочник по APIdocs/EXAMPLES.md- примеры использованияdocs/GITHUB_ACTIONS_PUBLISH.md- публикация через GitHub Actionsdocs/PUBLISH.md- руководство по публикации
🔧 Разработка
Установка для разработки
# Клонирование репозитория
git clone <repository_url>
cd My_SDK_API_LIB_PIP
# Установка в режиме разработки
pip install -e .
# Установка зависимостей для разработки
pip install pytest pytest-cov black flake8
Запуск линтеров
# Форматирование кода
black my_sdk/ tests/
# Проверка стиля кода
flake8 my_sdk/ tests/
📝 Changelog
v0.1.1 (Текущая версия)
- Добавлена расширенная обработка ошибок
- Добавлены сетевые возможности (NetworkManager, NetworkSharing)
- Добавлены модули тестирования
- Улучшена документация
- Добавлена валидация входных данных
- Добавлен пулинг соединений
v0.1.0
- Базовая функциональность SDK
- Поддержка основных API модулей
- Аутентификация и авторизация
🤝 Вклад в проект
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add amazing feature') - Отправьте в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
📄 Лицензия
MIT
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 low_code_api_lib_sdk-0.1.1.tar.gz.
File metadata
- Download URL: low_code_api_lib_sdk-0.1.1.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
857f4678b22f5feabf51c38ab1f828a8a011e2a0624bdb9022a244f019fa6f55
|
|
| MD5 |
f10a67839ac070842cb122ca2fee4d6c
|
|
| BLAKE2b-256 |
07a9c837e2f33c9e492daf4a648eaeed98031e14d500805d881aa49627e90f53
|
File details
Details for the file low_code_api_lib_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: low_code_api_lib_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4d9c9636ba3d079269e4fca15fb01b27182436afc2a62553f3207277f60c612
|
|
| MD5 |
38562a7463898b1d412a4bc778fbe2d2
|
|
| BLAKE2b-256 |
68564c71548d219bf41865caf564a71de3b5b0fc86c1a795ffb435dc207dd42a
|