pyrox-client 0.2.4__tar.gz → 0.2.5__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.
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/.gitignore +1 -0
- pyrox_client-0.2.5/LICENSE +21 -0
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/PKG-INFO +59 -4
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/README.md +54 -3
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/pyproject.toml +4 -6
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/src/pyrox/__init__.py +1 -1
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/src/pyrox/constants.py +0 -0
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/src/pyrox/core.py +0 -0
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/src/pyrox/errors.py +0 -0
- {pyrox_client-0.2.4 → pyrox_client-0.2.5}/src/pyrox/reporting.py +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Vlad Matei
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyrox-client
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: HYROX race data client – retrieve full race results via Python
|
|
5
5
|
Author: Vlad Matei
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
6
8
|
Requires-Python: >=3.12
|
|
7
9
|
Requires-Dist: fsspec>=2024.2.0
|
|
8
10
|
Requires-Dist: httpx>=0.28.1
|
|
@@ -11,6 +13,8 @@ Requires-Dist: pyarrow>=22.0.0
|
|
|
11
13
|
Provides-Extra: api
|
|
12
14
|
Requires-Dist: duckdb>=1.4.3; extra == 'api'
|
|
13
15
|
Requires-Dist: fastapi>=0.115.0; extra == 'api'
|
|
16
|
+
Requires-Dist: limits>=3.0; extra == 'api'
|
|
17
|
+
Requires-Dist: mcp>=1.2.0; extra == 'api'
|
|
14
18
|
Requires-Dist: numpy>=1.26.4; extra == 'api'
|
|
15
19
|
Requires-Dist: uvicorn[standard]>=0.30.0; extra == 'api'
|
|
16
20
|
Provides-Extra: reporting
|
|
@@ -40,7 +44,8 @@ or
|
|
|
40
44
|
pip install pyrox-client
|
|
41
45
|
```
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
DuckDB-backed reporting helpers are optional. The extra installs the DuckDB
|
|
48
|
+
Python library, but it does not bundle a database file:
|
|
44
49
|
|
|
45
50
|
```bash
|
|
46
51
|
pip install "pyrox-client[reporting]"
|
|
@@ -110,17 +115,63 @@ except RaceNotFound as exc:
|
|
|
110
115
|
|
|
111
116
|
## Reporting Helpers
|
|
112
117
|
|
|
113
|
-
The base install keeps the public client lightweight.
|
|
114
|
-
|
|
118
|
+
The base install keeps the public client lightweight. `ReportingClient` requires
|
|
119
|
+
`pyrox-client[reporting]` and a local DuckDB database path; the package does not
|
|
120
|
+
ship the generated database artifact.
|
|
115
121
|
|
|
116
122
|
```python
|
|
117
123
|
from pyrox.reporting import ReportingClient
|
|
124
|
+
|
|
125
|
+
reporting = ReportingClient(database="/path/to/pyrox_duckdb")
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## MCP Server
|
|
129
|
+
|
|
130
|
+
The hosted reporting service exposes a read-only MCP server over streamable HTTP at
|
|
131
|
+
`https://pyrox-api.fly.dev/mcp/`. It lets Claude answer natural-language questions
|
|
132
|
+
against the HYROX dataset through a small set of intent-shaped tools:
|
|
133
|
+
`list_filters`, `find_athlete`, `get_distribution`, `get_rankings`,
|
|
134
|
+
`get_race_report`, `get_deepdive`, and `get_athlete_profile`.
|
|
135
|
+
|
|
136
|
+
Add it to Claude Code with the `claude mcp add` command:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
claude mcp add --transport http pyrox https://pyrox-api.fly.dev/mcp/
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Then verify the connection:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
claude mcp list
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
By default this registers the server at the local (project) scope. Use
|
|
149
|
+
`--scope user` to make it available across all your projects:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
claude mcp add --transport http --scope user pyrox https://pyrox-api.fly.dev/mcp/
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
To remove it:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
claude mcp remove pyrox
|
|
118
159
|
```
|
|
119
160
|
|
|
161
|
+
### Claude web and Desktop
|
|
162
|
+
|
|
163
|
+
Pyrox also works as a custom connector in the Claude web app and Claude Desktop
|
|
164
|
+
(paid plans). Go to **Settings -> Connectors -> Add custom connector**, set the
|
|
165
|
+
name to `Pyrox` and the URL to `https://pyrox-api.fly.dev/mcp/`, and click
|
|
166
|
+
**Add**. The server is open and read-only, so it connects without a sign-in step.
|
|
167
|
+
|
|
168
|
+
For example prompts, tool semantics, and caveats, see `docs/mcp.md`.
|
|
169
|
+
|
|
120
170
|
## Documentation
|
|
121
171
|
|
|
122
172
|
- Live docs: https://vmatei2.github.io/pyrox-client/
|
|
123
173
|
- Client API: `docs/api.md`
|
|
174
|
+
- MCP guide: `docs/mcp.md`
|
|
124
175
|
- Error model: `docs/errors.md`
|
|
125
176
|
- Filters and usage notes: `docs/filters.md`
|
|
126
177
|
|
|
@@ -146,6 +197,10 @@ Maintainer-only operational docs:
|
|
|
146
197
|
- `docs/maintainers/release.md`
|
|
147
198
|
- `docs/maintainers/reporting-service.md`
|
|
148
199
|
|
|
200
|
+
## License
|
|
201
|
+
|
|
202
|
+
Released under the [MIT License](LICENSE) — free to use, modify, and distribute. Copyright (c) 2026 Vlad Matei.
|
|
203
|
+
|
|
149
204
|
## Disclaimer
|
|
150
205
|
|
|
151
206
|
Pyrox is an independent project and is not affiliated with, endorsed, or sponsored by HYROX.
|
|
@@ -20,7 +20,8 @@ or
|
|
|
20
20
|
pip install pyrox-client
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
DuckDB-backed reporting helpers are optional. The extra installs the DuckDB
|
|
24
|
+
Python library, but it does not bundle a database file:
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
27
|
pip install "pyrox-client[reporting]"
|
|
@@ -90,17 +91,63 @@ except RaceNotFound as exc:
|
|
|
90
91
|
|
|
91
92
|
## Reporting Helpers
|
|
92
93
|
|
|
93
|
-
The base install keeps the public client lightweight.
|
|
94
|
-
|
|
94
|
+
The base install keeps the public client lightweight. `ReportingClient` requires
|
|
95
|
+
`pyrox-client[reporting]` and a local DuckDB database path; the package does not
|
|
96
|
+
ship the generated database artifact.
|
|
95
97
|
|
|
96
98
|
```python
|
|
97
99
|
from pyrox.reporting import ReportingClient
|
|
100
|
+
|
|
101
|
+
reporting = ReportingClient(database="/path/to/pyrox_duckdb")
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## MCP Server
|
|
105
|
+
|
|
106
|
+
The hosted reporting service exposes a read-only MCP server over streamable HTTP at
|
|
107
|
+
`https://pyrox-api.fly.dev/mcp/`. It lets Claude answer natural-language questions
|
|
108
|
+
against the HYROX dataset through a small set of intent-shaped tools:
|
|
109
|
+
`list_filters`, `find_athlete`, `get_distribution`, `get_rankings`,
|
|
110
|
+
`get_race_report`, `get_deepdive`, and `get_athlete_profile`.
|
|
111
|
+
|
|
112
|
+
Add it to Claude Code with the `claude mcp add` command:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
claude mcp add --transport http pyrox https://pyrox-api.fly.dev/mcp/
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Then verify the connection:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
claude mcp list
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
By default this registers the server at the local (project) scope. Use
|
|
125
|
+
`--scope user` to make it available across all your projects:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
claude mcp add --transport http --scope user pyrox https://pyrox-api.fly.dev/mcp/
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
To remove it:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
claude mcp remove pyrox
|
|
98
135
|
```
|
|
99
136
|
|
|
137
|
+
### Claude web and Desktop
|
|
138
|
+
|
|
139
|
+
Pyrox also works as a custom connector in the Claude web app and Claude Desktop
|
|
140
|
+
(paid plans). Go to **Settings -> Connectors -> Add custom connector**, set the
|
|
141
|
+
name to `Pyrox` and the URL to `https://pyrox-api.fly.dev/mcp/`, and click
|
|
142
|
+
**Add**. The server is open and read-only, so it connects without a sign-in step.
|
|
143
|
+
|
|
144
|
+
For example prompts, tool semantics, and caveats, see `docs/mcp.md`.
|
|
145
|
+
|
|
100
146
|
## Documentation
|
|
101
147
|
|
|
102
148
|
- Live docs: https://vmatei2.github.io/pyrox-client/
|
|
103
149
|
- Client API: `docs/api.md`
|
|
150
|
+
- MCP guide: `docs/mcp.md`
|
|
104
151
|
- Error model: `docs/errors.md`
|
|
105
152
|
- Filters and usage notes: `docs/filters.md`
|
|
106
153
|
|
|
@@ -126,6 +173,10 @@ Maintainer-only operational docs:
|
|
|
126
173
|
- `docs/maintainers/release.md`
|
|
127
174
|
- `docs/maintainers/reporting-service.md`
|
|
128
175
|
|
|
176
|
+
## License
|
|
177
|
+
|
|
178
|
+
Released under the [MIT License](LICENSE) — free to use, modify, and distribute. Copyright (c) 2026 Vlad Matei.
|
|
179
|
+
|
|
129
180
|
## Disclaimer
|
|
130
181
|
|
|
131
182
|
Pyrox is an independent project and is not affiliated with, endorsed, or sponsored by HYROX.
|
|
@@ -8,6 +8,8 @@ dynamic = ["version"]
|
|
|
8
8
|
description = "HYROX race data client – retrieve full race results via Python"
|
|
9
9
|
authors = [{ name = "Vlad Matei" }]
|
|
10
10
|
readme = {file="README.md", content-type = "text/markdown" }
|
|
11
|
+
license = "MIT"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
11
13
|
requires-python = ">=3.12"
|
|
12
14
|
dependencies = [
|
|
13
15
|
"pandas>=2.3.3",
|
|
@@ -26,16 +28,12 @@ reporting = [
|
|
|
26
28
|
api = [
|
|
27
29
|
"duckdb>=1.4.3",
|
|
28
30
|
"fastapi>=0.115.0",
|
|
31
|
+
"limits>=3.0",
|
|
32
|
+
"mcp>=1.2.0",
|
|
29
33
|
"numpy>=1.26.4",
|
|
30
34
|
"uvicorn[standard]>=0.30.0",
|
|
31
35
|
]
|
|
32
36
|
|
|
33
|
-
# classifiers = [
|
|
34
|
-
# "Programming Language :: Python :: 3.12",
|
|
35
|
-
# "License :: OSI Approved :: MIT License",
|
|
36
|
-
# "Operating System :: OS Independent",
|
|
37
|
-
# ]
|
|
38
|
-
|
|
39
37
|
# urls."Homepage" = "https://github.com/vmatei2/pyrox-client"
|
|
40
38
|
# urls."Issues" = "https://github.com/vmatei2/pyrox-client/issues"
|
|
41
39
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|