Repository: pykeen/pykeen
Issue: ImportError: cannot import name 'Hint' from 'class_resolver.api'
Root cause: External Dependency Breakage

### Describe the bug

Whenever importing PyKEEN (on both Python 3.7 and 3.9) I get the error

```
Traceback (most recent call last):
  File "/root/miniconda3/envs/sandbox/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/sandbox/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/__main__.py", line 10, in <module>
    from .cli import main
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/cli.py", line 27, in <module>
    from .evaluation import evaluator_resolver, get_metric_list
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/evaluation/__init__.py", line 10, in <module>
    from .classification_evaluator import ClassificationEvaluator, ClassificationMetricResults
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/evaluation/classification_evaluator.py", line 12, in <module>
    from .evaluator import Evaluator, MetricResults
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/evaluation/evaluator.py", line 20, in <module>
    from ..models import Model
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/models/__init__.py", line 17, in <module>
    from .unimodal import (
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/models/unimodal/__init__.py", line 100, in <module>
    from .rgcn import RGCN
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/models/unimodal/rgcn.py", line 13, in <module>
    from ...nn.message_passing import Decomposition, RGCNRepresentations
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/nn/message_passing.py", line 11, in <module>
    from class_resolver.api import Hint
ImportError: cannot import name 'Hint' from 'class_resolver.api' (/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/class_resolver/api.py)
```

This occurs both when training a model, and when running `ython -m pykeen version`

### How to reproduce

The error will occur whenever PyKEEN is invoked, as in:
`$ python -m pykeen version`

Or when it is imported, as in:
`$ python temp.py`

where temp.py contains
```
import pykeen
from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='CompGCN',
    dataset='fb15k',
)

print(pipeline_result)
```



### Environment

I am running in an Ubuntu-20.04 Docker container based on the image `nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04` for NVidia access. Within that container, am installing PyKEEN in a conda4.10.3 environment with Python 3.9 (though I observe the same error when using 3.7).

```
(sandbox) root@6016d65b8f94:/workspace/twig# python -m pykeen version
Traceback (most recent call last):
  File "/root/miniconda3/envs/sandbox/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/sandbox/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/__main__.py", line 10, in <module>
    from .cli import main
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/cli.py", line 27, in <module>
    from .evaluation import evaluator_resolver, get_metric_list
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/evaluation/__init__.py", line 10, in <module>
    from .classification_evaluator import ClassificationEvaluator, ClassificationMetricResults
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/evaluation/classification_evaluator.py", line 12, in <module>
    from .evaluator import Evaluator, MetricResults
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/evaluation/evaluator.py", line 20, in <module>
    from ..models import Model
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/models/__init__.py", line 17, in <module>
    from .unimodal import (
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/models/unimodal/__init__.py", line 100, in <module>
    from .rgcn import RGCN
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/models/unimodal/rgcn.py", line 13, in <module>
    from ...nn.message_passing import Decomposition, RGCNRepresentations
  File "/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/pykeen/nn/message_passing.py", line 11, in <module>
    from class_resolver.api import Hint
ImportError: cannot import name 'Hint' from 'class_resolver.api' (/root/miniconda3/envs/sandbox/lib/python3.9/site-packages/class_resolver/api.py)
```

### Additional information

I am almost certain this is an environment issue. I can get PyKEEN to run in Python 3.6.13, but that leads to other errors (some models / datasets not found). however, I see Python 3.6 is not supported by PyKEEN (nor by Python) anymore, so I'd rather use a more recent version in any case.


Sometimes happens with me as well - I just update the `class_resolver` package via pip:

```
pip install -U class_resolver
```

@Jeffrey-Sardina I notice you deleted the section of the issue that asked to report the information about your installation of PyKEEN. this would be obviously helpful to figure out if you're using an old version of PyKEEN that hasn't been updated to reflect the newest version of class resolver. Please add that ASAP then we can continue discussion

Ah right! Sorry yes; that is because `python -m pykeen version` itself would not run. I am on PyKEEN 1.7.0

> Sometimes happens with me as well - I just update the `class_resolver` package via pip:
> 
> ```
> pip install -U class_resolver
> ```

Oddly enough that is not working for me; it's saying I'm up to date. What version of the class_resolver do you have?
For reference; 
```
(twig) root@c104e2d56e2c:/workspace# pip install -U class_resolver
Requirement already satisfied: class_resolver in /root/miniconda3/envs/twig/lib/python3.9/site-packages (0.3.4)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
```

> > Sometimes happens with me as well - I just update the `class_resolver` package via pip:
> > ```
> > pip install -U class_resolver
> > ```
> 
> Oddly enough that is not working for me; it's saying I'm up to date. What version of the class_resolver do you have? For reference;
> 
> ```
> (twig) root@c104e2d56e2c:/workspace# pip install -U class_resolver
> Requirement already satisfied: class_resolver in /root/miniconda3/envs/twig/lib/python3.9/site-packages (0.3.4)
> WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
> ```

You should likely downgrade class-resolver to 0.3.3 to get PyKEEN 1.7.0 working

@Koenkalle is correct. We recently made some updates to the class-resolver to facilitate even more powerful functionality we'll be releasing in PyKEEN 1.8.0 hopefully this weekend! Sorry about the confusion

> > > Sometimes happens with me as well - I just update the `class_resolver` package via pip:
> > > ```
> > > pip install -U class_resolver
> > > ```
> > 
> > 
> > Oddly enough that is not working for me; it's saying I'm up to date. What version of the class_resolver do you have? For reference;
> > ```
> > (twig) root@c104e2d56e2c:/workspace# pip install -U class_resolver
> > Requirement already satisfied: class_resolver in /root/miniconda3/envs/twig/lib/python3.9/site-packages (0.3.4)
> > WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
> > ```
> 
> You should likely downgrade class-resolver to 0.3.3 to get PyKEEN 1.7.0 working

Aha! That worked perfectly. For ease of reference to anyone else encountering this, I ran:

```
$ pip uninstall class_resolver
$ pip install class_resolver==0.3.3
```

Thank you both very much!