Skip to main content

Мощный 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 - тесты клиента SDK
  • tests/test_exceptions.py - тесты обработки ошибок
  • tests/test_network.py - тесты сетевых возможностей

📚 Документация

Полная документация доступна в папке docs/:

  • docs/API_REFERENCE.md - справочник по API
  • docs/EXAMPLES.md - примеры использования
  • docs/GITHUB_ACTIONS_PUBLISH.md - публикация через GitHub Actions
  • docs/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 модулей
  • Аутентификация и авторизация

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  4. Отправьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📄 Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

low_code_api_lib_sdk-0.1.1.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

low_code_api_lib_sdk-0.1.1-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

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

Hashes for low_code_api_lib_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 857f4678b22f5feabf51c38ab1f828a8a011e2a0624bdb9022a244f019fa6f55
MD5 f10a67839ac070842cb122ca2fee4d6c
BLAKE2b-256 07a9c837e2f33c9e492daf4a648eaeed98031e14d500805d881aa49627e90f53

See more details on using hashes here.

File details

Details for the file low_code_api_lib_sdk-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for low_code_api_lib_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b4d9c9636ba3d079269e4fca15fb01b27182436afc2a62553f3207277f60c612
MD5 38562a7463898b1d412a4bc778fbe2d2
BLAKE2b-256 68564c71548d219bf41865caf564a71de3b5b0fc86c1a795ffb435dc207dd42a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page