ITADN

tiledbsoma 2.2.0 breaks user-agent in requests

#1451Openivirshup 创建于 2025-12-16
bug
I
ivirshupcommented
## Describe the bug Running the test suite with tiledbsoma 2.2.0 installed shows failures for some of the user agent tests. Downgrading to tiledbsoma 2.1.2 shows passing tests. ## To Reproduce From the python api root ``` pip install -e .[spatial] -r scripts/requirements-dev.txt pytest -k test_user_agent ``` <details> <summary> test results </summary> ``` $ pytest -k test_user_agent ============================================================================================================= test session starts ============================================================================================================== platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.6.0 rootdir: /home/ubuntu/github/cellxgene-census/api/python/cellxgene_census configfile: pyproject.toml plugins: requests-mock-1.12.1, zarr-3.1.5, xdist-3.8.0 collected 422 items / 418 deselected / 4 selected tests/test_user_agent.py .FFF [100%] =================================================================================================================== FAILURES =================================================================================================================== ________________________________________________________________________________________________________ test_download_w_proxy_fixture _________________________________________________________________________________________________________ small_dataset_id = '0895c838-e550-48a3-a777-dbcd35d30272', collect_proxy_requests = <function collect_proxy_requests.<locals>._proxy_requests at 0x764991ff7f60> tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/test_download_w_proxy_fixture0'), test_specific_useragent = 'tests/test_user_agent.py::test_download_w_proxy_fixture (setup)' def test_download_w_proxy_fixture( small_dataset_id: str, collect_proxy_requests: Callable[[], list[dict]], tmp_path: Path, test_specific_useragent: str, ): # Use of collect_proxy_requests forces test to use a proxy and will check headers of requests made via that proxy adata_path = tmp_path / "adata.h5ad" cellxgene_census.download_source_h5ad(small_dataset_id, adata_path.as_posix(), census_version="latest") records = collect_proxy_requests() > check_proxy_records( records, custom_user_agent=test_specific_useragent, min_records=3, # Should request at least a json and the download ) tests/test_user_agent.py:233: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ records = [{'headers': {'host': 'census.cellxgene.cziscience.com:443'}, 'method': 'CONNECT', 'url': 'census.cellxgene.cziscience... ...}, 'method': 'GET', 'url': '/?list-type=2&delimiter=%2F&prefix=cell-census%2F2025-11-17%2Fsoma%2F__group%2F'}, ...] def check_proxy_records(records: list[dict], *, custom_user_agent: None | str = None, min_records: int = 1) -> None: # Check that there aren't two CONNECT requests in a row prev_was_connect = False for record in records: was_connect = record["method"] == "CONNECT" if prev_was_connect and was_connect: raise AssertionError( "Recieved multiple connect requests in a row. Some calls aren't being intercepted by the proxy." ) # Check that headers were set correctly on intercepted requests n_records = 0 for record in records: if record["method"] == "CONNECT": continue n_records += 1 headers = record["headers"] user_agent = headers["user-agent"] > assert "cellxgene-census-python" in user_agent E AssertionError: assert 'cellxgene-census-python' in 'aws-sdk-cpp/1.11.665 ua/2.1 api/S3 os/Linux#6.8.0-1024-aws lang/c++#C++11 md/aws-crt#0.34.5 md/arch#x86_64 md/GCC#14.2.1 m/Z,b,P' tests/test_user_agent.py:199: AssertionError ------------------------------------------------------------------------------------------------------------- Captured stderr call ------------------------------------------------------------------------------------------------------------- Downloading: 100%|██████████| 5.13M/5.13M [00:00<00:00, 9.10MB/s] __________________________________________________________________________________________________________ test_query_w_proxy_fixture __________________________________________________________________________________________________________ collect_proxy_requests = <function collect_proxy_requests.<locals>._proxy_requests at 0x7649931b9300> def test_query_w_proxy_fixture(collect_proxy_requests: Callable[[], list[dict]]): with cellxgene_census.open_soma(census_version="stable") as census: _ = cellxgene_census.get_obs(census, "Mus musculus", coords=slice(100, 300)) records = collect_proxy_requests() > check_proxy_records( records, min_records=5, # some metadata requests, then a lot of request from tiledb ) tests/test_user_agent.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ records = [{'headers': {'host': 'census.cellxgene.cziscience.com:443'}, 'method': 'CONNECT', 'url': 'census.cellxgene.cziscience... ...}, 'method': 'GET', 'url': '/?list-type=2&delimiter=%2F&prefix=cell-census%2F2025-11-08%2Fsoma%2F__group%2F'}, ...] def check_proxy_records(records: list[dict], *, custom_user_agent: None | str = None, min_records: int = 1) -> None: # Check that there aren't two CONNECT requests in a row prev_was_connect = False for record in records: was_connect = record["method"] == "CONNECT" if prev_was_connect and was_connect: raise AssertionError( "Recieved multiple connect requests in a row. Some calls aren't being intercepted by the proxy." ) # Check that headers were set correctly on intercepted requests n_records = 0 for record in records: if record["method"] == "CONNECT": continue n_records += 1 headers = record["headers"] user_agent = headers["user-agent"] > assert "cellxgene-census-python" in user_agent E AssertionError: assert 'cellxgene-census-python' in 'aws-sdk-cpp/1.11.665 ua/2.1 api/S3 os/Linux#6.8.0-1024-aws lang/c++#C++11 md/aws-crt#0.34.5 md/arch#x86_64 md/GCC#14.2.1 m/Z,b,P' tests/test_user_agent.py:199: AssertionError ------------------------------------------------------------------------------------------------------------- Captured stderr call ------------------------------------------------------------------------------------------------------------- The "stable" release is currently 2025-11-08. Specify 'census_version="2025-11-08"' in future calls to open_soma() to ensure data consistency. -------------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------------- INFO cellxgene_census:_open.py:252 The "stable" release is currently 2025-11-08. Specify 'census_version="2025-11-08"' in future calls to open_soma() to ensure data consistency. ____________________________________________________________________________________________________________ test_embedding_headers ____________________________________________________________________________________________________________ collect_proxy_requests = <function collect_proxy_requests.<locals>._proxy_requests at 0x7649931bbe20> def test_embedding_headers(collect_proxy_requests: Callable[[], list[dict]]): import cellxgene_census.experimental CENSUS_VERSION = "2023-12-15" embeddings_metadata = cellxgene_census.experimental.get_all_available_embeddings(CENSUS_VERSION) metadata = embeddings_metadata[0] embedding_uri = ( f"s3://cellxgene-contrib-public/contrib/cell-census/soma/{metadata['census_version']}/{metadata['id']}" ) _ = cellxgene_census.experimental.get_embedding( CENSUS_VERSION, embedding_uri=embedding_uri, obs_soma_joinids=np.arange(100), ) > check_proxy_records(collect_proxy_requests()) tests/test_user_agent.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ records = [{'headers': {'host': 'census.cellxgene.cziscience.com:443'}, 'method': 'CONNECT', 'url': 'census.cellxgene.cziscience...e', 'host': 'census.cellxgene.cziscience.com', ...}, 'method': 'GET', 'url': '/cellxgene-census/v1/release.json'}, ...] def check_proxy_records(records: list[dict], *, custom_user_agent: None | str = None, min_records: int = 1) -> None: # Check that there aren't two CONNECT requests in a row prev_was_connect = False for record in records: was_connect = record["method"] == "CONNECT" if prev_was_connect and was_connect: raise AssertionError( "Recieved multiple connect requests in a row. Some calls aren't being intercepted by the proxy." ) # Check that headers were set correctly on intercepted requests n_records = 0 for record in records: if record["method"] == "CONNECT": continue n_records += 1 headers = record["headers"] user_agent = headers["user-agent"] > assert "cellxgene-census-python" in user_agent E AssertionError: assert 'cellxgene-census-python' in 'aws-sdk-cpp/1.11.665 ua/2.1 api/S3 os/Linux#6.8.0-1024-aws lang/c++#C++11 md/aws-crt#0.34.5 md/arch#x86_64 md/GCC#14.2.1 m/Z,b,P' tests/test_user_agent.py:199: AssertionError =========================================================================================================== short test summary info ============================================================================================================ FAILED tests/test_user_agent.py::test_download_w_proxy_fixture - AssertionError: assert 'cellxgene-census-python' in 'aws-sdk-cpp/1.11.665 ua/2.1 api/S3 os/Linux#6.8.0-1024-aws lang/c++#C++11 md/aws-crt#0.34.5 md/arch#x86_64 md/GCC#14.2.1 m/Z,b,P' FAILED tests/test_user_agent.py::test_query_w_proxy_fixture - AssertionError: assert 'cellxgene-census-python' in 'aws-sdk-cpp/1.11.665 ua/2.1 api/S3 os/Linux#6.8.0-1024-aws lang/c++#C++11 md/aws-crt#0.34.5 md/arch#x86_64 md/GCC#14.2.1 m/Z,b,P' FAILED tests/test_user_agent.py::test_embedding_headers - AssertionError: assert 'cellxgene-census-python' in 'aws-sdk-cpp/1.11.665 ua/2.1 api/S3 os/Linux#6.8.0-1024-aws lang/c++#C++11 md/aws-crt#0.34.5 md/arch#x86_64 md/GCC#14.2.1 m/Z,b,P' ================================================================================================= 3 failed, 1 passed, 418 deselected in 31.53s ================================================================================================= ``` </details> <details> <summary> Showing that downgrading tiledbsoma resolves the issue </summary> ``` (census-dev) ubuntu@ip-172-31-32-138:~/github/cellxgene-census/api/python/cellxgene_census ‹main› $ pip install "tiledbsoma==2.1.2" Collecting tiledbsoma==2.1.2 Downloading tiledbsoma-2.1.2-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (7.0 kB) Requirement already satisfied: anndata>=0.10.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (0.12.6) Requirement already satisfied: attrs>=22.2 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (25.4.0) Requirement already satisfied: more-itertools in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (10.8.0) Requirement already satisfied: numpy in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (2.3.5) Requirement already satisfied: pandas in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (2.3.3) Requirement already satisfied: pyarrow in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (22.0.0) Requirement already satisfied: scanpy>=1.9.2 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (1.11.5) Requirement already satisfied: scipy in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (1.16.3) Requirement already satisfied: somacore==1.0.29 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (1.0.29) Requirement already satisfied: typing-extensions>=4.5.0 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from tiledbsoma==2.1.2) (4.15.0) Requirement already satisfied: pyarrow-hotfix in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from somacore==1.0.29->tiledbsoma==2.1.2) (0.7) Requirement already satisfied: shapely in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from somacore==1.0.29->tiledbsoma==2.1.2) (2.1.2) Requirement already satisfied: array-api-compat>=1.7.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from anndata>=0.10.1->tiledbsoma==2.1.2) (1.12.0) Requirement already satisfied: h5py>=3.8 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from anndata>=0.10.1->tiledbsoma==2.1.2) (3.15.1) Requirement already satisfied: legacy-api-wrap in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from anndata>=0.10.1->tiledbsoma==2.1.2) (1.5) Requirement already satisfied: natsort in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from anndata>=0.10.1->tiledbsoma==2.1.2) (8.4.0) Requirement already satisfied: packaging>=24.2 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from anndata>=0.10.1->tiledbsoma==2.1.2) (25.0) Requirement already satisfied: zarr!=3.0.*,>=2.18.7 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from anndata>=0.10.1->tiledbsoma==2.1.2) (3.1.5) Requirement already satisfied: python-dateutil>=2.8.2 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from pandas->tiledbsoma==2.1.2) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from pandas->tiledbsoma==2.1.2) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from pandas->tiledbsoma==2.1.2) (2025.2) Requirement already satisfied: six>=1.5 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas->tiledbsoma==2.1.2) (1.17.0) Requirement already satisfied: joblib in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (1.5.2) Requirement already satisfied: matplotlib>=3.7.5 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (3.10.8) Requirement already satisfied: networkx>=2.7.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (3.6.1) Requirement already satisfied: numba!=0.62.0rc1,>=0.57.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (0.63.1) Requirement already satisfied: patsy!=1.0.0 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (1.0.2) Requirement already satisfied: pynndescent>=0.5.13 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (0.5.13) Requirement already satisfied: scikit-learn>=1.1.3 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (1.8.0) Requirement already satisfied: seaborn>=0.13.2 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (0.13.2) Requirement already satisfied: session-info2 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (0.2.3) Requirement already satisfied: statsmodels>=0.14.5 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (0.14.6) Requirement already satisfied: tqdm in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (4.67.1) Requirement already satisfied: umap-learn>=0.5.6 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scanpy>=1.9.2->tiledbsoma==2.1.2) (0.5.9.post2) Requirement already satisfied: contourpy>=1.0.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from matplotlib>=3.7.5->scanpy>=1.9.2->tiledbsoma==2.1.2) (1.3.3) Requirement already satisfied: cycler>=0.10 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from matplotlib>=3.7.5->scanpy>=1.9.2->tiledbsoma==2.1.2) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from matplotlib>=3.7.5->scanpy>=1.9.2->tiledbsoma==2.1.2) (4.61.1) Requirement already satisfied: kiwisolver>=1.3.1 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from matplotlib>=3.7.5->scanpy>=1.9.2->tiledbsoma==2.1.2) (1.4.9) Requirement already satisfied: pillow>=8 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from matplotlib>=3.7.5->scanpy>=1.9.2->tiledbsoma==2.1.2) (12.0.0) Requirement already satisfied: pyparsing>=3 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from matplotlib>=3.7.5->scanpy>=1.9.2->tiledbsoma==2.1.2) (3.2.5) Requirement already satisfied: llvmlite<0.47,>=0.46.0dev0 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from numba!=0.62.0rc1,>=0.57.1->scanpy>=1.9.2->tiledbsoma==2.1.2) (0.46.0) Requirement already satisfied: threadpoolctl>=3.2.0 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from scikit-learn>=1.1.3->scanpy>=1.9.2->tiledbsoma==2.1.2) (3.6.0) Requirement already satisfied: donfig>=0.8 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from zarr!=3.0.*,>=2.18.7->anndata>=0.10.1->tiledbsoma==2.1.2) (0.8.1.post1) Requirement already satisfied: google-crc32c>=1.5 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from zarr!=3.0.*,>=2.18.7->anndata>=0.10.1->tiledbsoma==2.1.2) (1.7.1) Requirement already satisfied: numcodecs>=0.14 in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from zarr!=3.0.*,>=2.18.7->anndata>=0.10.1->tiledbsoma==2.1.2) (0.16.5) Requirement already satisfied: pyyaml in /home/ubuntu/miniforge3/envs/census-dev/lib/python3.12/site-packages (from donfig>=0.8->zarr!=3.0.*,>=2.18.7->anndata>=0.10.1->tiledbsoma==2.1.2) (6.0.3) Downloading tiledbsoma-2.1.2-cp312-cp312-manylinux_2_28_x86_64.whl (21.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 170.6 MB/s 0:00:00 Installing collected packages: tiledbsoma Attempting uninstall: tiledbsoma Found existing installation: tiledbsoma 2.2.0 Uninstalling tiledbsoma-2.2.0: Successfully uninstalled tiledbsoma-2.2.0 Successfully installed tiledbsoma-2.1.2 (census-dev) ubuntu@ip-172-31-32-138:~/github/cellxgene-census/api/python/cellxgene_census ‹main› $ pytest -k test_user_agent ============================================================================================================= test session starts ============================================================================================================== platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.6.0 rootdir: /home/ubuntu/github/cellxgene-census/api/python/cellxgene_census configfile: pyproject.toml plugins: requests-mock-1.12.1, zarr-3.1.5, xdist-3.8.0 collected 422 items / 418 deselected / 4 selected tests/test_user_agent.py .... [100%] ====================================================================================================== 4 passed, 418 deselected in 30.52s ====================================================================================================== ``` </details> ## Expected behavior We expect that this not fail. ## Environment Provide a description of your system and the software versions. - Machine - OS - Software versions: - Python user: `pip list` - R user: `sessionInfo()` <details> <summary> pip list </summary> ``` Package Version Editable project location ------------------------- ----------------------- ---------------------------------------------------------------- aiobotocore 2.26.0 aiohappyeyeballs 2.6.1 aiohttp 3.13.2 aioitertools 0.13.0 aiosignal 1.4.0 anndata 0.12.6 array-api-compat 1.12.0 asttokens 3.0.1 attrs 25.4.0 autopep8 2.3.2 botocore 1.41.5 cellxgene-census 1.17.1.dev27+g40b42116e /home/ubuntu/github/cellxgene-census/api/python/cellxgene_census certifi 2025.11.12 cffi 2.0.0 charset-normalizer 3.4.4 comm 0.2.3 contourpy 1.3.3 coverage 7.13.0 cryptography 46.0.3 cycler 0.12.1 debugpy 1.8.18 decorator 5.2.1 docutils 0.22.3 donfig 0.8.1.post1 execnet 2.1.2 executing 2.2.1 fonttools 4.61.1 frozenlist 1.8.0 fsspec 2025.12.0 google-crc32c 1.7.1 h5py 3.15.1 id 1.5.0 idna 3.11 importlib_metadata 8.7.0 iniconfig 2.3.0 ipykernel 7.1.0 ipython 9.8.0 ipython_pygments_lexers 1.1.1 jaraco.classes 3.4.0 jaraco.context 6.0.1 jaraco.functools 4.3.0 jedi 0.19.2 jeepney 0.9.0 jmespath 1.0.1 joblib 1.5.2 jsonschema 4.25.1 jsonschema-specifications 2025.9.1 jupyter_client 8.7.0 jupyter_core 5.9.1 keyring 25.7.0 kiwisolver 1.4.9 legacy-api-wrap 1.5 llvmlite 0.46.0 markdown-it-py 4.0.0 matplotlib 3.10.8 matplotlib-inline 0.2.1 mdurl 0.1.2 more-itertools 10.8.0 multidict 6.7.0 natsort 8.4.0 nbqa 1.9.1 nest-asyncio 1.6.0 networkx 3.6.1 nh3 0.3.2 numba 0.63.1 numcodecs 0.16.5 numpy 2.3.5 packaging 25.0 pandas 2.3.3 parso 0.8.5 patsy 1.0.2 pexpect 4.9.0 pillow 12.0.0 pip 25.3 platformdirs 4.5.1 pluggy 1.6.0 prompt_toolkit 3.0.52 propcache 0.4.1 proxy.py 2.4.10 psutil 7.1.3 ptyprocess 0.7.0 pure_eval 0.2.3 pyarrow 22.0.0 pyarrow-hotfix 0.7 pycodestyle 2.14.0 pycparser 2.23 Pygments 2.19.2 pynndescent 0.5.13 pyparsing 3.2.5 pytest 9.0.2 pytest-xdist 3.8.0 python-dateutil 2.9.0.post0 pytz 2025.2 PyYAML 6.0.3 pyzmq 27.1.0 readme_renderer 44.0 referencing 0.37.0 requests 2.32.5 requests-mock 1.12.1 requests-toolbelt 1.0.0 rfc3986 2.0.0 rich 14.2.0 rpds-py 0.30.0 s3fs 2025.12.0 scanpy 1.11.5 scikit-learn 1.8.0 scikit-misc 0.5.2 scipy 1.16.3 seaborn 0.13.2 SecretStorage 3.5.0 session-info2 0.2.3 setuptools 80.9.0 shapely 2.1.2 six 1.17.0 somacore 1.0.29 stack-data 0.6.3 statsmodels 0.14.6 tblib 3.2.2 threadpoolctl 3.6.0 tiledb 0.36.0 tiledb-cloud 0.14.4 tiledb-vector-search 0.16.0 tiledbsoma 2.2.0 tokenize_rt 6.2.0 tomli 2.3.0 tornado 6.5.3 tqdm 4.67.1 traitlets 5.14.3 twine 6.2.0 typing_extensions 4.15.0 tzdata 2025.2 umap-learn 0.5.9.post2 urllib3 2.5.0 wcwidth 0.2.14 wheel 0.45.1 wrapt 1.17.3 yarl 1.22.0 zarr 3.1.5 zipp 3.23.0 ``` </details> ## Additional context This probably needs to be resolved upstrean on the tiledb side, since it seems like a regression from them.
0 条评论