Repository: jupyterhub/oauthenticator

Issue:
Adding a groups crashes JupyterHub on startup
<!-- Thank you for contributing. These HTML comments will not render in the issue, but you can delete them once you've read them if you prefer! -->

### Bug description

When I create a group with `c.JupyterHub.load_groups `, I get an ` TypeError: 'NoneType' object is not subscriptable` on line 213 in `oauthenticator/google.py` before JupyterHub starts up.

#### Expected behaviour

JupyterHub starts up.

#### Actual behaviour

I get the following traceback:
```jupyterhub-jupyter-1  | [E 2023-08-12 10:10:41.761 JupyterHub app:3382]
jupyterhub-jupyter-1  |     Traceback (most recent call last):
jupyterhub-jupyter-1  |       File "/opt/conda/envs/rapids/lib/python3.10/site-packages/jupyterhub/app.py", line 3379, in launch_instance_async
jupyterhub-jupyter-1  |         await self.initialize(argv)
jupyterhub-jupyter-1  |       File "/opt/conda/envs/rapids/lib/python3.10/site-packages/jupyterhub/app.py", line 2910, in initialize
jupyterhub-jupyter-1  |         await self.init_role_assignment()
jupyterhub-jupyter-1  |       File "/opt/conda/envs/rapids/lib/python3.10/site-packages/jupyterhub/app.py", line 2202, in init_role_assignment
jupyterhub-jupyter-1  |         await maybe_future(
jupyterhub-jupyter-1  |       File "/opt/conda/envs/rapids/lib/python3.10/site-packages/oauthenticator/google.py", line 213, in check_allowed
jupyterhub-jupyter-1  |         user_info = auth_model["auth_state"][self.user_auth_state_key]
jupyterhub-jupyter-1  |     TypeError: 'NoneType' object is not subscriptable
jupyterhub-jupyter-1 exited with code 0
```

### How to reproduce

<!-- Use this section to describe the steps that a user would take to experience this bug. -->

In JupyterHub config.

```py
from oauthenticator.google import LocalGoogleOAuthenticator
c = get_config()  # noqa

# OAUTH CONFIG
c.LocalGoogleOAuthenticator.client_id = 'REDACTED'
c.LocalGoogleOAuthenticator.client_secret = 'REDACTED'
c.LocalGoogleOAuthenticator.oauth_callback_url = 'https://REDACTED/hub/oauth_callback'
c.LocalGoogleOAuthenticator.allowed_users = {'a@mail.huji.ac.il', 'b@mail.huji.ac.il', 'c@mail.huji.ac.il', 'gdrive_share_host'}
c.LocalGoogleOAuthenticator.admin_users = {'a@mail.huji.ac.il', }
c.LocalGoogleOAuthenticator.username_map = {n: n.replace(
    '@', '_').replace('.', '_') for n in c.LocalGoogleOAuthenticator.allowed_users}
# c.LocalGoogleOAuthenticator.create_system_users = True # broken, in start-jupyter
c.JupyterHub.authenticator_class = LocalGoogleOAuthenticator
```
Now that works. If I then add,
```py
c.JupyterHub.load_groups = {
    'access_gdrive_share_host': {
        'users': list(filter(lambda x: any([name in x for name in ('a@', 'b@')]), c.LocalGoogleOAuthenticator.allowed_users))
    }
}
```
Then I get a crash.
### Your personal set up

<!--
Tell us a little about the system you're using.
Please include information about how you installed,
e.g. are you using a distribution such as zero-to-jupyterhub or the-littlest-jupyterhub.
 -->

 - OS: Windows 11 22H2
   - **WSL2:**
WSL version: 1.2.5.0
Kernel version: 5.15.90.1
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.2134
   - **Docker Desktop:**
Client:
 Cloud integration: v1.0.35
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:53:15 2023
 OS/Arch:           windows/amd64
 Context:           default
Server: Docker Desktop 4.21.1 (114176)
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:52:17 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
 - Version(s):
 <!-- e.g. jupyterhub --version, python --version --->
```
$ jupyterhub --version
4.0.2
$ python --version
Python 3.10.11
```
<details><summary>Full environment</summary>
<!-- For reproduction, it's useful to have the full environment. For example, the output of `pip freeze` or `conda list` --->

From docker image `nvcr.io/nvidia/rapidsai/rapidsai-core:23.06-cuda11.5-runtime-ubuntu20.04-py3.10`

```

jupyterhub-jupyter-1  | + pip freeze
jupyterhub-jupyter-1  | aiofiles @ file:///home/conda/feedstock_root/build_artifacts/aiofiles_1664378549280/work
jupyterhub-jupyter-1  | aiohttp @ file:///home/conda/feedstock_root/build_artifacts/aiohttp_1689804989077/work
jupyterhub-jupyter-1  | aiosignal @ file:///home/conda/feedstock_root/build_artifacts/aiosignal_1667935791922/work
jupyterhub-jupyter-1  | aiosqlite @ file:///home/conda/feedstock_root/build_artifacts/aiosqlite_1682491975081/work
jupyterhub-jupyter-1  | alembic @ file:///home/conda/feedstock_root/build_artifacts/alembic_1691161159597/work
jupyterhub-jupyter-1  | altair==5.0.1
jupyterhub-jupyter-1  | anyio @ file:///home/conda/feedstock_root/build_artifacts/anyio_1688651106312/work/dist
jupyterhub-jupyter-1  | appdirs @ file:///home/conda/feedstock_root/build_artifacts/appdirs_1603108395799/work
jupyterhub-jupyter-1  | argon2-cffi @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi_1640817743617/work
jupyterhub-jupyter-1  | argon2-cffi-bindings @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi-bindings_1666850768662/work
jupyterhub-jupyter-1  | arrow @ file:///home/conda/feedstock_root/build_artifacts/arrow_1662382474514/work
jupyterhub-jupyter-1  | astroid @ file:///home/conda/feedstock_root/build_artifacts/astroid_1688921184010/work
jupyterhub-jupyter-1  | asttokens @ file:///home/conda/feedstock_root/build_artifacts/asttokens_1670263926556/work
jupyterhub-jupyter-1  | async-generator==1.10
jupyterhub-jupyter-1  | async-lru==2.0.4
jupyterhub-jupyter-1  | async-timeout @ file:///home/conda/feedstock_root/build_artifacts/async-timeout_1691763562544/work
jupyterhub-jupyter-1  | attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1683424013410/work
jupyterhub-jupyter-1  | autopep8 @ file:///home/conda/feedstock_root/build_artifacts/autopep8_1677845287175/work
jupyterhub-jupyter-1  | Babel @ file:///home/conda/feedstock_root/build_artifacts/babel_1677767029043/work
jupyterhub-jupyter-1  | backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
jupyterhub-jupyter-1  | backports.functools-lru-cache @ file:///home/conda/feedstock_root/build_artifacts/backports.functools_lru_cache_1687772187254/work
jupyterhub-jupyter-1  | beautifulsoup4 @ file:///home/conda/feedstock_root/build_artifacts/beautifulsoup4_1680888073205/work
jupyterhub-jupyter-1  | black @ file:///home/conda/feedstock_root/build_artifacts/black-recipe_1689092701771/work
jupyterhub-jupyter-1  | bleach @ file:///home/conda/feedstock_root/build_artifacts/bleach_1674535352125/work
jupyterhub-jupyter-1  | blinker @ file:///home/conda/feedstock_root/build_artifacts/blinker_1681349778161/work
jupyterhub-jupyter-1  | bokeh @ file:///home/conda/feedstock_root/build_artifacts/bokeh_1660586590972/work
jupyterhub-jupyter-1  | branca @ file:///home/conda/feedstock_root/build_artifacts/branca_1667848736831/work
jupyterhub-jupyter-1  | brotlipy @ file:///home/conda/feedstock_root/build_artifacts/brotlipy_1666764671472/work
jupyterhub-jupyter-1  | cached-property @ file:///home/conda/feedstock_root/build_artifacts/cached_property_1615209429212/work
jupyterhub-jupyter-1  | cachetools @ file:///home/conda/feedstock_root/build_artifacts/cachetools_1688227447901/work
jupyterhub-jupyter-1  | certifi==2023.7.22
jupyterhub-jupyter-1  | certipy==0.1.3
jupyterhub-jupyter-1  | cffi @ file:///home/conda/feedstock_root/build_artifacts/cffi_1671179353105/work
jupyterhub-jupyter-1  | charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1688813409104/work
jupyterhub-jupyter-1  | click @ file:///home/conda/feedstock_root/build_artifacts/click_1689751945043/work
jupyterhub-jupyter-1  | click-plugins==1.1.1
jupyterhub-jupyter-1  | cligj @ file:///home/conda/feedstock_root/build_artifacts/cligj_1633637764473/work
jupyterhub-jupyter-1  | cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1674202310934/work
jupyterhub-jupyter-1  | colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1666700638685/work
jupyterhub-jupyter-1  | colorcet @ file:///home/conda/feedstock_root/build_artifacts/colorcet_1664843244467/work
jupyterhub-jupyter-1  | comm @ file:///home/conda/feedstock_root/build_artifacts/comm_1691044910542/work
jupyterhub-jupyter-1  | confluent-kafka @ file:///home/conda/feedstock_root/build_artifacts/python-confluent-kafka_1666954605864/work
jupyterhub-jupyter-1  | contourpy @ file:///home/conda/feedstock_root/build_artifacts/contourpy_1686733820580/work
jupyterhub-jupyter-1  | cryptography @ file:///home/conda/feedstock_root/build_artifacts/cryptography-split_1691444160254/work
jupyterhub-jupyter-1  | cubinlinker @ file:///home/conda/feedstock_root/build_artifacts/cubinlinker_1684752888972/work
jupyterhub-jupyter-1  | cucim==23.6.0
jupyterhub-jupyter-1  | cuda-python @ file:///home/conda/feedstock_root/build_artifacts/cuda-python_1685738138375/work
jupyterhub-jupyter-1  | cudf==23.6.1
jupyterhub-jupyter-1  | cudf-kafka==23.6.1
jupyterhub-jupyter-1  | cugraph @ file:///opt/conda/conda-bld/work/python/cugraph
jupyterhub-jupyter-1  | cuml==23.6.0
jupyterhub-jupyter-1  | cupy @ file:///home/conda/feedstock_root/build_artifacts/cupy_1690407947920/work
jupyterhub-jupyter-1  | cusignal==23.6.0
jupyterhub-jupyter-1  | cuspatial==23.6.0
jupyterhub-jupyter-1  | custreamz==23.6.1
jupyterhub-jupyter-1  | cuxfilter==23.6.0
jupyterhub-jupyter-1  | cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
jupyterhub-jupyter-1  | cytoolz @ file:///home/conda/feedstock_root/build_artifacts/cytoolz_1689981891696/work
jupyterhub-jupyter-1  | dask @ file:///home/conda/feedstock_root/build_artifacts/dask-core_1679692358967/work
jupyterhub-jupyter-1  | dask-cuda @ file:///home/conda/feedstock_root/build_artifacts/dask-cuda_1686335937773/work
jupyterhub-jupyter-1  | dask-cudf==23.6.1
jupyterhub-jupyter-1  | datashader @ file:///home/conda/feedstock_root/build_artifacts/datashader_1688634927521/work
jupyterhub-jupyter-1  | datashape==0.5.4
jupyterhub-jupyter-1  | debugpy @ file:///home/conda/feedstock_root/build_artifacts/debugpy_1691021228385/work
jupyterhub-jupyter-1  | decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1641555617451/work
jupyterhub-jupyter-1  | defusedxml @ file:///home/conda/feedstock_root/build_artifacts/defusedxml_1615232257335/work
jupyterhub-jupyter-1  | digautoprofiler==1.0.2
jupyterhub-jupyter-1  | dill @ file:///home/conda/feedstock_root/build_artifacts/dill_1690101045195/work
jupyterhub-jupyter-1  | distributed @ file:///home/conda/feedstock_root/build_artifacts/distributed_1680715567006/work
jupyterhub-jupyter-1  | docstring-to-markdown @ file:///home/conda/feedstock_root/build_artifacts/docstring-to-markdown_1679424273982/work
jupyterhub-jupyter-1  | entrypoints @ file:///home/conda/feedstock_root/build_artifacts/entrypoints_1643888246732/work
jupyterhub-jupyter-1  | et-xmlfile @ file:///home/conda/feedstock_root/build_artifacts/et_xmlfile_1674664118162/work
jupyterhub-jupyter-1  | exceptiongroup @ file:///home/conda/feedstock_root/build_artifacts/exceptiongroup_1688381075899/work
jupyterhub-jupyter-1  | executing @ file:///home/conda/feedstock_root/build_artifacts/executing_1667317341051/work
jupyterhub-jupyter-1  | fastjsonschema @ file:///home/conda/feedstock_root/build_artifacts/python-fastjsonschema_1690055433477/work/dist
jupyterhub-jupyter-1  | fastrlock==0.8
jupyterhub-jupyter-1  | Fiona @ file:///home/conda/feedstock_root/build_artifacts/fiona_1676029484872/work
jupyterhub-jupyter-1  | flake8 @ file:///home/conda/feedstock_root/build_artifacts/flake8_1669396691980/work
jupyterhub-jupyter-1  | flit_core @ file:///home/conda/feedstock_root/build_artifacts/flit-core_1684084314667/work/source/flit_core
jupyterhub-jupyter-1  | folium @ file:///home/conda/feedstock_root/build_artifacts/folium_1670956290671/work
jupyterhub-jupyter-1  | fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1691006583053/work
jupyterhub-jupyter-1  | fqdn @ file:///home/conda/feedstock_root/build_artifacts/fqdn_1638810296540/work/dist
jupyterhub-jupyter-1  | frozenlist @ file:///home/conda/feedstock_root/build_artifacts/frozenlist_1689244399117/work
jupyterhub-jupyter-1  | fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1686342280219/work
jupyterhub-jupyter-1  | future @ file:///home/conda/feedstock_root/build_artifacts/future_1673596611778/work
jupyterhub-jupyter-1  | GDAL @ file:///home/conda/feedstock_root/build_artifacts/gdal-split_1673844024878/work/build/swig/python
jupyterhub-jupyter-1  | geopandas @ file:///home/conda/feedstock_root/build_artifacts/geopandas_1686057576800/work
jupyterhub-jupyter-1  | greenlet @ file:///home/conda/feedstock_root/build_artifacts/greenlet_1684082927543/work
jupyterhub-jupyter-1  | holoviews @ file:///home/conda/feedstock_root/build_artifacts/holoviews_1673954411254/work
jupyterhub-jupyter-1  | hvplot @ file:///home/conda/feedstock_root/build_artifacts/hvplot_1687245875276/work
jupyterhub-jupyter-1  | idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1663625384323/work
jupyterhub-jupyter-1  | imagecodecs @ file:///home/conda/feedstock_root/build_artifacts/imagecodecs_1674483071022/work
jupyterhub-jupyter-1  | imageio @ file:///home/conda/feedstock_root/build_artifacts/imageio_1686552404404/work
jupyterhub-jupyter-1  | importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1688754491823/work
jupyterhub-jupyter-1  | importlib-resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1691408075105/work
jupyterhub-jupyter-1  | ipykernel @ file:///home/conda/feedstock_root/build_artifacts/ipykernel_1691424382338/work
jupyterhub-jupyter-1  | ipympl @ file:///home/conda/feedstock_root/build_artifacts/ipympl_1676535632179/work
jupyterhub-jupyter-1  | ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1685727741709/work
jupyterhub-jupyter-1  | ipython-genutils==0.2.0
jupyterhub-jupyter-1  | ipywidgets @ file:///home/conda/feedstock_root/build_artifacts/ipywidgets_1690877070294/work
jupyterhub-jupyter-1  | isoduration @ file:///home/conda/feedstock_root/build_artifacts/isoduration_1638811571363/work/dist
jupyterhub-jupyter-1  | isort @ file:///home/conda/feedstock_root/build_artifacts/isort_1675033873689/work
jupyterhub-jupyter-1  | jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1669134318875/work
jupyterhub-jupyter-1  | Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1654302431367/work
jupyterhub-jupyter-1  | joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1691577114857/work
jupyterhub-jupyter-1  | json5 @ file:///home/conda/feedstock_root/build_artifacts/json5_1688248289187/work
jupyterhub-jupyter-1  | jsonpointer==2.0
jupyterhub-jupyter-1  | jsonschema @ file:///home/conda/feedstock_root/build_artifacts/jsonschema-meta_1691761378595/work
jupyterhub-jupyter-1  | jsonschema-specifications @ file:///home/conda/feedstock_root/build_artifacts/jsonschema-specifications_1689701150890/work
jupyterhub-jupyter-1  | jupyter-bokeh @ file:///home/conda/feedstock_root/build_artifacts/jupyter_bokeh_1663709629058/work
jupyterhub-jupyter-1  | jupyter-events @ file:///home/conda/feedstock_root/build_artifacts/jupyter_events_1691505939576/work
jupyterhub-jupyter-1  | jupyter-lsp==2.2.0
jupyterhub-jupyter-1  | jupyter-telemetry @ file:///home/conda/feedstock_root/build_artifacts/jupyter_telemetry_1605173804246/work
jupyterhub-jupyter-1  | jupyter-ydoc @ file:///home/conda/feedstock_root/build_artifacts/jupyter_ydoc_1685535850115/work/dist
jupyterhub-jupyter-1  | jupyter_client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1687700988094/work
jupyterhub-jupyter-1  | jupyter_core @ file:///home/conda/feedstock_root/build_artifacts/jupyter_core_1686775611663/work
jupyterhub-jupyter-1  | jupyter_server==2.7.0
jupyterhub-jupyter-1  | jupyter_server_fileid @ file:///home/conda/feedstock_root/build_artifacts/jupyter_server_fileid_1681071667289/work
jupyterhub-jupyter-1  | jupyter_server_terminals==0.4.4
jupyterhub-jupyter-1  | jupyter_server_ydoc @ file:///home/conda/feedstock_root/build_artifacts/jupyter_server_ydoc_1678043727957/work
jupyterhub-jupyter-1  | jupyterhub @ file:///home/conda/feedstock_root/build_artifacts/jupyterhub-feedstock_1691671359799/work
jupyterhub-jupyter-1  | jupyterlab==4.0.3
jupyterhub-jupyter-1  | jupyterlab-cell-flash @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab-cell-flash_1660309199439/work
jupyterhub-jupyter-1  | jupyterlab-link-share @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab-link-share_1679077536954/work
jupyterhub-jupyter-1  | jupyterlab-pygments @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_pygments_1649936611996/work
jupyterhub-jupyter-1  | jupyterlab-widgets @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_widgets_1688489450369/work
jupyterhub-jupyter-1  | jupyterlab_server @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_server_1690205927615/work
jupyterhub-jupyter-1  | kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1666805701884/work
jupyterhub-jupyter-1  | lazy-object-proxy @ file:///home/conda/feedstock_root/build_artifacts/lazy-object-proxy_1672877787898/work
jupyterhub-jupyter-1  | lazy_loader @ file:///home/conda/feedstock_root/build_artifacts/lazy_loader_1679784563552/work
jupyterhub-jupyter-1  | llvmlite==0.40.1
jupyterhub-jupyter-1  | locket @ file:///home/conda/feedstock_root/build_artifacts/locket_1650660393415/work
jupyterhub-jupyter-1  | lz4 @ file:///home/conda/feedstock_root/build_artifacts/lz4_1675806673645/work
jupyterhub-jupyter-1  | Mako @ file:///home/conda/feedstock_root/build_artifacts/mako_1668568582731/work
jupyterhub-jupyter-1  | mapclassify @ file:///home/conda/feedstock_root/build_artifacts/mapclassify_1673861555770/work
jupyterhub-jupyter-1  | Markdown @ file:///home/conda/feedstock_root/build_artifacts/markdown_1690307387991/work
jupyterhub-jupyter-1  | MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1685769049201/work
jupyterhub-jupyter-1  | matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1678135565516/work
jupyterhub-jupyter-1  | matplotlib-inline @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-inline_1660814786464/work
jupyterhub-jupyter-1  | mccabe @ file:///home/conda/feedstock_root/build_artifacts/mccabe_1643049622439/work
jupyterhub-jupyter-1  | mistune @ file:///home/conda/feedstock_root/build_artifacts/mistune_1686313613819/work/dist
jupyterhub-jupyter-1  | msgpack @ file:///home/conda/feedstock_root/build_artifacts/msgpack-python_1678312712169/work
jupyterhub-jupyter-1  | multidict @ file:///home/conda/feedstock_root/build_artifacts/multidict_1672339403932/work
jupyterhub-jupyter-1  | multipledispatch==0.6.0
jupyterhub-jupyter-1  | multiprocess==0.70.15
jupyterhub-jupyter-1  | munch @ file:///home/conda/feedstock_root/build_artifacts/munch_1688318326844/work
jupyterhub-jupyter-1  | munkres==1.1.4
jupyterhub-jupyter-1  | mypy-extensions @ file:///home/conda/feedstock_root/build_artifacts/mypy_extensions_1675543315189/work
jupyterhub-jupyter-1  | nbclassic @ file:///home/conda/feedstock_root/build_artifacts/nbclassic_1683202081046/work
jupyterhub-jupyter-1  | nbclient @ file:///home/conda/feedstock_root/build_artifacts/nbclient_1684790896106/work
jupyterhub-jupyter-1  | nbconvert @ file:///home/conda/feedstock_root/build_artifacts/nbconvert-meta_1690313290323/work
jupyterhub-jupyter-1  | nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1690814868471/work
jupyterhub-jupyter-1  | nest-asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1664684991461/work
jupyterhub-jupyter-1  | networkx @ file:///home/conda/feedstock_root/build_artifacts/networkx_1680692919326/work
jupyterhub-jupyter-1  | notebook @ file:///home/conda/feedstock_root/build_artifacts/notebook_1680870634737/work
jupyterhub-jupyter-1  | notebook_shim @ file:///home/conda/feedstock_root/build_artifacts/notebook-shim_1682360583588/work
jupyterhub-jupyter-1  | numba @ file:///home/conda/feedstock_root/build_artifacts/numba_1687804769779/work
jupyterhub-jupyter-1  | numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1687808312889/work
jupyterhub-jupyter-1  | nvtx @ file:///home/conda/feedstock_root/build_artifacts/nvtx_1682005264204/work
jupyterhub-jupyter-1  | oauthenticator @ file:///home/conda/feedstock_root/build_artifacts/oauthenticator_1691757325878/work
jupyterhub-jupyter-1  | oauthlib @ file:///home/conda/feedstock_root/build_artifacts/oauthlib_1666056362788/work
jupyterhub-jupyter-1  | opencv-contrib-python-headless==4.8.0.76
jupyterhub-jupyter-1  | openpyxl @ file:///home/conda/feedstock_root/build_artifacts/openpyxl_1682610791784/work
jupyterhub-jupyter-1  | overrides==7.4.0
jupyterhub-jupyter-1  | p-tqdm==1.4.0
jupyterhub-jupyter-1  | packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1681337016113/work
jupyterhub-jupyter-1  | pamela @ file:///home/conda/feedstock_root/build_artifacts/pamela_1691565434937/work
jupyterhub-jupyter-1  | pandas==1.5.3
jupyterhub-jupyter-1  | pandocfilters @ file:///home/conda/feedstock_root/build_artifacts/pandocfilters_1631603243851/work
jupyterhub-jupyter-1  | panel @ file:///home/conda/feedstock_root/build_artifacts/panel_1667466777996/work
jupyterhub-jupyter-1  | param @ file:///home/conda/feedstock_root/build_artifacts/param_1678790747312/work
jupyterhub-jupyter-1  | parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1638334955874/work
jupyterhub-jupyter-1  | partd @ file:///home/conda/feedstock_root/build_artifacts/partd_1681246756246/work
jupyterhub-jupyter-1  | pathos==0.3.1
jupyterhub-jupyter-1  | pathspec @ file:///home/conda/feedstock_root/build_artifacts/pathspec_1690597952537/work
jupyterhub-jupyter-1  | pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1667297516076/work
jupyterhub-jupyter-1  | pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602536217715/work
jupyterhub-jupyter-1  | Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1675487172403/work
jupyterhub-jupyter-1  | pkgutil_resolve_name @ file:///home/conda/feedstock_root/build_artifacts/pkgutil-resolve-name_1633981968097/work
jupyterhub-jupyter-1  | platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1690813113769/work
jupyterhub-jupyter-1  | pluggy @ file:///home/conda/feedstock_root/build_artifacts/pluggy_1687776318736/work
jupyterhub-jupyter-1  | pooch @ file:///home/conda/feedstock_root/build_artifacts/pooch_1679580333621/work
jupyterhub-jupyter-1  | pox==0.3.3
jupyterhub-jupyter-1  | ppft==1.7.6.7
jupyterhub-jupyter-1  | prometheus-client @ file:///home/conda/feedstock_root/build_artifacts/prometheus_client_1689032443210/work
jupyterhub-jupyter-1  | prompt-toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1688565951714/work
jupyterhub-jupyter-1  | protobuf==4.21.12
jupyterhub-jupyter-1  | psutil @ file:///home/conda/feedstock_root/build_artifacts/psutil_1681775027942/work
jupyterhub-jupyter-1  | ptxcompiler @ file:///home/conda/feedstock_root/build_artifacts/ptxcompiler_1684528370140/work
jupyterhub-jupyter-1  | ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
jupyterhub-jupyter-1  | pure-eval @ file:///home/conda/feedstock_root/build_artifacts/pure_eval_1642875951954/work
jupyterhub-jupyter-1  | pyarrow==11.0.0
jupyterhub-jupyter-1  | pycodestyle @ file:///home/conda/feedstock_root/build_artifacts/pycodestyle_1669306857274/work
jupyterhub-jupyter-1  | pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1636257122734/work
jupyterhub-jupyter-1  | pyct==0.4.6
jupyterhub-jupyter-1  | pycurl==7.45.1
jupyterhub-jupyter-1  | pydeck @ file:///home/conda/feedstock_root/build_artifacts/pydeck_1603714958102/work
jupyterhub-jupyter-1  | pydocstyle @ file:///home/conda/feedstock_root/build_artifacts/pydocstyle_1673997487070/work
jupyterhub-jupyter-1  | pyee @ file:///home/conda/feedstock_root/build_artifacts/pyee_1644152123334/work
jupyterhub-jupyter-1  | pyflakes @ file:///home/conda/feedstock_root/build_artifacts/pyflakes_1669319921641/work
jupyterhub-jupyter-1  | Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1691408637400/work
jupyterhub-jupyter-1  | PyJWT @ file:///home/conda/feedstock_root/build_artifacts/pyjwt_1689721553971/work
jupyterhub-jupyter-1  | pylibcugraph @ file:///opt/conda/conda-bld/work/python/pylibcugraph
jupyterhub-jupyter-1  | pylibraft==23.6.2
jupyterhub-jupyter-1  | pylint @ file:///home/conda/feedstock_root/build_artifacts/pylint_1690375221593/work
jupyterhub-jupyter-1  | pynvml @ file:///home/conda/feedstock_root/build_artifacts/pynvml_1639061605391/work
jupyterhub-jupyter-1  | pyOpenSSL @ file:///home/conda/feedstock_root/build_artifacts/pyopenssl_1685514481738/work
jupyterhub-jupyter-1  | pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1690737849915/work
jupyterhub-jupyter-1  | pyppeteer @ file:///home/conda/feedstock_root/build_artifacts/pyppeteer_1643233645996/work
jupyterhub-jupyter-1  | pyproj @ file:///home/conda/feedstock_root/build_artifacts/pyproj_1666938623924/work
jupyterhub-jupyter-1  | PyQt5==5.15.9
jupyterhub-jupyter-1  | PyQt5-Qt5==5.15.2
jupyterhub-jupyter-1  | PyQt5-sip==12.12.2
jupyterhub-jupyter-1  | PyQtWebEngine==5.15.6
jupyterhub-jupyter-1  | PyQtWebEngine-Qt5==5.15.2
jupyterhub-jupyter-1  | PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1661604839144/work
jupyterhub-jupyter-1  | python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work
jupyterhub-jupyter-1  | python-json-logger @ file:///home/conda/feedstock_root/build_artifacts/python-json-logger_1677079630776/work
jupyterhub-jupyter-1  | python-lsp-jsonrpc @ file:///home/conda/feedstock_root/build_artifacts/python-lsp-jsonrpc_1618530352985/work
jupyterhub-jupyter-1  | python-lsp-server @ file:///home/conda/feedstock_root/build_artifacts/python-lsp-server-meta_1688065622325/work
jupyterhub-jupyter-1  | pytoolconfig @ file:///home/conda/feedstock_root/build_artifacts/pytoolconfig_1675124745143/work
jupyterhub-jupyter-1  | pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1680088766131/work
jupyterhub-jupyter-1  | pyviz-comms @ file:///home/conda/feedstock_root/build_artifacts/pyviz_comms_1686853987942/work
jupyterhub-jupyter-1  | PyWavelets @ file:///home/conda/feedstock_root/build_artifacts/pywavelets_1673082339639/work
jupyterhub-jupyter-1  | PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1666772395347/work
jupyterhub-jupyter-1  | pyzmq @ file:///home/conda/feedstock_root/build_artifacts/pyzmq_1691667449795/work
jupyterhub-jupyter-1  | raft-dask==23.6.2
jupyterhub-jupyter-1  | referencing @ file:///home/conda/feedstock_root/build_artifacts/referencing_1691337268233/work
jupyterhub-jupyter-1  | requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1684774241324/work
jupyterhub-jupyter-1  | rfc3339-validator @ file:///home/conda/feedstock_root/build_artifacts/rfc3339-validator_1638811747357/work
jupyterhub-jupyter-1  | rfc3986-validator @ file:///home/conda/feedstock_root/build_artifacts/rfc3986-validator_1598024191506/work
jupyterhub-jupyter-1  | rmm==23.6.0
jupyterhub-jupyter-1  | rope @ file:///home/conda/feedstock_root/build_artifacts/rope_1688059124349/work
jupyterhub-jupyter-1  | rpds-py @ file:///home/conda/feedstock_root/build_artifacts/rpds-py_1689705060450/work
jupyterhub-jupyter-1  | Rtree @ file:///home/conda/feedstock_root/build_artifacts/rtree_1689932400240/work
jupyterhub-jupyter-1  | ruamel.yaml @ file:///home/conda/feedstock_root/build_artifacts/ruamel.yaml_1686993901728/work
jupyterhub-jupyter-1  | ruamel.yaml.clib @ file:///home/conda/feedstock_root/build_artifacts/ruamel.yaml.clib_1670412719074/work
jupyterhub-jupyter-1  | scikit-image @ file:///home/conda/feedstock_root/build_artifacts/scikit-image_1681313146947/work/dist/scikit_image-0.20.0-cp310-cp310-linux_x86_64.whl
jupyterhub-jupyter-1  | scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1688116438223/work
jupyterhub-jupyter-1  | scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1687995573301/work/base/dist/scipy-1.11.1-cp310-cp310-linux_x86_64.whl#sha256=8d5deeb2c6d26ebd0fd1ecccdf7a146031927d8ec819fdfa3dc5ca26775f227d
jupyterhub-jupyter-1  | Send2Trash @ file:///home/conda/feedstock_root/build_artifacts/send2trash_1682601222253/work
jupyterhub-jupyter-1  | shapely @ file:///home/conda/feedstock_root/build_artifacts/shapely_1675079591791/work
jupyterhub-jupyter-1  | simpervisor @ file:///home/conda/feedstock_root/build_artifacts/simpervisor_1684441099342/work
jupyterhub-jupyter-1  | six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
jupyterhub-jupyter-1  | sniffio @ file:///home/conda/feedstock_root/build_artifacts/sniffio_1662051266223/work
jupyterhub-jupyter-1  | snowballstemmer @ file:///home/conda/feedstock_root/build_artifacts/snowballstemmer_1637143057757/work
jupyterhub-jupyter-1  | sortedcontainers @ file:///home/conda/feedstock_root/build_artifacts/sortedcontainers_1621217038088/work
jupyterhub-jupyter-1  | soupsieve @ file:///home/conda/feedstock_root/build_artifacts/soupsieve_1658207591808/work
jupyterhub-jupyter-1  | SQLAlchemy @ file:///home/conda/feedstock_root/build_artifacts/sqlalchemy_1689437297496/work
jupyterhub-jupyter-1  | stack-data @ file:///home/conda/feedstock_root/build_artifacts/stack_data_1669632077133/work
jupyterhub-jupyter-1  | streamz @ file:///home/conda/feedstock_root/build_artifacts/streamz_1659013840126/work
jupyterhub-jupyter-1  | tblib @ file:///home/conda/feedstock_root/build_artifacts/tblib_1616261298899/work
jupyterhub-jupyter-1  | terminado @ file:///home/conda/feedstock_root/build_artifacts/terminado_1670253674810/work
jupyterhub-jupyter-1  | threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1689261241048/work
jupyterhub-jupyter-1  | tifffile @ file:///home/conda/feedstock_root/build_artifacts/tifffile_1689877062187/work
jupyterhub-jupyter-1  | tinycss2 @ file:///home/conda/feedstock_root/build_artifacts/tinycss2_1666100256010/work
jupyterhub-jupyter-1  | toml @ file:///home/conda/feedstock_root/build_artifacts/toml_1604308577558/work
jupyterhub-jupyter-1  | tomli @ file:///home/conda/feedstock_root/build_artifacts/tomli_1644342247877/work
jupyterhub-jupyter-1  | tomlkit @ file:///home/conda/feedstock_root/build_artifacts/tomlkit_1690472772788/work
jupyterhub-jupyter-1  | toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1657485559105/work
jupyterhub-jupyter-1  | tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1684150054582/work
jupyterhub-jupyter-1  | tqdm @ file:///home/conda/feedstock_root/build_artifacts/tqdm_1691671248568/work
jupyterhub-jupyter-1  | traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1675110562325/work
jupyterhub-jupyter-1  | treelite==3.2.0
jupyterhub-jupyter-1  | treelite-runtime==3.2.0
jupyterhub-jupyter-1  | typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1688315532570/work
jupyterhub-jupyter-1  | ucx-py @ file:///opt/conda/conda-bld/work
jupyterhub-jupyter-1  | ujson @ file:///home/conda/feedstock_root/build_artifacts/ujson_1675191915931/work
jupyterhub-jupyter-1  | uncertainties @ file:///home/conda/feedstock_root/build_artifacts/uncertainties_1655664167081/work
jupyterhub-jupyter-1  | unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1667239886688/work
jupyterhub-jupyter-1  | uri-template @ file:///home/conda/feedstock_root/build_artifacts/uri-template_1688655812972/work/dist
jupyterhub-jupyter-1  | urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1678635778344/work
jupyterhub-jupyter-1  | wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1673864653149/work
jupyterhub-jupyter-1  | webcolors @ file:///home/conda/feedstock_root/build_artifacts/webcolors_1679900785843/work
jupyterhub-jupyter-1  | webencodings==0.5.1
jupyterhub-jupyter-1  | websocket-client @ file:///home/conda/feedstock_root/build_artifacts/websocket-client_1687789148259/work
jupyterhub-jupyter-1  | websockets @ file:///home/conda/feedstock_root/build_artifacts/websockets_1666806213473/work
jupyterhub-jupyter-1  | whatthepatch @ file:///home/conda/feedstock_root/build_artifacts/whatthepatch_1683396758362/work
jupyterhub-jupyter-1  | widgetsnbextension @ file:///home/conda/feedstock_root/build_artifacts/widgetsnbextension_1688504439014/work
jupyterhub-jupyter-1  | wrapt @ file:///home/conda/feedstock_root/build_artifacts/wrapt_1677485519705/work
jupyterhub-jupyter-1  | xarray @ file:///home/conda/feedstock_root/build_artifacts/xarray_1689599939832/work
jupyterhub-jupyter-1  | xgboost @ file:///opt/conda/conda-bld/work/python-package
jupyterhub-jupyter-1  | xyzservices @ file:///home/conda/feedstock_root/build_artifacts/xyzservices_1689285763161/work
jupyterhub-jupyter-1  | y-py @ file:///home/conda/feedstock_root/build_artifacts/y-py_1677231008299/work
jupyterhub-jupyter-1  | yapf @ file:///home/conda/feedstock_root/build_artifacts/yapf_1690387939953/work
jupyterhub-jupyter-1  | yarl @ file:///home/conda/feedstock_root/build_artifacts/yarl_1685191749966/work
jupyterhub-jupyter-1  | ypy-websocket @ file:///home/conda/feedstock_root/build_artifacts/ypy-websocket_1670333059911/work
jupyterhub-jupyter-1  | zict @ file:///home/conda/feedstock_root/build_artifacts/zict_1681770155528/work
jupyterhub-jupyter-1  | zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1689374466814/work
jupyterhub-jupyter-1  | + conda list
jupyterhub-jupyter-1  | # packages in environment at /opt/conda:
jupyterhub-jupyter-1  | #
jupyterhub-jupyter-1  | # Name                    Version                   Build  Channel
jupyterhub-jupyter-1  | _libgcc_mutex             0.1                 conda_forge    conda-forge
jupyterhub-jupyter-1  | _openmp_mutex             4.5                       2_gnu    conda-forge
jupyterhub-jupyter-1  | boltons                   23.0.0             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | brotli-python             1.0.9           py310hd8f1fbe_9    conda-forge
jupyterhub-jupyter-1  | bzip2                     1.0.8                h7f98852_4    conda-forge
jupyterhub-jupyter-1  | c-ares                    1.19.1               hd590300_0    conda-forge
jupyterhub-jupyter-1  | ca-certificates           2023.7.22            hbcca054_0    conda-forge
jupyterhub-jupyter-1  | certifi                   2023.7.22          pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | cffi                      1.15.1          py310h255011f_3    conda-forge
jupyterhub-jupyter-1  | charset-normalizer        3.2.0              pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | conda                     23.7.2          py310hff52083_0    conda-forge
jupyterhub-jupyter-1  | conda-package-handling    2.2.0              pyh38be061_0    conda-forge
jupyterhub-jupyter-1  | conda-package-streaming   0.9.0              pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | cryptography              41.0.3          py310h75e40e8_0    conda-forge
jupyterhub-jupyter-1  | fmt                       9.1.0                h924138e_0    conda-forge
jupyterhub-jupyter-1  | icu                       72.1                 hcb278e6_0    conda-forge
jupyterhub-jupyter-1  | idna                      3.4                pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | jsonpatch                 1.32               pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | jsonpointer               2.0                        py_0    conda-forge
jupyterhub-jupyter-1  | keyutils                  1.6.1                h166bdaf_0    conda-forge
jupyterhub-jupyter-1  | krb5                      1.21.1               h659d440_0    conda-forge
jupyterhub-jupyter-1  | ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
jupyterhub-jupyter-1  | libarchive                3.6.2                h039dbb9_1    conda-forge
jupyterhub-jupyter-1  | libcurl                   8.2.1                hca28451_0    conda-forge
jupyterhub-jupyter-1  | libedit                   3.1.20191231         he28a2e2_2    conda-forge
jupyterhub-jupyter-1  | libev                     4.33                 h516909a_1    conda-forge
jupyterhub-jupyter-1  | libffi                    3.4.2                h7f98852_5    conda-forge
jupyterhub-jupyter-1  | libgcc-ng                 13.1.0               he5830b7_0    conda-forge
jupyterhub-jupyter-1  | libgomp                   13.1.0               he5830b7_0    conda-forge
jupyterhub-jupyter-1  | libiconv                  1.17                 h166bdaf_0    conda-forge
jupyterhub-jupyter-1  | libmamba                  1.4.9                h658169a_0    conda-forge
jupyterhub-jupyter-1  | libmambapy                1.4.9           py310h8aae740_0    conda-forge
jupyterhub-jupyter-1  | libnghttp2                1.52.0               h61bc06f_0    conda-forge
jupyterhub-jupyter-1  | libnsl                    2.0.0                h7f98852_0    conda-forge
jupyterhub-jupyter-1  | libsolv                   0.7.24               hfc55251_1    conda-forge
jupyterhub-jupyter-1  | libsqlite                 3.42.0               h2797004_0    conda-forge
jupyterhub-jupyter-1  | libssh2                   1.11.0               h0841786_0    conda-forge
jupyterhub-jupyter-1  | libstdcxx-ng              13.1.0               hfd8a6a1_0    conda-forge
jupyterhub-jupyter-1  | libuuid                   2.38.1               h0b41bf4_0    conda-forge
jupyterhub-jupyter-1  | libxml2                   2.11.5               h0d562d8_0    conda-forge
jupyterhub-jupyter-1  | libzlib                   1.2.13               hd590300_5    conda-forge
jupyterhub-jupyter-1  | lz4-c                     1.9.4                hcb278e6_0    conda-forge
jupyterhub-jupyter-1  | lzo                       2.10              h516909a_1000    conda-forge
jupyterhub-jupyter-1  | mamba                     1.4.9           py310h51d5547_0    conda-forge
jupyterhub-jupyter-1  | ncurses                   6.4                  hcb278e6_0    conda-forge
jupyterhub-jupyter-1  | openssl                   3.1.2                hd590300_0    conda-forge
jupyterhub-jupyter-1  | packaging                 23.1               pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | pip                       23.1.2             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | pluggy                    1.2.0              pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | pybind11-abi              4                    hd8ed1ab_3    conda-forge
jupyterhub-jupyter-1  | pycosat                   0.6.4           py310h5764c6d_1    conda-forge
jupyterhub-jupyter-1  | pycparser                 2.21               pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | pyopenssl                 23.2.0             pyhd8ed1ab_1    conda-forge
jupyterhub-jupyter-1  | pysocks                   1.7.1              pyha2e5f31_6    conda-forge
jupyterhub-jupyter-1  | python                    3.10.11         he550d4f_0_cpython    conda-forge
jupyterhub-jupyter-1  | python_abi                3.10                    3_cp310    conda-forge
jupyterhub-jupyter-1  | readline                  8.2                  h8228510_1    conda-forge
jupyterhub-jupyter-1  | reproc                    14.2.4               h0b41bf4_0    conda-forge
jupyterhub-jupyter-1  | reproc-cpp                14.2.4               hcb278e6_0    conda-forge
jupyterhub-jupyter-1  | requests                  2.31.0             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | ruamel.yaml               0.17.32         py310h2372a71_0    conda-forge
jupyterhub-jupyter-1  | ruamel.yaml.clib          0.2.7           py310h1fa729e_1    conda-forge
jupyterhub-jupyter-1  | setuptools                67.7.2             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | tini                      0.19.0               h166bdaf_1    conda-forge
jupyterhub-jupyter-1  | tk                        8.6.12               h27826a3_0    conda-forge
jupyterhub-jupyter-1  | toolz                     0.12.0             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | tqdm                      4.66.1             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | tzdata                    2023c                h71feb2d_0    conda-forge
jupyterhub-jupyter-1  | urllib3                   2.0.4              pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | wheel                     0.41.1             pyhd8ed1ab_0    conda-forge
jupyterhub-jupyter-1  | xz                        5.2.6                h166bdaf_0    conda-forge
jupyterhub-jupyter-1  | yaml-cpp                  0.7.0                h27087fc_2    conda-forge
jupyterhub-jupyter-1  | zstandard                 0.19.0          py310h1275a96_2    conda-forge
jupyterhub-jupyter-1  | zstd                      1.5.2                hfc55251_7    conda-forge
```
</details>

<details><summary>Configuration</summary>
<!--
For JupyterHub, especially include information such as what Spawner and Authenticator are being used.
Be careful not to share any sensitive information.
You can paste jupyterhub_config.py below.
To exclude lots of comments and empty lines from auto-generated jupyterhub_config.py, you can do:
    grep -v '\(^#\|^[[:space:]]*$\)' jupyterhub_config.py
-->

See above, that's the entire configuration.

</details>

<details><summary>Logs</summary>
<!--
Errors are often logged by jupytehub. How you get logs depends on your deployment.
With kubernetes it might be:

    kubectl get pod # hub pod name starts with hub...
    kubectl logs hub-...
    # or for a single-user server
    kubectl logs jupyter-username

Or the-littlest-jupyterhub:

    journalctl -u jupyterhub
    # or for a single-user server
    journalctl -u jupyter-username
-->

```
# paste relevant logs here, if any
```
</details>


Discussion:

Patch:
diff --git a/oauthenticator/globus.py b/oauthenticator/globus.py
index 4a44720..28ae5d2 100644
--- a/oauthenticator/globus.py
+++ b/oauthenticator/globus.py
@@ -291,6 +291,11 @@ class GlobusOAuthenticator(OAuthenticator):
         Overrides the OAuthenticator.check_allowed to also allow users part of
         `allowed_globus_groups`.
         """
+        # A workaround for JupyterHub < 5.0 described in
+        # https://github.com/jupyterhub/oauthenticator/issues/621
+        if auth_model is None:
+            return True
+
         # before considering allowing a username by being recognized in a list
         # of usernames or similar, we must ensure that the authenticated user is
         # from an allowed identity provider domain.
diff --git a/oauthenticator/google.py b/oauthenticator/google.py
index 581c810..d2ceb70 100644
--- a/oauthenticator/google.py
+++ b/oauthenticator/google.py
@@ -207,6 +207,11 @@ class GoogleOAuthenticator(OAuthenticator, GoogleOAuth2Mixin):
         Overrides the OAuthenticator.check_allowed to also allow users part of
         `allowed_google_groups`.
         """
+        # A workaround for JupyterHub < 5.0 described in
+        # https://github.com/jupyterhub/oauthenticator/issues/621
+        if auth_model is None:
+            return True
+
         # before considering allowing a username by being recognized in a list
         # of usernames or similar, we must ensure that the authenticated user
         # has a verified email and is part of hosted_domain if configured.
diff --git a/oauthenticator/oauth2.py b/oauthenticator/oauth2.py
index 5e96464..ca4147f 100644
--- a/oauthenticator/oauth2.py
+++ b/oauthenticator/oauth2.py
@@ -463,7 +463,7 @@ class OAuthenticator(Authenticator):
         config=True,
         help="""
         Callback URL to use.
-        
+
         When registering an OAuth2 application with an identity provider, this
         is typically called the redirect url.
 
@@ -994,7 +994,7 @@ class OAuthenticator(Authenticator):
         method and return True when this method returns True or if a user is
         allowed via the additional config.
         """
-        # A workaround for JupyterHub<=4.0.1, described in
+        # A workaround for JupyterHub < 5.0 described in
         # https://github.com/jupyterhub/oauthenticator/issues/621
         if auth_model is None:
             return True


Test patch:
diff --git a/oauthenticator/tests/test_generic.py b/oauthenticator/tests/test_generic.py
index 35d11b4..93bede7 100644
--- a/oauthenticator/tests/test_generic.py
+++ b/oauthenticator/tests/test_generic.py
@@ -238,3 +238,18 @@ async def test_generic_claim_groups_key_nested_strings(
 
     assert auth_model
     assert auth_model["admin"]
+
+
+@mark.parametrize(
+    "name, allowed",
+    [
+        ("allowed", True),
+        ("notallowed", False),
+    ],
+)
+async def test_check_allowed_no_auth_state(get_authenticator, name, allowed):
+    authenticator = get_authenticator(allowed_users={"allowed"})
+    # allow check always gets called with no auth model during Hub startup
+    # these are previously-allowed users who should pass until subsequent
+    # this check is removed in JupyterHub 5
+    assert await authenticator.check_allowed(name, None)
diff --git a/oauthenticator/tests/test_globus.py b/oauthenticator/tests/test_globus.py
index 7dbd147..5e542e5 100644
--- a/oauthenticator/tests/test_globus.py
+++ b/oauthenticator/tests/test_globus.py
@@ -313,6 +313,21 @@ async def test_globus(
         assert auth_model == None
 
 
+@mark.parametrize(
+    "name, allowed",
+    [
+        ("allowed", True),
+        ("notallowed", False),
+    ],
+)
+async def test_check_allowed_no_auth_state(name, allowed):
+    authenticator = GlobusOAuthenticator(allowed_users={"allowed"})
+    # allow check always gets called with no auth model during Hub startup
+    # these are previously-allowed users who should pass until subsequent
+    # this check is removed in JupyterHub 5
+    assert await authenticator.check_allowed(name, None)
+
+
 async def test_globus_pre_spawn_start(mock_globus_user):
     authenticator = GlobusOAuthenticator()
     spawner = Mock()
diff --git a/oauthenticator/tests/test_google.py b/oauthenticator/tests/test_google.py
index 7a28388..baf74ba 100644
--- a/oauthenticator/tests/test_google.py
+++ b/oauthenticator/tests/test_google.py
@@ -209,6 +209,21 @@ async def test_hosted_domain_single_entry(google_client):
     assert exc.value.status_code == 403
 
 
+@mark.parametrize(
+    "name, allowed",
+    [
+        ("allowed", True),
+        ("notallowed", False),
+    ],
+)
+async def test_check_allowed_no_auth_state(google_client, name, allowed):
+    authenticator = GoogleOAuthenticator(allowed_users={"allowed"})
+    # allow check always gets called with no auth model during Hub startup
+    # these are previously-allowed users who should pass until subsequent
+    # this check is removed in JupyterHub 5
+    assert await authenticator.check_allowed(name, None)
+
+
 async def test_hosted_domain_multiple_entries(google_client):
     """
     Tests that sign in is restricted to the listed domains and that the username