Repository: pykeen/pykeen
Issue: Removal of deprecated method `pystow.Module.submodule()` causing issues
Root cause: External Dependency Breakage

### Describe the bug

I just saw this morning- I am not sure If I am the only one because it was all working yesterday:
```python
from pykeen.pipeline import pipeline
```
```python-traceback
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
File <command-47216163437368>:1
----> 1 import pandas as pd
      2 import numpy as np
      3 import os

File /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py:171, in _create_import_patch.<locals>.import_patch(name, globals, locals, fromlist, level)
    166 thread_local._nest_level += 1
    168 try:
    169     # Import the desired module. If you’re seeing this while debugging a failed import,
    170     # look at preceding stack frames for relevant error information.
--> 171     original_result = python_builtin_import(name, globals, locals, fromlist, level)
    173     is_root_import = thread_local._nest_level == 1
    174     # `level` represents the number of leading dots in a relative import statement.
    175     # If it's zero, then this is an absolute import.

File /local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/pykeen/pipeline/__init__.py:5
      1 # -*- coding: utf-8 -*-
      3 """The PyKEEN pipeline and related wrapper functions."""
----> 5 from .api import (
      6     PipelineResult,
      7     pipeline,
      8     pipeline_from_config,
      9     pipeline_from_path,
     10     replicate_pipeline_from_config,
     11     replicate_pipeline_from_path,
     12 )
     13 from .plot_utils import plot, plot_early_stopping, plot_er, plot_losses
     15 __all__ = [
     16     "PipelineResult",
     17     "pipeline_from_path",
   (...)
     25     "plot",
     26 ]

File /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py:171, in _create_import_patch.<locals>.import_patch(name, globals, locals, fromlist, level)
    166 thread_local._nest_level += 1
    168 try:
    169     # Import the desired module. If you’re seeing this while debugging a failed import,
    170     # look at preceding stack frames for relevant error information.
--> 171     original_result = python_builtin_import(name, globals, locals, fromlist, level)
    173     is_root_import = thread_local._nest_level == 1
    174     # `level` represents the number of leading dots in a relative import statement.
    175     # If it's zero, then this is an absolute import.

File /local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/pykeen/pipeline/api.py:217
    214 from class_resolver.utils import OneOrManyHintOrType, OneOrManyOptionalKwargs
    215 from torch.optim.optimizer import Optimizer
--> 217 from ..constants import PYKEEN_CHECKPOINTS, USER_DEFINED_CODE
    218 from ..datasets import get_dataset
    219 from ..datasets.base import Dataset

File /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py:171, in _create_import_patch.<locals>.import_patch(name, globals, locals, fromlist, level)
    166 thread_local._nest_level += 1
    168 try:
    169     # Import the desired module. If you’re seeing this while debugging a failed import,
    170     # look at preceding stack frames for relevant error information.
--> 171     original_result = python_builtin_import(name, globals, locals, fromlist, level)
    173     is_root_import = thread_local._nest_level == 1
    174     # `level` represents the number of leading dots in a relative import statement.
    175     # If it's zero, then this is an absolute import.

File /local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/pykeen/constants.py:41
     39 #: A subdirectory of the PyKEEN data folder for datasets, defaults to ``~/.data/pykeen/datasets``
     40 PYKEEN_DATASETS: Path = PYKEEN_MODULE.join("datasets")
---> 41 PYKEEN_DATASETS_MODULE: pystow.Module = PYKEEN_MODULE.submodule("datasets")
     42 #: A subdirectory of the PyKEEN data folder for benchmarks, defaults to ``~/.data/pykeen/benchmarks``
     43 PYKEEN_BENCHMARKS: Path = PYKEEN_MODULE.join("benchmarks")

AttributeError: 'Module' object has no attribute 'submodule'
```

When I install pandas, numpy, os, and ast separately, then I get this:

```python-traceback
Unexpected exception formatting exception. Falling back to standard exception
Traceback (most recent call last):
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3378, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<command-47216163437368>", line 5, in <module>
    from pykeen.pipeline import pipeline
  File "/databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py", line 171, in import_patch
    original_result = python_builtin_import(name, globals, locals, fromlist, level)
  File "/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/pykeen/pipeline/__init__.py", line 5, in <module>
    from .api import (
  File "/databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py", line 171, in import_patch
    original_result = python_builtin_import(name, globals, locals, fromlist, level)
  File "/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/pykeen/pipeline/api.py", line 217, in <module>
    from ..constants import PYKEEN_CHECKPOINTS, USER_DEFINED_CODE
  File "/databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py", line 171, in import_patch
    original_result = python_builtin_import(name, globals, locals, fromlist, level)
  File "/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/pykeen/constants.py", line 41, in <module>
    PYKEEN_DATASETS_MODULE: pystow.Module = PYKEEN_MODULE.submodule("datasets")
AttributeError: 'Module' object has no attribute 'submodule'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 1997, in showtraceback
    stb = self.InteractiveTB.structured_traceback(
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/ultratb.py", line 1112, in structured_traceback
    return FormattedTB.structured_traceback(
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/ultratb.py", line 1006, in structured_traceback
    return VerboseTB.structured_traceback(
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/ultratb.py", line 859, in structured_traceback
    formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/ultratb.py", line 812, in format_exception_as_a_whole
    frames.append(self.format_record(r))
  File "/databricks/python/lib/python3.9/site-packages/IPython/core/ultratb.py", line 730, in format_record
    result += ''.join(_format_traceback_lines(frame_info.lines, Colors, self.has_colors, lvals))
  File "/databricks/python/lib/python3.9/site-packages/stack_data/utils.py", line 145, in cached_property_wrapper
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/databricks/python/lib/python3.9/site-packages/stack_data/core.py", line 698, in lines
    pieces = self.included_pieces
  File "/databricks/python/lib/python3.9/site-packages/stack_data/utils.py", line 145, in cached_property_wrapper
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/databricks/python/lib/python3.9/site-packages/stack_data/core.py", line 649, in included_pieces
    pos = scope_pieces.index(self.executing_piece)
  File "/databricks/python/lib/python3.9/site-packages/stack_data/utils.py", line 145, in cached_property_wrapper
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/databricks/python/lib/python3.9/site-packages/stack_data/core.py", line 628, in executing_piece
    return only(
  File "/databricks/python/lib/python3.9/site-packages/executing/executing.py", line 164, in only
    raise NotOneValueFound('Expected one value, found 0')
executing.executing.NotOneValueFound: Expected one value, found 0
AttributeError: 'Module' object has no attribute 'submodule'
```


### How to reproduce

```python
from pykeen.pipeline import pipeline
```

### Environment

Python: 3.9
Pykeen: 1.10.0

I am running this on databricks

### Additional information

_No response_

### Issue Template Checks

- [X] This is not a feature request (use a different issue template if it is)
- [X] This is not a question (use the [discussions](https://github.com/pykeen/pykeen/discussions/new) forum instead)
- [X] I've read the text explaining why including environment information is important and understand if I omit this information that my issue will be dismissed

This is related to a change to `pystow` with version v0.5, and `pykeen` relying on a deprecated function therein until recently, cf. https://github.com/pykeen/pykeen/pull/1233

You can either

- manually update `pystow` via `pip install -U pystow`, or
- upgrade `pykeen` from `master` branch via `pip install git+https://github.com/pykeen/pykeen.git`, or
- wait until we make a bugfix release (this should happen soon), and then update `pykeen` via `pypi`

PyKEEN v1.10.1 has the updated pystow requirements made explicit - should solve this. Please `pip install --upgrade pykeen`