dojozero 0.1.0__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dojozero-0.2.0/.gitignore +175 -0
- dojozero-0.2.0/PKG-INFO +135 -0
- dojozero-0.2.0/README.md +91 -0
- dojozero-0.2.0/pyproject.toml +63 -0
- dojozero-0.2.0/src/dojozero/__init__.py +13 -0
- dojozero-0.2.0/src/dojozero/_optional_alicloud.py +44 -0
- dojozero-0.2.0/src/dojozero/agents/__init__.py +64 -0
- dojozero-0.2.0/src/dojozero/agents/_config.py +349 -0
- dojozero-0.2.0/src/dojozero/agents/_social_board.py +540 -0
- dojozero-0.2.0/src/dojozero/agents/_toolkit.py +33 -0
- dojozero-0.2.0/src/dojozero/agents/_trial_utils.py +283 -0
- dojozero-0.2.0/src/dojozero/arena_server/__init__.py +35 -0
- dojozero-0.2.0/src/dojozero/arena_server/_cache.py +614 -0
- dojozero-0.2.0/src/dojozero/arena_server/_config.py +126 -0
- dojozero-0.2.0/src/dojozero/arena_server/_constants.py +295 -0
- dojozero-0.2.0/src/dojozero/arena_server/_endpoints.py +1135 -0
- dojozero-0.2.0/src/dojozero/arena_server/_models.py +282 -0
- dojozero-0.2.0/src/dojozero/arena_server/_redis_reader.py +231 -0
- dojozero-0.2.0/src/dojozero/arena_server/_server.py +1796 -0
- dojozero-0.2.0/src/dojozero/arena_server/_utils.py +1125 -0
- dojozero-0.2.0/src/dojozero/arena_server/get_snapshot.sh +33 -0
- dojozero-0.2.0/src/dojozero/betting/__init__.py +111 -0
- dojozero-0.2.0/src/dojozero/betting/_agent.py +1196 -0
- dojozero-0.2.0/src/dojozero/betting/_broker.py +2614 -0
- dojozero-0.2.0/src/dojozero/betting/_config.py +84 -0
- dojozero-0.2.0/src/dojozero/betting/_formatters.py +148 -0
- dojozero-0.2.0/src/dojozero/betting/_metadata.py +103 -0
- dojozero-0.2.0/src/dojozero/betting/_models.py +513 -0
- dojozero-0.2.0/src/dojozero/cli.py +2751 -0
- dojozero-0.2.0/src/dojozero/core/__init__.py +162 -0
- dojozero-0.2.0/src/dojozero/core/_actors.py +117 -0
- dojozero-0.2.0/src/dojozero/core/_base.py +121 -0
- dojozero-0.2.0/src/dojozero/core/_credentials.py +229 -0
- dojozero-0.2.0/src/dojozero/core/_filesystem_orchestrator_store.py +507 -0
- dojozero-0.2.0/src/dojozero/core/_metadata.py +71 -0
- dojozero-0.2.0/src/dojozero/core/_models.py +326 -0
- dojozero-0.2.0/src/dojozero/core/_registry.py +182 -0
- dojozero-0.2.0/src/dojozero/core/_runtime.py +96 -0
- dojozero-0.2.0/src/dojozero/core/_tracing.py +2353 -0
- dojozero-0.2.0/src/dojozero/core/_trial_orchestrator.py +1838 -0
- dojozero-0.2.0/src/dojozero/core/_types.py +114 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/__init__.py +111 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_game_discovery.py +625 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_gateway_routing.py +352 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_jsonl_utils.py +70 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_scheduler.py +1413 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_server.py +1461 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_trial_manager.py +1321 -0
- dojozero-0.2.0/src/dojozero/dashboard_server/_types.py +238 -0
- dojozero-0.2.0/src/dojozero/data/__init__.py +231 -0
- dojozero-0.2.0/src/dojozero/data/_backtest.py +173 -0
- dojozero-0.2.0/src/dojozero/data/_config.py +70 -0
- dojozero-0.2.0/src/dojozero/data/_context.py +61 -0
- dojozero-0.2.0/src/dojozero/data/_factory.py +283 -0
- dojozero-0.2.0/src/dojozero/data/_game_info.py +225 -0
- dojozero-0.2.0/src/dojozero/data/_hub.py +850 -0
- dojozero-0.2.0/src/dojozero/data/_models.py +836 -0
- dojozero-0.2.0/src/dojozero/data/_processors.py +128 -0
- dojozero-0.2.0/src/dojozero/data/_stores.py +566 -0
- dojozero-0.2.0/src/dojozero/data/_streams.py +208 -0
- dojozero-0.2.0/src/dojozero/data/_subscriptions.py +585 -0
- dojozero-0.2.0/src/dojozero/data/_utils.py +483 -0
- dojozero-0.2.0/src/dojozero/data/espn/__init__.py +52 -0
- dojozero-0.2.0/src/dojozero/data/espn/_api.py +589 -0
- dojozero-0.2.0/src/dojozero/data/espn/_state_tracker.py +274 -0
- dojozero-0.2.0/src/dojozero/data/espn/_stats_events.py +73 -0
- dojozero-0.2.0/src/dojozero/data/espn/_stats_fetcher.py +900 -0
- dojozero-0.2.0/src/dojozero/data/espn/_utils.py +20 -0
- dojozero-0.2.0/src/dojozero/data/nba/__init__.py +40 -0
- dojozero-0.2.0/src/dojozero/data/nba/_api.py +456 -0
- dojozero-0.2.0/src/dojozero/data/nba/_events.py +117 -0
- dojozero-0.2.0/src/dojozero/data/nba/_factory.py +70 -0
- dojozero-0.2.0/src/dojozero/data/nba/_state_tracker.py +205 -0
- dojozero-0.2.0/src/dojozero/data/nba/_store.py +886 -0
- dojozero-0.2.0/src/dojozero/data/nba/_utils.py +1070 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/__init__.py +35 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/_api.py +34 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/_events.py +117 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/_factory.py +55 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/_state_tracker.py +153 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/_store.py +155 -0
- dojozero-0.2.0/src/dojozero/data/ncaa/_utils.py +229 -0
- dojozero-0.2.0/src/dojozero/data/nfl/__init__.py +86 -0
- dojozero-0.2.0/src/dojozero/data/nfl/_api.py +56 -0
- dojozero-0.2.0/src/dojozero/data/nfl/_events.py +269 -0
- dojozero-0.2.0/src/dojozero/data/nfl/_factory.py +73 -0
- dojozero-0.2.0/src/dojozero/data/nfl/_state_tracker.py +153 -0
- dojozero-0.2.0/src/dojozero/data/nfl/_store.py +1198 -0
- dojozero-0.2.0/src/dojozero/data/nfl/_utils.py +406 -0
- dojozero-0.2.0/src/dojozero/data/polymarket/__init__.py +13 -0
- dojozero-0.2.0/src/dojozero/data/polymarket/_api.py +657 -0
- dojozero-0.2.0/src/dojozero/data/polymarket/_events.py +10 -0
- dojozero-0.2.0/src/dojozero/data/polymarket/_factory.py +89 -0
- dojozero-0.2.0/src/dojozero/data/polymarket/_models.py +110 -0
- dojozero-0.2.0/src/dojozero/data/polymarket/_store.py +334 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/__init__.py +37 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/_api.py +272 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/_events.py +218 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/_factory.py +49 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/_formatters.py +27 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/_store.py +90 -0
- dojozero-0.2.0/src/dojozero/data/socialmedia/_watchlist.py +340 -0
- dojozero-0.2.0/src/dojozero/data/websearch/__init__.py +38 -0
- dojozero-0.2.0/src/dojozero/data/websearch/_api.py +240 -0
- dojozero-0.2.0/src/dojozero/data/websearch/_events.py +478 -0
- dojozero-0.2.0/src/dojozero/data/websearch/_factory.py +52 -0
- dojozero-0.2.0/src/dojozero/data/websearch/_formatters.py +69 -0
- dojozero-0.2.0/src/dojozero/data/websearch/_store.py +71 -0
- dojozero-0.2.0/src/dojozero/gateway/__init__.py +104 -0
- dojozero-0.2.0/src/dojozero/gateway/_adapter.py +767 -0
- dojozero-0.2.0/src/dojozero/gateway/_auth.py +949 -0
- dojozero-0.2.0/src/dojozero/gateway/_models.py +409 -0
- dojozero-0.2.0/src/dojozero/gateway/_rate_limit.py +361 -0
- dojozero-0.2.0/src/dojozero/gateway/_server.py +675 -0
- dojozero-0.2.0/src/dojozero/gateway/_sse.py +304 -0
- dojozero-0.2.0/src/dojozero/nba/__init__.py +16 -0
- dojozero-0.2.0/src/dojozero/nba/_agent.py +69 -0
- dojozero-0.2.0/src/dojozero/nba/_datastream.py +458 -0
- dojozero-0.2.0/src/dojozero/nba/_formatters.py +189 -0
- dojozero-0.2.0/src/dojozero/nba/_trial.py +549 -0
- dojozero-0.2.0/src/dojozero/ncaa/__init__.py +12 -0
- dojozero-0.2.0/src/dojozero/ncaa/_agent.py +58 -0
- dojozero-0.2.0/src/dojozero/ncaa/_datastream.py +21 -0
- dojozero-0.2.0/src/dojozero/ncaa/_formatters.py +167 -0
- dojozero-0.2.0/src/dojozero/ncaa/_trial.py +492 -0
- dojozero-0.2.0/src/dojozero/nfl/__init__.py +16 -0
- dojozero-0.2.0/src/dojozero/nfl/_agent.py +70 -0
- dojozero-0.2.0/src/dojozero/nfl/_datastream.py +448 -0
- dojozero-0.2.0/src/dojozero/nfl/_formatters.py +256 -0
- dojozero-0.2.0/src/dojozero/nfl/_trial.py +525 -0
- dojozero-0.2.0/src/dojozero/ray_runtime/__init__.py +5 -0
- dojozero-0.2.0/src/dojozero/ray_runtime/_impl.py +243 -0
- dojozero-0.2.0/src/dojozero/sync_service/__init__.py +15 -0
- dojozero-0.2.0/src/dojozero/sync_service/_redis_client.py +833 -0
- dojozero-0.2.0/src/dojozero/sync_service/_sync.py +481 -0
- dojozero-0.2.0/src/dojozero/sync_service/main.py +99 -0
- dojozero-0.2.0/src/dojozero/utils/__init__.py +38 -0
- dojozero-0.2.0/src/dojozero/utils/oss.py +245 -0
- dojozero-0.2.0/src/dojozero/utils/time.py +121 -0
- dojozero-0.2.0/tests/conftest.py +235 -0
- dojozero-0.2.0/tests/test_agent_configs.py +464 -0
- dojozero-0.2.0/tests/test_agent_event_throttle.py +228 -0
- dojozero-0.2.0/tests/test_arena_event_deserialization.py +236 -0
- dojozero-0.2.0/tests/test_arena_span_grouping.py +54 -0
- dojozero-0.2.0/tests/test_betting_formatters.py +407 -0
- dojozero-0.2.0/tests/test_broker.py +3209 -0
- dojozero-0.2.0/tests/test_cli_agents.py +308 -0
- dojozero-0.2.0/tests/test_dashboard.py +1115 -0
- dojozero-0.2.0/tests/test_data_hub.py +1171 -0
- dojozero-0.2.0/tests/test_data_nba.py +1747 -0
- dojozero-0.2.0/tests/test_data_nfl.py +868 -0
- dojozero-0.2.0/tests/test_data_polymarket.py +861 -0
- dojozero-0.2.0/tests/test_game_state_tracker.py +322 -0
- dojozero-0.2.0/tests/test_gateway.py +1918 -0
- dojozero-0.2.0/tests/test_metadata.py +82 -0
- dojozero-0.2.0/tests/test_nba_formatters.py +415 -0
- dojozero-0.2.0/tests/test_nba_moneyline_agent.py +306 -0
- dojozero-0.2.0/tests/test_nfl_formatters.py +458 -0
- dojozero-0.2.0/tests/test_nfl_moneyline_agent.py +135 -0
- dojozero-0.2.0/tests/test_oss.py +489 -0
- dojozero-0.2.0/tests/test_registry.py +80 -0
- dojozero-0.2.0/tests/test_scheduler.py +944 -0
- dojozero-0.2.0/tests/test_social_board.py +146 -0
- dojozero-0.2.0/tests/test_socialmedia_events.py +335 -0
- dojozero-0.2.0/tests/test_span_models.py +267 -0
- dojozero-0.2.0/tests/test_stats_insight_events.py +314 -0
- dojozero-0.2.0/tests/test_subscriptions.py +408 -0
- dojozero-0.2.0/tests/test_websearch_events.py +124 -0
- dojozero-0.2.0/tests/test_websearch_formatters.py +144 -0
- dojozero-0.1.0/LICENSE +0 -21
- dojozero-0.1.0/PKG-INFO +0 -77
- dojozero-0.1.0/README.md +0 -49
- dojozero-0.1.0/pyproject.toml +0 -51
- dojozero-0.1.0/setup.cfg +0 -4
- dojozero-0.1.0/src/dojozero/__init__.py +0 -3
- dojozero-0.1.0/src/dojozero.egg-info/PKG-INFO +0 -77
- dojozero-0.1.0/src/dojozero.egg-info/SOURCES.txt +0 -10
- dojozero-0.1.0/src/dojozero.egg-info/dependency_links.txt +0 -1
- dojozero-0.1.0/src/dojozero.egg-info/requires.txt +0 -7
- dojozero-0.1.0/src/dojozero.egg-info/top_level.txt +0 -1
- dojozero-0.1.0/tests/test_dojozero.py +0 -11
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.nox/
|
|
41
|
+
.coverage
|
|
42
|
+
.coverage.*
|
|
43
|
+
.cache
|
|
44
|
+
nosetests.xml
|
|
45
|
+
coverage.xml
|
|
46
|
+
*.cover
|
|
47
|
+
*.py,cover
|
|
48
|
+
.hypothesis/
|
|
49
|
+
.pytest_cache/
|
|
50
|
+
cover/
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
local_settings.py
|
|
59
|
+
db.sqlite3
|
|
60
|
+
db.sqlite3-journal
|
|
61
|
+
|
|
62
|
+
# Flask stuff:
|
|
63
|
+
instance/
|
|
64
|
+
.webassets-cache
|
|
65
|
+
|
|
66
|
+
# Scrapy stuff:
|
|
67
|
+
.scrapy
|
|
68
|
+
|
|
69
|
+
# Sphinx documentation
|
|
70
|
+
docs/_build/
|
|
71
|
+
|
|
72
|
+
# PyBuilder
|
|
73
|
+
.pybuilder/
|
|
74
|
+
target/
|
|
75
|
+
|
|
76
|
+
# Jupyter Notebook
|
|
77
|
+
.ipynb_checkpoints
|
|
78
|
+
|
|
79
|
+
# IPython
|
|
80
|
+
profile_default/
|
|
81
|
+
ipython_config.py
|
|
82
|
+
|
|
83
|
+
# pyenv
|
|
84
|
+
.python-version
|
|
85
|
+
|
|
86
|
+
# pipenv
|
|
87
|
+
Pipfile.lock
|
|
88
|
+
|
|
89
|
+
# poetry
|
|
90
|
+
poetry.lock
|
|
91
|
+
|
|
92
|
+
# pdm
|
|
93
|
+
.pdm.toml
|
|
94
|
+
|
|
95
|
+
# PEP 582
|
|
96
|
+
__pypackages__/
|
|
97
|
+
|
|
98
|
+
# Celery stuff
|
|
99
|
+
celerybeat-schedule
|
|
100
|
+
celerybeat.pid
|
|
101
|
+
|
|
102
|
+
# SageMath parsed files
|
|
103
|
+
*.sage.py
|
|
104
|
+
|
|
105
|
+
# Environments
|
|
106
|
+
.env
|
|
107
|
+
.env.prod
|
|
108
|
+
.env.dev
|
|
109
|
+
.env.test
|
|
110
|
+
.env.local
|
|
111
|
+
.env.*.local
|
|
112
|
+
|
|
113
|
+
# virtualenvs
|
|
114
|
+
.venv
|
|
115
|
+
env/
|
|
116
|
+
venv/
|
|
117
|
+
ENV/
|
|
118
|
+
env.bak/
|
|
119
|
+
venv.bak/
|
|
120
|
+
|
|
121
|
+
# Spyder project settings
|
|
122
|
+
.spyderproject
|
|
123
|
+
.spyproject
|
|
124
|
+
|
|
125
|
+
# Rope project settings
|
|
126
|
+
.ropeproject
|
|
127
|
+
|
|
128
|
+
# mkdocs documentation
|
|
129
|
+
/site
|
|
130
|
+
|
|
131
|
+
# mypy
|
|
132
|
+
.mypy_cache/
|
|
133
|
+
.dmypy.json
|
|
134
|
+
dmypy.json
|
|
135
|
+
|
|
136
|
+
# Pyre type checker
|
|
137
|
+
.pyre/
|
|
138
|
+
|
|
139
|
+
# pytype static type analyzer
|
|
140
|
+
.pytype/
|
|
141
|
+
|
|
142
|
+
# Cython debug symbols
|
|
143
|
+
cython_debug/
|
|
144
|
+
|
|
145
|
+
# UV
|
|
146
|
+
.uv/
|
|
147
|
+
uv.lock
|
|
148
|
+
|
|
149
|
+
# IDEs
|
|
150
|
+
.vscode/
|
|
151
|
+
.idea/
|
|
152
|
+
*.swp
|
|
153
|
+
*.swo
|
|
154
|
+
*~
|
|
155
|
+
|
|
156
|
+
# OS
|
|
157
|
+
.DS_Store
|
|
158
|
+
Thumbs.db
|
|
159
|
+
|
|
160
|
+
# Sample scenario artifacts
|
|
161
|
+
dojozero-store
|
|
162
|
+
|
|
163
|
+
# Data
|
|
164
|
+
/outputs/
|
|
165
|
+
/data/
|
|
166
|
+
|
|
167
|
+
# Claude configs
|
|
168
|
+
/.claude/
|
|
169
|
+
|
|
170
|
+
# Package lock files
|
|
171
|
+
package-lock.json
|
|
172
|
+
|
|
173
|
+
# logs
|
|
174
|
+
/logs/node_modules/
|
|
175
|
+
node_modules/
|
dojozero-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dojozero
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: A platform for running AI agents on realtime sport data and make predictions about game outcomes.
|
|
5
|
+
Project-URL: Homepage, https://github.com/agentscope-ai/DojoZero
|
|
6
|
+
Project-URL: Repository, https://github.com/agentscope-ai/DojoZero
|
|
7
|
+
Project-URL: Issues, https://github.com/agentscope-ai/DojoZero/issues
|
|
8
|
+
Author-email: DojoZero Team <dojozero@list.alibaba-inc.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: ai-agents,prediction,realtime,sports,trading
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: agentscope[gemini]>=1.0.14
|
|
20
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
21
|
+
Requires-Dist: dashscope>=1.0.0
|
|
22
|
+
Requires-Dist: fastapi>=0.128.0
|
|
23
|
+
Requires-Dist: httpx>=0.28.0
|
|
24
|
+
Requires-Dist: matplotlib>=3.10.8
|
|
25
|
+
Requires-Dist: opentelemetry-api>=1.29.0
|
|
26
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.29.0
|
|
27
|
+
Requires-Dist: opentelemetry-sdk>=1.29.0
|
|
28
|
+
Requires-Dist: py-clob-client>=0.1.0
|
|
29
|
+
Requires-Dist: pydantic>=2.12.4
|
|
30
|
+
Requires-Dist: python-dotenv>=1.2.1
|
|
31
|
+
Requires-Dist: pyyaml>=6.0
|
|
32
|
+
Requires-Dist: tavily-python>=0.7.12
|
|
33
|
+
Requires-Dist: uvicorn>=0.40.0
|
|
34
|
+
Requires-Dist: xdk>=0.9.0
|
|
35
|
+
Provides-Extra: alicloud
|
|
36
|
+
Requires-Dist: alibabacloud-credentials>=1.0.0; extra == 'alicloud'
|
|
37
|
+
Requires-Dist: aliyun-log-python-sdk; extra == 'alicloud'
|
|
38
|
+
Requires-Dist: oss2>=2.18.0; extra == 'alicloud'
|
|
39
|
+
Provides-Extra: ray
|
|
40
|
+
Requires-Dist: ray>=2.51.1; extra == 'ray'
|
|
41
|
+
Provides-Extra: redis
|
|
42
|
+
Requires-Dist: redis>=7.2.1; extra == 'redis'
|
|
43
|
+
Description-Content-Type: text/markdown
|
|
44
|
+
|
|
45
|
+
# DojoZero
|
|
46
|
+
|
|
47
|
+
A platform for running AI agents on realtime sport data and make predictions about game outcomes.
|
|
48
|
+
|
|
49
|
+
## Installation
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install dojozero
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Optional extras
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pip install dojozero[alicloud] # Alibaba Cloud integration (OSS, credentials, SLS)
|
|
59
|
+
pip install dojozero[redis] # Redis-backed data stores
|
|
60
|
+
pip install dojozero[ray] # Distributed execution via Ray
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Environment Setup
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
cp .env.example .env
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Quick Start
|
|
70
|
+
|
|
71
|
+
### Run a single trial locally
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
dojo0 run --params trial_params/nba-moneyline.yaml --trial-id nba-local-001
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Resume an interrupted trial
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
dojo0 run --trial-id nba-local-001 --resume-latest
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Run through dashboard server
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Start server with tracing
|
|
87
|
+
dojo0 serve --trace-backend jaeger
|
|
88
|
+
|
|
89
|
+
# Submit a trial from another terminal
|
|
90
|
+
dojo0 run \
|
|
91
|
+
--params trial_params/nba-moneyline.yaml \
|
|
92
|
+
--trial-id nba-server-001 \
|
|
93
|
+
--server http://localhost:8000
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Automatic scheduling with trial sources
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
dojo0 serve --trace-backend jaeger --trial-source "trial_sources/daily/*.yaml"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Backtest from captured events
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
dojo0 backtest \
|
|
106
|
+
--events outputs/2026-01-12/401772976.jsonl \
|
|
107
|
+
--params outputs/2026-01-12/401772976.yaml \
|
|
108
|
+
--speed 100 --max-sleep 1
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Arena (live visualization)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
dojo0 arena --trace-backend jaeger
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Command Index
|
|
118
|
+
|
|
119
|
+
| Command | Purpose |
|
|
120
|
+
|---------|---------|
|
|
121
|
+
| `dojo0 run` | Start a local or server-submitted trial |
|
|
122
|
+
| `dojo0 serve` | Dashboard / orchestration server |
|
|
123
|
+
| `dojo0 arena` | Trace-backed Arena visualization server |
|
|
124
|
+
| `dojo0 backtest` | Replay persisted event streams |
|
|
125
|
+
| `dojo0 list-sources` | List trial sources |
|
|
126
|
+
| `dojo0 list-trials` | List scheduled trials |
|
|
127
|
+
| `dojo0 clear-schedules` | Clear scheduled runs |
|
|
128
|
+
|
|
129
|
+
## Documentation
|
|
130
|
+
|
|
131
|
+
- [Documentation](https://github.com/agentscope-ai/DojoZero/docs/README.md)
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
MIT
|
dojozero-0.2.0/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# DojoZero
|
|
2
|
+
|
|
3
|
+
A platform for running AI agents on realtime sport data and make predictions about game outcomes.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install dojozero
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Optional extras
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install dojozero[alicloud] # Alibaba Cloud integration (OSS, credentials, SLS)
|
|
15
|
+
pip install dojozero[redis] # Redis-backed data stores
|
|
16
|
+
pip install dojozero[ray] # Distributed execution via Ray
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Environment Setup
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
cp .env.example .env
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### Run a single trial locally
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
dojo0 run --params trial_params/nba-moneyline.yaml --trial-id nba-local-001
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Resume an interrupted trial
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
dojo0 run --trial-id nba-local-001 --resume-latest
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Run through dashboard server
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Start server with tracing
|
|
43
|
+
dojo0 serve --trace-backend jaeger
|
|
44
|
+
|
|
45
|
+
# Submit a trial from another terminal
|
|
46
|
+
dojo0 run \
|
|
47
|
+
--params trial_params/nba-moneyline.yaml \
|
|
48
|
+
--trial-id nba-server-001 \
|
|
49
|
+
--server http://localhost:8000
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Automatic scheduling with trial sources
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
dojo0 serve --trace-backend jaeger --trial-source "trial_sources/daily/*.yaml"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Backtest from captured events
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
dojo0 backtest \
|
|
62
|
+
--events outputs/2026-01-12/401772976.jsonl \
|
|
63
|
+
--params outputs/2026-01-12/401772976.yaml \
|
|
64
|
+
--speed 100 --max-sleep 1
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Arena (live visualization)
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
dojo0 arena --trace-backend jaeger
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Command Index
|
|
74
|
+
|
|
75
|
+
| Command | Purpose |
|
|
76
|
+
|---------|---------|
|
|
77
|
+
| `dojo0 run` | Start a local or server-submitted trial |
|
|
78
|
+
| `dojo0 serve` | Dashboard / orchestration server |
|
|
79
|
+
| `dojo0 arena` | Trace-backed Arena visualization server |
|
|
80
|
+
| `dojo0 backtest` | Replay persisted event streams |
|
|
81
|
+
| `dojo0 list-sources` | List trial sources |
|
|
82
|
+
| `dojo0 list-trials` | List scheduled trials |
|
|
83
|
+
| `dojo0 clear-schedules` | Clear scheduled runs |
|
|
84
|
+
|
|
85
|
+
## Documentation
|
|
86
|
+
|
|
87
|
+
- [Documentation](https://github.com/agentscope-ai/DojoZero/docs/README.md)
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "dojozero"
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "A platform for running AI agents on realtime sport data and make predictions about game outcomes."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = {text = "MIT"}
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "DojoZero Team", email = "dojozero@list.alibaba-inc.com"}
|
|
14
|
+
]
|
|
15
|
+
keywords = ["ai-agents", "sports", "realtime", "prediction", "trading"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"License :: OSI Approved :: MIT License",
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
24
|
+
]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"PyYAML>=6.0",
|
|
27
|
+
"pydantic>=2.12.4",
|
|
28
|
+
"aiohttp>=3.9.0",
|
|
29
|
+
"agentscope[gemini]>=1.0.14",
|
|
30
|
+
"py-clob-client>=0.1.0",
|
|
31
|
+
"fastapi>=0.128.0",
|
|
32
|
+
"uvicorn>=0.40.0",
|
|
33
|
+
"httpx>=0.28.0",
|
|
34
|
+
"opentelemetry-api>=1.29.0",
|
|
35
|
+
"opentelemetry-sdk>=1.29.0",
|
|
36
|
+
"opentelemetry-exporter-otlp-proto-http>=1.29.0",
|
|
37
|
+
"matplotlib>=3.10.8",
|
|
38
|
+
"python-dotenv>=1.2.1",
|
|
39
|
+
"tavily-python>=0.7.12",
|
|
40
|
+
"dashscope>=1.0.0",
|
|
41
|
+
"xdk>=0.9.0",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[project.urls]
|
|
45
|
+
Homepage = "https://github.com/agentscope-ai/DojoZero"
|
|
46
|
+
Repository = "https://github.com/agentscope-ai/DojoZero"
|
|
47
|
+
Issues = "https://github.com/agentscope-ai/DojoZero/issues"
|
|
48
|
+
|
|
49
|
+
[project.scripts]
|
|
50
|
+
dojo0 = "dojozero.cli:main"
|
|
51
|
+
|
|
52
|
+
[project.optional-dependencies]
|
|
53
|
+
ray = [
|
|
54
|
+
"ray>=2.51.1",
|
|
55
|
+
]
|
|
56
|
+
alicloud = [
|
|
57
|
+
"oss2>=2.18.0",
|
|
58
|
+
"alibabacloud-credentials>=1.0.0",
|
|
59
|
+
"aliyun-log-python-sdk",
|
|
60
|
+
]
|
|
61
|
+
redis = [
|
|
62
|
+
"redis>=7.2.1",
|
|
63
|
+
]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""
|
|
2
|
+
DojoZero package.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import importlib.metadata
|
|
6
|
+
from typing import Final
|
|
7
|
+
|
|
8
|
+
try:
|
|
9
|
+
_version = importlib.metadata.version(__name__)
|
|
10
|
+
except importlib.metadata.PackageNotFoundError:
|
|
11
|
+
_version = "0.0.0" # Fallback for development mode
|
|
12
|
+
__version__: Final[str] = _version
|
|
13
|
+
__author__ = "DojoZero Team"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Runtime checks for optional Alibaba Cloud-related wheels.
|
|
2
|
+
|
|
3
|
+
Base install (`pip install dojozero`) omits OSS/SLS/credentials SDKs.
|
|
4
|
+
Use `pip install 'dojozero[alicloud]'` for those features.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
INSTALL_ALICLOUD = "pip install 'dojozero[alicloud]'"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def ensure_alibabacloud_credentials() -> None:
|
|
13
|
+
"""Raise ImportError if alibabacloud-credentials is not installed."""
|
|
14
|
+
try:
|
|
15
|
+
from alibabacloud_credentials.client import Client # noqa: F401
|
|
16
|
+
except ImportError as e:
|
|
17
|
+
raise ImportError(
|
|
18
|
+
f"Missing alibabacloud-credentials (needed for SLS trace export). "
|
|
19
|
+
f"Install with: {INSTALL_ALICLOUD}"
|
|
20
|
+
) from e
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def ensure_oss2() -> None:
|
|
24
|
+
"""Raise ImportError if oss2 is not installed."""
|
|
25
|
+
try:
|
|
26
|
+
import oss2 # noqa: F401
|
|
27
|
+
except ImportError as e:
|
|
28
|
+
raise ImportError(
|
|
29
|
+
f"Missing oss2 (needed for OSS backup and oss:// paths). "
|
|
30
|
+
f"Install with: {INSTALL_ALICLOUD}"
|
|
31
|
+
) from e
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
INSTALL_REDIS = "pip install 'dojozero[redis]'"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def ensure_redis() -> None:
|
|
38
|
+
"""Raise ImportError if redis is not installed."""
|
|
39
|
+
try:
|
|
40
|
+
import redis # noqa: F401
|
|
41
|
+
except ImportError as e:
|
|
42
|
+
raise ImportError(
|
|
43
|
+
f"Missing redis package (needed for sync-service). Install with: {INSTALL_REDIS}"
|
|
44
|
+
) from e
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""Agent configuration and utilities for DojoZero."""
|
|
2
|
+
|
|
3
|
+
from ._config import (
|
|
4
|
+
load_agent_config,
|
|
5
|
+
load_persona_config,
|
|
6
|
+
load_llm_file_config,
|
|
7
|
+
AgentConfig,
|
|
8
|
+
SingleModelAgentConfig,
|
|
9
|
+
LLMConfig,
|
|
10
|
+
PersonaConfig,
|
|
11
|
+
LLMFileConfig,
|
|
12
|
+
create_model,
|
|
13
|
+
create_formatter,
|
|
14
|
+
expand_agent_config,
|
|
15
|
+
filter_llm_configs_by_credentials,
|
|
16
|
+
llm_config_has_credentials,
|
|
17
|
+
)
|
|
18
|
+
from ._toolkit import create_toolkit, tool
|
|
19
|
+
from ._social_board import (
|
|
20
|
+
HotTopicsEvent,
|
|
21
|
+
SocialBoard,
|
|
22
|
+
SocialMessage,
|
|
23
|
+
create_social_board_tools,
|
|
24
|
+
format_hot_topics_for_llm,
|
|
25
|
+
SocialBoardActor,
|
|
26
|
+
SocialBoardConfig,
|
|
27
|
+
)
|
|
28
|
+
from ._trial_utils import (
|
|
29
|
+
get_expanded_agent_ids,
|
|
30
|
+
build_operator_to_agents_map,
|
|
31
|
+
build_agent_specs,
|
|
32
|
+
load_agent_configs_cached,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
__all__ = [
|
|
36
|
+
"load_agent_config",
|
|
37
|
+
"load_persona_config",
|
|
38
|
+
"load_llm_file_config",
|
|
39
|
+
"AgentConfig",
|
|
40
|
+
"SingleModelAgentConfig",
|
|
41
|
+
"LLMConfig",
|
|
42
|
+
"PersonaConfig",
|
|
43
|
+
"LLMFileConfig",
|
|
44
|
+
"create_toolkit",
|
|
45
|
+
"create_model",
|
|
46
|
+
"create_formatter",
|
|
47
|
+
"expand_agent_config",
|
|
48
|
+
"filter_llm_configs_by_credentials",
|
|
49
|
+
"llm_config_has_credentials",
|
|
50
|
+
"tool",
|
|
51
|
+
# Social board (multi-agent communication)
|
|
52
|
+
"HotTopicsEvent",
|
|
53
|
+
"SocialBoard",
|
|
54
|
+
"SocialMessage",
|
|
55
|
+
"create_social_board_tools",
|
|
56
|
+
"format_hot_topics_for_llm",
|
|
57
|
+
"SocialBoardActor",
|
|
58
|
+
"SocialBoardConfig",
|
|
59
|
+
# Trial utilities
|
|
60
|
+
"get_expanded_agent_ids",
|
|
61
|
+
"build_operator_to_agents_map",
|
|
62
|
+
"build_agent_specs",
|
|
63
|
+
"load_agent_configs_cached",
|
|
64
|
+
]
|