forked from Starlight143/crucible
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequirements.txt
More file actions
132 lines (107 loc) · 5.37 KB
/
Copy pathrequirements.txt
File metadata and controls
132 lines (107 loc) · 5.37 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# ============================================================================
# Crucible Review — Python Dependencies
# ============================================================================
# Install: pip install -r requirements.txt
#
# Packages marked "Optional" are imported with try/except and the system
# degrades gracefully if they are absent. Install them only when you enable
# the corresponding feature flag.
# ============================================================================
# --- Core (always required) -------------------------------------------------
# v1.1.2 (sixth-pass M-11): minimum-version bounds on the core dependencies
# so the CI ``actions/setup-python`` cache key (hash of requirements.txt) is
# at least semantically meaningful — without any pins, the same content hash
# could resolve to wildly different installed versions across CI runs and
# ``pip-audit`` results would be non-reproducible from one PR to the next.
# Upper bounds are deliberately omitted on the core deps to stay compatible
# with the rolling-release model of crewai / langchain; pinning a lock file
# for full reproducibility is tracked separately (would require ``pip-compile``
# in a follow-up). These floors reflect the API surfaces actually consumed
# by the codebase (httpx ``follow_redirects=`` kwarg, pydantic v2 model
# validators, flask ``stream_with_context``, etc.).
crewai>=0.30
langchain-openai>=0.1
litellm>=1.30
pydantic>=2.0
httpx>=0.24
# --- Token counting / context budget ----------------------------------------
# Used by context_budget.py and context_pressure.py for accurate token counts.
tiktoken>=0.5
# --- .env loading (runtime configuration) -----------------------------------
# Used by crucible/runtime_logging.py to honour CRUCIBLE_LOG_LEVEL
# and other env vars defined in the project-root ``.env`` file at startup.
# Optional — operators who export their env vars from the shell will see
# the same behaviour as before if this package is absent (the runtime
# falls back silently with try/except ImportError).
#
# v1.1.9 (M2): the optional dependency block below also carries minimum
# floors so ``pip-audit`` and the actions/setup-python cache key stay
# semantically meaningful. Floors reflect the public-API surface actually
# consumed by the codebase and intentionally stay one or two majors back
# from the latest release to avoid forcing pointless upgrades on operators
# who already have a working install.
python-dotenv>=1.0
# --- YAML parsing (project profile) -----------------------------------------
pyyaml>=6.0
# --- Platform directory resolution ------------------------------------------
appdirs>=1.4
# --- Optional — backtest runner data fetching --------------------------------
# Install if using --backtest-runner
yfinance>=0.2.0
ccxt>=4.0
# --- Optional — Bayesian hyperparameter optimisation -------------------------
# Install if using BACKTEST_PARAM_SEARCH=bayesian
optuna>=3.0
# --- Optional — PDF report export --------------------------------------------
# Falls back to pure-stdlib writer if absent.
fpdf2>=2.7
# --- Optional — PDF / Word document ingestion --------------------------------
# Install if using --ingest-docs with PDF or DOCX files.
pypdf>=3.0
python-docx>=0.8.11
# --- Optional — project memory (vector database) ----------------------------
# Install if using --use-memory
chromadb>=0.4
# --- Optional — semantic deduplication ---------------------------------------
# Install if using ENHANCED_DEDUP_ENABLED=true
scikit-learn>=1.0
# --- Optional — file system watch mode ---------------------------------------
# Install if using the watch subcommand
watchdog>=3.0
# --- Optional — MLflow experiment tracking -----------------------------------
# Install if using MLFLOW_TRACKING_URI
mlflow>=2.0
# --- Optional — Quant Analytics Suite ----------------------------------------
# All fall back to pure-stdlib implementations if absent.
scipy>=1.7 # improves statistical significance tests (t-dist CDF, normal CDF)
statsmodels>=0.14 # used by factor_analyzer for OLS diagnostics if available
pandas-datareader>=0.10 # enables Fama-French factor data download (factor_analyzer --ff-data)
quantstats>=0.0.59 # tearsheet HTML rendering enhancement (falls back to pure Markdown)
# --- Optional — distributed tracing / observability --------------------------
# Install if using OTEL_EXPORTER_OTLP_ENDPOINT
opentelemetry-api>=1.20
opentelemetry-sdk>=1.20
opentelemetry-exporter-otlp>=1.20
# --- Optional — web UI -------------------------------------------------------
flask>=2.3
# --- Optional — extended feature modules -------------------------------------
# scheduler.py: built-in APScheduler job scheduling
APScheduler>=3.10
# redis_cache.py: Redis-backed research result cache
redis>=4.0
# prometheus_exporter.py: push metrics to Prometheus Pushgateway
prometheus_client>=0.15
# auth_manager.py: JWT authentication for WebUI
PyJWT>=2.0
bcrypt>=4.0
# celery_worker.py: distributed task queue
celery>=5.0
# chat_bot.py: Telegram and Discord bot interfaces
python-telegram-bot>=20.0
discord.py>=2.0
# notion_export.py: Notion API integration
# (uses stdlib urllib — no extra dep required)
# trading_platform.py: Interactive Brokers adapter
# ibapi # install manually: pip install ibapi (not on PyPI by default)
# type_coverage.py: type annotation analysis (mypy optional)
# mypy # install manually if TYPE_COVERAGE_RUN_MYPY=1