-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathsetup.py
More file actions
103 lines (94 loc) · 3.05 KB
/
setup.py
File metadata and controls
103 lines (94 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
MLA V3 - Multi-Level Agent System
安装配置
"""
from setuptools import setup, find_packages
from pathlib import Path
# 读取 README
readme_file = Path(__file__).parent / "README.md"
long_description = readme_file.read_text(encoding='utf-8') if readme_file.exists() else ""
# 读取依赖
requirements_file = Path(__file__).parent / "requirements.txt"
if requirements_file.exists():
raw_requirements = [
line.strip() for line in requirements_file.read_text(encoding='utf-8').strip().split('\n')
if line.strip() and not line.strip().startswith('#')
]
else:
raw_requirements = []
requirements = []
seen = set()
for req in raw_requirements:
normalized = req.split(";")[0].strip().lower()
if normalized.startswith("pytest"):
continue
if normalized in seen:
continue
seen.add(normalized)
requirements.append(req)
def _collect_data_files(base_dir: Path, install_prefix: str):
files = []
if not base_dir.exists():
return files
project_root = Path(__file__).parent
for path in base_dir.rglob("*"):
if not path.is_file():
continue
relative_parent = path.parent.relative_to(base_dir)
target_dir = Path(install_prefix) / relative_parent
files.append((str(target_dir), [str(path.relative_to(project_root))]))
return files
data_files = []
project_root = Path(__file__).parent
data_files.extend(_collect_data_files(project_root / "config", "config"))
data_files.extend(_collect_data_files(project_root / "skills", "skills"))
setup(
name="infiagent",
version="3.2.1",
author="Chenglin Yu",
author_email="yuchenglin96@qq.com",
license="MIT",
description="InfiAgent multi-agent framework for long-running task automation",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/ChenglinPoly/Multi-Level-Agent",
packages=find_packages(
include=[
'core',
'infiagent',
'services',
'tool_server_lite',
'tool_server_lite.tools',
'utils',
],
),
py_modules=['start'],
include_package_data=True,
package_data={
'tool_server_lite': ['requirements.txt'],
'tool_server_lite.tools': ['*.md', '*.txt'],
},
data_files=data_files,
license_files=(),
install_requires=requirements,
python_requires='>=3.9',
entry_points={
'console_scripts': [
'infiagent=start:main',
'mla-agent=start:main',
],
},
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
],
)