Skip to content

NumerAPI 2.24.0 - Payout score refactor, Crypto/Signals API fixes - #132

Merged
ndharasz merged 10 commits into
masterfrom
preview
Aug 5, 2026
Merged

NumerAPI 2.24.0 - Payout score refactor, Crypto/Signals API fixes#132
ndharasz merged 10 commits into
masterfrom
preview

Conversation

@ndharasz

@ndharasz ndharasz commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator
  • Migrate round payout score configuration
  • Add public_user_profile to Crypto API (resolve model_id by name)
  • Fix SignalsAPI.stake_get (KeyError on removed totalStake field)
  • Add parquet filtering support to dataset downloading

Before merging, ensure chaneglog is updated and announcement is crafted.

numerai-hosted-agent-bot Bot and others added 4 commits August 4, 2026 11:37
- migrate `list_rounds` from deprecated GraphQL round multiplier fields to the full public `roundScoreConfigs` surface for Classic, Signals, and Crypto
- preserve the six established Corr/MMC return keys through numerapi 2.x as exact-name compatibility projections, without mapping Alpha/FNC to Corr or MPC to MMC
- document old/new response shapes, the numerapi 2.24.0 migration, planned 3.0.0 removal, and the isolated deprecated `round_model_performances_v2` endpoint
- keep Ruff CI stable across unpinned Ruff releases by recording the repository's historical lint selection
The `v3UserProfile` GraphQL field accepts a `tournament` argument that
disambiguates a model name within a tournament. The old Classic/Signals
implementations ignored it — meaning a name shared across tournaments could
resolve to the **wrong** model's id (verified: `quixotic15` returns a
different id with vs. without `tournament=12`).

This unifies all three tournaments into a single
`base_api.Api.public_user_profile` that passes `tournament=self.tournament_id`:

- ✅ `CryptoAPI` gains `public_user_profile` (tournament 12) — the missing piece
- ✅ Signals / Classic now resolve names within their own tournament (11 / 8)
- ✅ duplicated overrides in `numerapi.py` and `signalsapi.py` removed (DRY)

Return shape is unchanged (`id`, `username`, `startDate`, `bio`, `nmrStaked`).
Query the current stake field, `stakeValue` (type `Nmr`), directly within the
signals tournament and parse it to `Decimal`, returning `None` for models with
no stake (instead of raising):

```python
query = '''
  query($model_name: String!, $tournament: Int) {
    v3UserProfile(model_name: $model_name, tournament: $tournament) {
      stakeValue
    }
  }
'''
```

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c546404b4b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread numerapi/base_api.py
@ndharasz
ndharasz merged commit 4272a43 into master Aug 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants