Skip to content

Commit

Permalink
🔓📊 Relax type hint of RankBasedEvaluator's metrics/metrics_kwargs par…
Browse files Browse the repository at this point in the history
…ameter pair to match `make_many` (#1383)

This is a small PR to relax the type hint the `metric`/`metric_kwargs`
parameter-pair of `RankBasedEvaluator.__init__` to the one of
`ClassResolver.make_many`.

In particular this indicates that you can also pass a single hint such
as
```python
evaluator = RankBasedEvaluator(
  metrics="hits_at_k",
  metric_kwargs=dict(k=50),
)
```

or use "broadcasting" such as
```python
evaluator = RankBasedEvaluator(
  metrics="hits_at_k",
  metric_kwargs=[dict(k=k) for k in (32, 64, 128)],
)
```
  • Loading branch information
mberr committed Mar 29, 2024
1 parent 434cc59 commit 9b9b59f
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/pykeen/evaluation/rank_based_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import numpy.random
import pandas as pd
import torch
from class_resolver import HintOrType, OptionalKwargs
from class_resolver import OneOrManyHintOrType, OneOrManyOptionalKwargs

from .evaluator import Evaluator, MetricResults, prepare_filter_triples
from .ranks import Ranks
Expand Down Expand Up @@ -301,8 +301,8 @@ class RankBasedEvaluator(Evaluator[RankBasedMetricKey]):
def __init__(
self,
filtered: bool = True,
metrics: Optional[Sequence[HintOrType[RankBasedMetric]]] = None,
metrics_kwargs: OptionalKwargs = None,
metrics: OneOrManyHintOrType = None,
metrics_kwargs: OneOrManyOptionalKwargs = None,
add_defaults: bool = True,
clear_on_finalize: bool = True,
**kwargs,
Expand Down

0 comments on commit 9b9b59f

Please sign in to comment.