90 lines
2.8 KiB
Python
90 lines
2.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
import os
|
|
import uuid
|
|
|
|
from setuptools import setup
|
|
|
|
# Read dependencies from requirements.txt
|
|
with open("requirements.txt", encoding="utf-8") as requirements_file:
|
|
requirements = requirements_file.read().splitlines()
|
|
|
|
|
|
# Read config.yml file
|
|
def read_config():
|
|
config_path = os.path.join(
|
|
os.path.dirname(__file__),
|
|
"deploy_starter",
|
|
"config.yml",
|
|
)
|
|
config_data = {}
|
|
with open(config_path, encoding="utf-8") as config_file:
|
|
for line in config_file:
|
|
line = line.strip()
|
|
if line and not line.startswith("#"):
|
|
if ":" in line:
|
|
key, value = line.split(":", 1)
|
|
key = key.strip()
|
|
value = value.strip().strip("\"'")
|
|
if value.lower() == "true":
|
|
value = True
|
|
elif value.lower() == "false":
|
|
value = False
|
|
elif value.isdigit():
|
|
value = int(value)
|
|
config_data[key] = value
|
|
return config_data
|
|
|
|
|
|
# Read README.md file
|
|
def read_readme():
|
|
readme_files = ["README.md", "README.rst", "README.txt"]
|
|
for filename in readme_files:
|
|
if os.path.exists(filename):
|
|
with open(filename, encoding="utf-8") as readme_handle:
|
|
return readme_handle.read()
|
|
return "A FastAPI application with AgentScope runtime"
|
|
|
|
|
|
# Read configuration
|
|
config = read_config()
|
|
|
|
# Get configuration values
|
|
setup_package_name = config.get("SETUP_PACKAGE_NAME", "deploy_starter")
|
|
setup_module_name = config.get("SETUP_MODULE_NAME", "main")
|
|
setup_function_name = config.get("SETUP_FUNCTION_NAME", "run_app")
|
|
setup_command_name = config.get("SETUP_COMMAND_NAME", "MCP-Server-starter")
|
|
|
|
# Generate package name with UUID
|
|
base_name = config.get("SETUP_NAME", "MCP-Server-starter")
|
|
unique_name = f"{base_name}-{uuid.uuid4().hex[:8]}"
|
|
|
|
# Create package structure
|
|
setup(
|
|
name=unique_name,
|
|
version=config.get("SETUP_VERSION", "0.1.0"),
|
|
description=config.get("SETUP_DESCRIPTION", "MCP-Server-starter"),
|
|
long_description=config.get(
|
|
"SETUP_LONG_DESCRIPTION",
|
|
(
|
|
"MCP-Server-starter services, supporting both direct execution "
|
|
"and uvicorn deployment"
|
|
),
|
|
),
|
|
packages=[setup_package_name],
|
|
package_dir={setup_package_name: setup_package_name},
|
|
install_requires=requirements,
|
|
python_requires=">=3.8",
|
|
entry_points={
|
|
"console_scripts": [
|
|
(
|
|
f"{setup_command_name}={setup_package_name}."
|
|
f"{setup_module_name}:{setup_function_name}"
|
|
),
|
|
],
|
|
},
|
|
include_package_data=True,
|
|
package_data={
|
|
setup_package_name: ["config.yml"],
|
|
},
|
|
)
|