File size: 2,820 Bytes
725b3aa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "skydiscover"
dynamic = ["version"]
description = "A Flexible Framework for AI-Driven Scientific and Algorithmic Discovery"
readme = "README.md"
requires-python = ">=3.10, <3.14"
license = {text = "Apache-2.0"}
dependencies = [
    "openai>=1.0.0",
    "pyyaml>=6.0",
    "tqdm>=4.64.0",
    "numpy>=1.22.0",
]

[project.optional-dependencies]
math = [
    "scipy>=1.11.0",
    "sympy>=1.14.0",
    "jax>=0.6.2",
    "optax>=0.2.6",
    "torch",
    "scikit-learn>=1.0.0",
    "numba",
    "pandas",
    "matplotlib",
    "plotly",
    "networkx",
    "cvxpy",
    "autograd",
    "pymoo",
    "PyWavelets",
]
adrs = [
    "numpy>=1.22.0",
    "pandas",
    "networkx>=3.2,<3.4",
    "torch",
]
external = [
    "openevolve",
    "gepa[full]",
    "litellm>=1.81",  # gepa[full] needs litellm, but uv override-dependencies strips the [full] extra
]
dev = [
    "pytest>=7.0.0",
    "pytest-asyncio>=0.21.0",
    "black>=22.0.0",
    "isort>=5.10.0",
    "mypy>=0.950",
    "requests>=2.28.0",
]
frontier-cs = [
    "anthropic>=0.74.0",
    "colorlog>=6.10.1",
    "datasets>=4.4.1",
    "google-genai>=1.55.0",
    "google-generativeai>=0.8.5",
    "numpy>=2.0.0",  # Frontier-CS requires numpy 2.x
    "python-dotenv>=1.2.1",
    "skypilot>=0.10.5",
]
prompt-optimization = [
    "dspy>=3.1.3",
    "litellm>=1.81",
    "bm25s>=0.3.0",
    "pystemmer>=2.2.0.3",
    "datasets>=4.5.0",
    "diskcache>=5.6.3",
    "ujson>=5.11.0",
]

[tool.uv]
override-dependencies = ["httpx>=0.28.1", "gepa>=0.0.26"]

[tool.uv.sources]
openevolve = { git = "https://github.com/algorithmicsuperintelligence/openevolve.git", branch = "main" }
gepa = { git = "https://github.com/gepa-ai/gepa.git", branch = "main" }

[tool.black]
line-length = 100
target-version = ['py310']
include = '\.pyi?$'

[tool.isort]
profile = "black"
line_length = 100

[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true

[project.scripts]
skydiscover-run = "skydiscover.cli:main"
skydiscover-viewer = "skydiscover.extras.monitor.viewer:main"

[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
    "slow: marks tests as slow (deselect with '-m \"not slow\"')",
    "integration: marks tests as integration tests requiring external services"
]
addopts = "--strict-markers"

[tool.setuptools.packages.find]
include = ["skydiscover*"]

[tool.setuptools.package-data]
skydiscover = [
    "context_builder/*/templates/*.txt",
    "search/evox/config/*.yaml",
    "search/evox/config/*.txt",
    "extras/external/defaults/*.yaml",
    "extras/monitor/dashboard.html",
]

[tool.setuptools.dynamic]
version = {attr = "skydiscover._version.__version__"}