Source code for pinecone.models.indexes.list
"""IndexList wrapper for index listing responses."""
from __future__ import annotations
from collections.abc import Iterator
from typing import Any
from pinecone.models.indexes.index import IndexModel
[docs]
class IndexList:
"""Wrapper around a list of IndexModel with convenience methods."""
[docs]
def __init__(self, indexes: list[IndexModel]) -> None:
self._indexes = indexes
@property
def indexes(self) -> list[IndexModel]:
"""Return the list of indexes."""
return self._indexes
def __iter__(self) -> Iterator[IndexModel]:
return iter(self._indexes)
def __len__(self) -> int:
return len(self._indexes)
def __getitem__(self, index: int) -> IndexModel:
return self._indexes[index]
[docs]
def to_dict(self) -> dict[str, Any]:
"""Return the list as a serializable dict.
Returns:
dict[str, Any]: A dict with a ``"data"`` key containing a list of
index dicts, each produced by :meth:`IndexModel.to_dict`.
Examples:
>>> from pinecone import Pinecone
>>> pc = Pinecone(api_key="your-api-key")
>>> indexes = pc.list_indexes()
>>> indexes.to_dict() # doctest: +SKIP
{'data': [{'name': 'movie-recommendations', ...}, {'name': 'product-search', ...}]}
"""
return {"data": [i.to_dict() for i in self._indexes]}
[docs]
def names(self) -> list[str]:
"""Return a list of index names."""
return [idx.name for idx in self._indexes]
def __repr__(self) -> str:
summaries = ", ".join(
f"<name={idx.name!r}, dim={idx.dimension}, ready={idx.status.ready}>"
for idx in self._indexes
)
return f"IndexList([{summaries}])"