Skip to content

Repository files navigation

Система управления параметрированными функциями

Серверный компонент для управления и исполнения параметрированными функциями вещественных переменных вида y = f(x, λ).

Описание

Система предоставляет функционал для:

  • CRUD операций над параметрированными функциями (создание, чтение, обновление, удаление)
  • Вычисления функций на заданных входных параметрах
  • Запроса информации о функциях (имя, сигнатуры входа/выхода, параметры)

Архитектура

Проект состоит из следующих компонентов:

function_manager.py # Основной модуль управления функциями api_server.py # REST API сервер на FastAPI cli.py # CLI интерфейс example_api_client.py # Пример клиента для API example_cli_client.py # Пример использования CLI requirements.txt # Зависимости проекта

Создание виртуального окружения

python -m venv venv

Активация на Windows

venv\Scripts\activate

Активация на macOS/Linux

source venv/bin/activate

Установка

python3 -m venv .venv

  1. Установите зависимости:
pip install -r requirements.txt

Запуск REST API сервера

python api_server.py

Сервер запустится на http://localhost:8000

Использование CLI

# Список всех функций
python cli.py list

# Информация о функции
python cli.py info linear

# Создать функцию
python cli.py create my_func --type quadratic --a 1 --b 0 --c 0

# Выполнить функцию
python cli.py execute my_func --x 5.0

REST API

Через браузер (Swagger UI)

Откройте http://localhost:8000/docs и используйте интерактивный интерфейс.

Через curl

# Получить список функций
curl http://localhost:8000/functions

# Создать функцию
curl -X POST "http://localhost:8000/functions" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my_sine",
    "function_type": "sinusoidal",
    "parameters": {"A": 2.0, "omega": 3.0, "phi": 1.0},
    "description": "Синусоида y = 2*sin(3*x + 1)"
  }'

# Выполнить функцию
curl -X POST "http://localhost:8000/functions/my_sine/execute" \
  -H "Content-Type: application/json" \
  -d '{"inputs": {"x": 1.57}}'

CLI

Linux/macOS

# Создать функцию
python cli.py create my_poly --type polynomial \
  --c0 2.0 --c1 3.0 --c2 1.0 \
  --description "Полином y = 2 + 3x + x²"

# Выполнить функцию
python cli.py execute my_poly --x 2.0

Windows PowerShell

# Создать функцию
python cli.py create my_poly --type polynomial --c0 2.0 --c1 3.0 --c2 1.0 --description "Полином"

# Выполнить функцию
python cli.py execute my_poly --x 2.0

Все пользовательские функции автоматически сохраняются в functions_storage.json.

Встроенные функции (linear, quadratic, exponential, multi_output) не сохраняются в файл и инициализируются при каждом запуске.

Запуск примеров

Пример API клиента

python example_api_client.py

Пример CLI клиента

python example_cli_client.py

About

Add task 6

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages