From 1c41d1480703f999cf387bd44a01a83ffb321efb Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Mon, 9 Sep 2024 15:07:51 +0530 Subject: [PATCH 01/25] added couchbase vector store and demo for graphrag --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 557 ++++++++++++++++++ .../couchbase/couchbasedb_demo.py | 259 ++++++++ .../couchbase/graphrag_demo_index.json | 74 +++ graphrag/index/verbs/text/embed/text_embed.py | 2 +- graphrag/vector_stores/__init__.py | 1 + graphrag/vector_stores/couchbasedb.py | 193 ++++++ graphrag/vector_stores/typing.py | 6 +- tests/unit/vector_stores/test_couchbasedb.py | 83 +++ 8 files changed, 1173 insertions(+), 2 deletions(-) create mode 100644 examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb create mode 100644 examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py create mode 100644 examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json create mode 100644 graphrag/vector_stores/couchbasedb.py create mode 100644 tests/unit/vector_stores/test_couchbasedb.py diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb new file mode 100644 index 0000000000..72aa6d8860 --- /dev/null +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -0,0 +1,557 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "fbw833Y2gckr" + }, + "source": [ + "# Tutorial on GraphRAG with Couchbase\n", + "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying structured data. This is useful when you need to search through structured data using natural language queries, leveraging both machine learning and a database." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PaN5siuBgctS" + }, + "source": [ + "# Importing Necessary Libraries\n", + "In this section, we import all the essential Python libraries required to perform various tasks, such as loading data, interacting with Couchbase, and using OpenAI models for generating text and embeddings.\n", + "\n", + "The libraries used include:\n", + "\n", + "asyncio: For running asynchronous tasks.\n", + "logging: For managing logs that help in debugging and monitoring the workflow.\n", + "pandas: For data manipulation and reading from data files.\n", + "tiktoken: For tokenizing text, which is essential for preparing text before passing it to a language model.\n", + "graphrag.query and vector_stores: These are custom libraries that handle entity extraction, searching, and vector storage." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "5tIHss5Rglye" + }, + "outputs": [], + "source": [ + "import asyncio\n", + "import logging\n", + "import os\n", + "import traceback\n", + "from typing import Any, Callable, Dict, List, Union\n", + "\n", + "import pandas as pd\n", + "import tiktoken\n", + "\n", + "from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey\n", + "from graphrag.query.indexer_adapters import (\n", + " read_indexer_covariates,\n", + " read_indexer_entities,\n", + " read_indexer_relationships,\n", + " read_indexer_reports,\n", + " read_indexer_text_units,\n", + ")\n", + "from graphrag.query.input.loaders.dfs import store_entity_semantic_embeddings\n", + "from graphrag.query.llm.oai.chat_openai import ChatOpenAI\n", + "from graphrag.query.llm.oai.embedding import OpenAIEmbedding\n", + "from graphrag.query.llm.oai.typing import OpenaiApiType\n", + "from graphrag.query.structured_search.local_search.mixed_context import (\n", + " LocalSearchMixedContext,\n", + ")\n", + "from graphrag.query.structured_search.local_search.search import LocalSearch\n", + "from graphrag.vector_stores.couchbasedb import CouchbaseVectorStore" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2efKWBqpgcw-" + }, + "source": [ + "# Configuring Environment Variables\n", + "Here, we configure various environment variables that define paths, API keys, and connection strings. These values are essential for connecting to Couchbase and OpenAI, loading data, and defining other constants.\n", + "\n", + "INPUT_DIR: This specifies where to find the data files.\n", + "COUCHBASE_CONNECTION_STRING: Connection details for Couchbase.\n", + "OPENAI_API_KEY: Your OpenAI API key, required for interacting with their models.\n", + "LLM_MODEL: Specifies which OpenAI model to use (e.g., GPT-4).\n", + "EMBEDDING_MODEL: Defines the model used to generate embeddings." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "Cz1PfM7zgc39" + }, + "outputs": [], + "source": [ + "INPUT_DIR = os.getenv(\"INPUT_DIR\")\n", + "COUCHBASE_CONNECTION_STRING = os.getenv(\"COUCHBASE_CONNECTION_STRING\", \"couchbase://localhost\")\n", + "COUCHBASE_USERNAME = os.getenv(\"COUCHBASE_USERNAME\", \"Administrator\")\n", + "COUCHBASE_PASSWORD = os.getenv(\"COUCHBASE_PASSWORD\", \"password\")\n", + "COUCHBASE_BUCKET_NAME = os.getenv(\"COUCHBASE_BUCKET_NAME\", \"graphrag-demo\")\n", + "COUCHBASE_SCOPE_NAME = os.getenv(\"COUCHBASE_SCOPE_NAME\", \"shared\")\n", + "COUCHBASE_VECTOR_INDEX_NAME = os.getenv(\"COUCHBASE_VECTOR_INDEX_NAME\", \"grapghrag_index\")\n", + "OPENAI_API_KEY = os.getenv(\"OPENAI_API_KEY\")\n", + "LLM_MODEL = os.getenv(\"LLM_MODEL\", \"gpt-4o\")\n", + "EMBEDDING_MODEL = os.getenv(\"EMBEDDING_MODEL\", \"text-embedding-ada-002\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VlnoR17Tgc7b" + }, + "source": [ + "# Loading Data from Parquet Files\n", + "In this part, we load data from Parquet files into a dictionary. Each file corresponds to a particular table in the dataset, and we define functions that will handle the loading and processing of each table.\n", + "\n", + "read_indexer_entities, read_indexer_relationships, etc., are custom functions responsible for reading specific parts of the data, such as entities and relationships.\n", + "We use pandas to load the data from the files, and if a file is not found, we log a warning and continue." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "QQTIbPrzgvyS" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:48,630 - __main__ - INFO - Loading data from parquet files\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:48,805 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n", + "2024-09-06 15:34:48,869 - __main__ - INFO - Data loading completed\n" + ] + } + ], + "source": [ + "# Set up logging\n", + "logging.basicConfig(\n", + " level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\"\n", + ")\n", + "logger = logging.getLogger(__name__)\n", + "logger.info(\"Loading data from parquet files\")\n", + "data = {}\n", + "\n", + "# Constants\n", + "COMMUNITY_LEVEL = 2\n", + "\n", + "# Table names\n", + "TABLE_NAMES = {\n", + " \"COMMUNITY_REPORT_TABLE\": \"create_final_community_reports\",\n", + " \"ENTITY_TABLE\": \"create_final_nodes\",\n", + " \"ENTITY_EMBEDDING_TABLE\": \"create_final_entities\",\n", + " \"RELATIONSHIP_TABLE\": \"create_final_relationships\",\n", + " \"COVARIATE_TABLE\": \"create_final_covariates\",\n", + " \"TEXT_UNIT_TABLE\": \"create_final_text_units\",\n", + "}\n", + "\n", + "try:\n", + " data[\"entities\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\")\n", + " entity_embeddings = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet\")\n", + " data[\"entities\"] = read_indexer_entities(data[\"entities\"], entity_embeddings, COMMUNITY_LEVEL)\n", + "except FileNotFoundError:\n", + " logger.warning(\"ENTITY_TABLE file not found. Setting entities to None.\")\n", + " data[\"entities\"] = None\n", + "\n", + "try:\n", + " data[\"relationships\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['RELATIONSHIP_TABLE']}.parquet\")\n", + " data[\"relationships\"] = read_indexer_relationships(data[\"relationships\"])\n", + "except FileNotFoundError:\n", + " logger.warning(\"RELATIONSHIP_TABLE file not found. Setting relationships to None.\")\n", + " data[\"relationships\"] = None\n", + "\n", + "try:\n", + " data[\"covariates\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['COVARIATE_TABLE']}.parquet\")\n", + " data[\"covariates\"] = read_indexer_covariates(data[\"covariates\"])\n", + "except FileNotFoundError:\n", + " logger.warning(\"COVARIATE_TABLE file not found. Setting covariates to None.\")\n", + " data[\"covariates\"] = None\n", + "\n", + "try:\n", + " data[\"reports\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['COMMUNITY_REPORT_TABLE']}.parquet\")\n", + " entity_data = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\")\n", + " data[\"reports\"] = read_indexer_reports(data[\"reports\"], entity_data, COMMUNITY_LEVEL)\n", + "except FileNotFoundError:\n", + " logger.warning(\"COMMUNITY_REPORT_TABLE file not found. Setting reports to None.\")\n", + " data[\"reports\"] = None\n", + "\n", + "try:\n", + " data[\"text_units\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['TEXT_UNIT_TABLE']}.parquet\")\n", + " data[\"text_units\"] = read_indexer_text_units(data[\"text_units\"])\n", + "except FileNotFoundError:\n", + " logger.warning(\"TEXT_UNIT_TABLE file not found. Setting text_units to None.\")\n", + " data[\"text_units\"] = None\n", + "\n", + "logger.info(\"Data loading completed\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "L8AOUrIAgc-8" + }, + "source": [ + "# Setting Up the Couchbase Vector Store\n", + "Couchbase is used here to store the semantic embeddings generated from entities. In this step, we define a method to connect to the Couchbase database using the provided credentials.\n", + "\n", + "The CouchbaseVectorStore allows you to store, retrieve, and manage vector embeddings in Couchbase.\n", + "The connect() method initializes the connection to Couchbase using the provided connection string, username, and password." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "kiYpzj7-gdC4" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:48,892 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-06 15:34:48,898 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-06 15:34:48,966 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-06 15:34:48,970 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + ] + } + ], + "source": [ + "logger.info(\"Setting up CouchbaseVectorStore\")\n", + "\n", + "try:\n", + " description_embedding_store = CouchbaseVectorStore(\n", + " collection_name=\"entity_description_embeddings\",\n", + " bucket_name=COUCHBASE_BUCKET_NAME,\n", + " scope_name=COUCHBASE_SCOPE_NAME,\n", + " index_name=COUCHBASE_VECTOR_INDEX_NAME,\n", + " )\n", + " description_embedding_store.connect(\n", + " connection_string=COUCHBASE_CONNECTION_STRING,\n", + " username=COUCHBASE_USERNAME,\n", + " password=COUCHBASE_PASSWORD,\n", + " )\n", + " logger.info(\"CouchbaseVectorStore setup completed\")\n", + "except Exception as e:\n", + " logger.error(f\"Error setting up CouchbaseVectorStore: {str(e)}\")\n", + " raise" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YJZhrj5egdGt" + }, + "source": [ + "# Setting Up Language Models\n", + "In this section, we configure the language models using OpenAI’s API. We initialize:\n", + "\n", + "ChatOpenAI: This is the language model used to generate responses to natural language queries.\n", + "OpenAIEmbedding: This is the model used to generate vector embeddings for text data.\n", + "tiktoken: This tokenizer is used to split text into tokens, which are essential for sending data to the language model." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "japySJrUgdOG" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:48,984 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-06 15:34:49,594 - __main__ - INFO - LLM and embedding models setup completed\n" + ] + } + ], + "source": [ + "logger.info(\"Setting up LLM and embedding models\")\n", + "\n", + "try:\n", + " llm = ChatOpenAI(\n", + " api_key=OPENAI_API_KEY,\n", + " model=LLM_MODEL,\n", + " api_type=OpenaiApiType.OpenAI,\n", + " max_retries=20,\n", + " )\n", + "\n", + " token_encoder = tiktoken.get_encoding(\"cl100k_base\")\n", + "\n", + " text_embedder = OpenAIEmbedding(\n", + " api_key=OPENAI_API_KEY,\n", + " api_base=None,\n", + " api_type=OpenaiApiType.OpenAI,\n", + " model=EMBEDDING_MODEL,\n", + " deployment_name=EMBEDDING_MODEL,\n", + " max_retries=20,\n", + " )\n", + "\n", + " logger.info(\"LLM and embedding models setup completed\")\n", + "except Exception as e:\n", + " logger.error(f\"Error setting up models: {str(e)}\")\n", + " raise" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "r08V2NuugdSF" + }, + "source": [ + "# Storing Embeddings in Couchbase\n", + "After generating embeddings for the entities, we store them in Couchbase. We use the store_entity_semantic_embeddings function to store the embeddings.\n", + "\n", + "This method checks if the input is either a dictionary or a list and processes it accordingly.\n", + "It uses the Couchbase vector store to save the embeddings, ensuring that entities have the proper 'id' attribute for storage.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "C1wV0RqrgdVl" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:49,609 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-06 15:34:49,612 - graphrag.vector_stores.couchbasedb - INFO - Loading 96 documents into vector storage\n", + "2024-09-06 15:34:49,998 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded 96 out of 96 documents\n", + "2024-09-06 15:34:50,007 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + ] + } + ], + "source": [ + "logger.info(f\"Storing entity embeddings\")\n", + "\n", + "try:\n", + " entities_list = list(data[\"entities\"].values()) if isinstance(data[\"entities\"], dict) else data[\"entities\"]\n", + "\n", + " store_entity_semantic_embeddings(\n", + " entities=entities_list, vectorstore=description_embedding_store\n", + " )\n", + " logger.info(\"Entity semantic embeddings stored successfully\")\n", + "except AttributeError as e:\n", + " logger.error(f\"Error storing entity semantic embeddings: {str(e)}\")\n", + " logger.error(\"Ensure all entities have an 'id' attribute\")\n", + " raise\n", + "except Exception as e:\n", + " logger.error(f\"Error storing entity semantic embeddings: {str(e)}\")\n", + " raise" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f0LSSSJlgdZd" + }, + "source": [ + "# Building the Search Engine\n", + "Now that we have stored the embeddings and set up the models, we create the search engine. This step configures how queries will be processed, how much weight each entity or relationship will have, and how many entities or relationships will be retrieved in a query.\n", + "\n", + "## LocalSearch\n", + "A local search engine that integrates with the language model and vector store to retrieve data.\n", + "## LocalSearchMixedContext\n", + "A context builder that combines different types of context (reports, entities, relationships) and prepares them for querying.\n", + "python\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "8ZiML072gddQ" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:50,037 - __main__ - INFO - Creating search engine\n", + "2024-09-06 15:34:50,042 - __main__ - INFO - Search engine created\n" + ] + } + ], + "source": [ + "logger.info(\"Creating search engine\")\n", + "\n", + "context_builder = LocalSearchMixedContext(\n", + " community_reports=data[\"reports\"],\n", + " text_units=data[\"text_units\"],\n", + " entities=data[\"entities\"],\n", + " relationships=data[\"relationships\"],\n", + " covariates=data[\"covariates\"],\n", + " entity_text_embeddings=description_embedding_store,\n", + " embedding_vectorstore_key=EntityVectorStoreKey.ID,\n", + " text_embedder=text_embedder,\n", + " token_encoder=token_encoder,\n", + ")\n", + "\n", + "local_context_params = {\n", + " \"text_unit_prop\": 0.5,\n", + " \"community_prop\": 0.1,\n", + " \"conversation_history_max_turns\": 5,\n", + " \"conversation_history_user_turns_only\": True,\n", + " \"top_k_mapped_entities\": 10,\n", + " \"top_k_relationships\": 10,\n", + " \"include_entity_rank\": True,\n", + " \"include_relationship_weight\": True,\n", + " \"include_community_rank\": False,\n", + " \"return_candidate_context\": False,\n", + " \"embedding_vectorstore_key\": EntityVectorStoreKey.ID,\n", + " \"max_tokens\": 12_000,\n", + "}\n", + "\n", + "llm_params = {\n", + " \"max_tokens\": 2_000,\n", + " \"temperature\": 0.0,\n", + "}\n", + "\n", + "search_engine = LocalSearch(\n", + " llm=llm,\n", + " context_builder=context_builder,\n", + " token_encoder=token_encoder,\n", + " llm_params=llm_params,\n", + " context_builder_params=local_context_params,\n", + " response_type=\"multiple paragraphs\",\n", + ")\n", + "\n", + "logger.info(\"Search engine created\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "By8DVv-Igdg0" + }, + "source": [ + "# Running a Query\n", + "Finally, we run a query on the search engine. In this case, the query is \"Give me a summary about the story\". This simulates asking the search engine to summarize the entities and relationships stored in Couchbase.\n", + "\n", + "asearch: This is an asynchronous search function that takes a query and returns a response generated by the language model." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "1SvUSrIbgdkh" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-06 15:34:50,067 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-06 15:34:50,075 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-06 15:34:50,606 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-06 15:34:50,617 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-06 15:34:50,628 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-06 15:34:50,636 - graphrag.query.context_builder.community_context - WARNING - Warning: No community records added when building community context.\n", + "2024-09-06 15:34:50,757 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1725617090.0754764. QUERY: Give me a summary about the story\n", + "2024-09-06 15:34:51,781 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-06 15:35:02,055 - __main__ - INFO - Query completed successfully\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: 'Give me a summary about the story'\n", + "Answer: ## Summary of the Story\n", + "\n", + "### Introduction to the Mission\n", + "\n", + "The narrative centers around a team from the Paranormal Military Squad, tasked with a mission at the Dulce military base. This mission, known as Operation: Dulce, involves investigating and responding to an alien signal that has been detected. The team is composed of key figures such as Alex, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, each bringing their unique skills and perspectives to the mission [Data: Entities (21, 47, 50, 68, 27, 4); Relationships (117, 56, 31, 88, 68, 50, 27, 4)].\n", + "\n", + "### The Setting and Initial Discoveries\n", + "\n", + "The story unfolds in the eerie and technologically advanced environment of the Dulce base. The team navigates through various locations within the base, including the server room, where they uncover critical information, and the crash site, where Dr. Jordan Hayes studies alien technology [Data: Entities (50, 44); Relationships (58, 54, 32, 8, 73, 136)]. The concrete hallway marks a significant threshold between the familiar world above and the strangeness beneath, symbolizing the transition into the unknown [Data: Entities (24); Relationships (158)].\n", + "\n", + "### The Cosmic Play and Human Involvement\n", + "\n", + "The narrative describes the human race as unwitting actors in a larger cosmic play, with Earth as the stage. This cosmic play involves the potential for interstellar diplomacy and the intricate process of deciphering alien signals, metaphorically referred to as the \"cosmic ballet\" by Dr. Jordan Hayes [Data: Entities (55, 57, 88); Relationships (197, 153, 35, 12, 79)]. The team feels a profound sense of responsibility as they stand on the precipice of making history by establishing intergalactic contact [Data: Entities (62, 81); Relationships (102, 138, 211)].\n", + "\n", + "### Key Interactions and Relationships\n", + "\n", + "Alex emerges as a key figure, displaying leadership and mentorship qualities as he navigates the complexities of the mission. His interactions with other team members, such as Dr. Jordan Hayes and Sam Rivera, highlight the blend of respect, skepticism, and camaraderie that defines their relationships [Data: Entities (47); Relationships (117, 56, 88, 196, 155, 183)]. Taylor Cruz, another significant member, provides strategic insights and maintains a commanding presence, though not without moments of vulnerability and respect for the gravity of their discoveries [Data: Entities (27); Relationships (31, 46, 43, 32, 148)].\n", + "\n", + "### The Interstellar Pas de Deux\n", + "\n", + "A central theme in the story is the \"interstellar pas de deux,\" a dance-like interaction between the team and the unknown extraterrestrial intelligence. This interaction is marked by attempts at communication and understanding, with the team interpreting signals and uncovering the intent behind the alien messages [Data: Entities (90); Relationships (122, 65, 22, 90, 46)]. The potential for interspecies communication and the broader implications of their discoveries are explored, emphasizing the delicate balance between curiosity and caution [Data: Relationships (199, 201, 205, 210)].\n", + "\n", + "### Conclusion and Legacy\n", + "\n", + "As the team delves deeper into the mission, they confront the existential implications of their discoveries. The narrative captures their collective resolve and the transformation of their roles from mere operatives to guardians of a threshold, poised to redefine humanity's place in the cosmos [Data: Sources (3, 7, 10, 1)]. The story concludes with the team standing on the brink of a new reality, their actions and decisions poised to make history and potentially alter the course of human knowledge and interstellar relations.\n", + "\n", + "In summary, the story of Operation: Dulce is a compelling blend of science fiction and human drama, exploring themes of discovery, responsibility, and the profound impact of first contact with an alien intelligence. The characters' interactions and the unfolding cosmic narrative create a rich tapestry of intrigue and anticipation.\n" + ] + } + ], + "source": [ + "question = \"Give me a summary about the story\"\n", + "logger.info(f\"Running query: '{question}'\")\n", + "\n", + "try:\n", + " result = await search_engine.asearch(question)\n", + " print(f\"Question: '{question}'\")\n", + " print(f\"Answer: {result.response}\")\n", + " logger.info(\"Query completed successfully\")\n", + "except Exception as e:\n", + " logger.error(f\"An error occurred while processing the query: {str(e)}\")\n", + " print(f\"An error occurred while processing the query: {str(e)}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Wb4weYVBgdn_" + }, + "source": [ + "With these steps, the entire process of loading data, setting up models, storing embeddings, and running a search engine query is written out in sequence without using functions. Let me know if any additional modifications are needed!" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py new file mode 100644 index 0000000000..4744383d64 --- /dev/null +++ b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py @@ -0,0 +1,259 @@ +import asyncio +import logging +import os +import traceback +from typing import Any, Callable, Dict, List, Union + +import pandas as pd +import tiktoken + +from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey +from graphrag.query.indexer_adapters import ( + read_indexer_covariates, + read_indexer_entities, + read_indexer_relationships, + read_indexer_reports, + read_indexer_text_units, +) +from graphrag.query.input.loaders.dfs import store_entity_semantic_embeddings +from graphrag.query.llm.oai.chat_openai import ChatOpenAI +from graphrag.query.llm.oai.embedding import OpenAIEmbedding +from graphrag.query.llm.oai.typing import OpenaiApiType +from graphrag.query.structured_search.local_search.mixed_context import ( + LocalSearchMixedContext, +) +from graphrag.query.structured_search.local_search.search import LocalSearch +from graphrag.vector_stores.couchbasedb import CouchbaseVectorStore + +# Set up logging +logging.basicConfig( + level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" +) +logger = logging.getLogger(__name__) + + + +INPUT_DIR = os.getenv("INPUT_DIR") +COUCHBASE_CONNECTION_STRING = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") +COUCHBASE_USERNAME = os.getenv("COUCHBASE_USERNAME", "Administrator") +COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "password") +COUCHBASE_BUCKET_NAME = os.getenv("COUCHBASE_BUCKET_NAME", "graphrag-demo") +COUCHBASE_SCOPE_NAME = os.getenv("COUCHBASE_SCOPE_NAME", "shared") +COUCHBASE_VECTOR_INDEX_NAME = os.getenv("COUCHBASE_VECTOR_INDEX_NAME", "grapghrag_index") +OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") +LLM_MODEL = os.getenv("LLM_MODEL", "gpt-4o") +EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text-embedding-ada-002") + +# Constants +COMMUNITY_LEVEL = 2 + +# Table names +TABLE_NAMES = { + "COMMUNITY_REPORT_TABLE": "create_final_community_reports", + "ENTITY_TABLE": "create_final_nodes", + "ENTITY_EMBEDDING_TABLE": "create_final_entities", + "RELATIONSHIP_TABLE": "create_final_relationships", + "COVARIATE_TABLE": "create_final_covariates", + "TEXT_UNIT_TABLE": "create_final_text_units", +} + + +def load_data() -> Dict[str, Any]: + """Load data from parquet files.""" + logger.info("Loading data from parquet files") + data = {} + + def load_table(table_name: str, read_function: Callable, *args) -> Any: + try: + table_data = pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES[table_name]}.parquet") + return read_function(table_data, *args) + except FileNotFoundError: + logger.warning(f"{table_name} file not found. Setting {table_name.lower()} to None.") + return None + + data["entities"] = load_table("ENTITY_TABLE", read_indexer_entities, + pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet"), + COMMUNITY_LEVEL) + data["relationships"] = load_table("RELATIONSHIP_TABLE", read_indexer_relationships) + data["covariates"] = load_table("COVARIATE_TABLE", read_indexer_covariates) + data["reports"] = load_table("COMMUNITY_REPORT_TABLE", read_indexer_reports, + pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet"), + COMMUNITY_LEVEL) + data["text_units"] = load_table("TEXT_UNIT_TABLE", read_indexer_text_units) + + logger.info("Data loading completed") + return data + + +def setup_vector_store() -> CouchbaseVectorStore: + """Set up and connect to CouchbaseVectorStore.""" + logger.info("Setting up CouchbaseVectorStore") + try: + description_embedding_store = CouchbaseVectorStore( + collection_name="entity_description_embeddings", + bucket_name=COUCHBASE_BUCKET_NAME, + scope_name=COUCHBASE_SCOPE_NAME, + index_name=COUCHBASE_VECTOR_INDEX_NAME, + ) + description_embedding_store.connect( + connection_string=COUCHBASE_CONNECTION_STRING, + username=COUCHBASE_USERNAME, + password=COUCHBASE_PASSWORD, + ) + logger.info("CouchbaseVectorStore setup completed") + except Exception as e: + logger.error(f"Error setting up CouchbaseVectorStore: {str(e)}") + raise + + return description_embedding_store + + +def setup_models() -> Dict[str, Any]: + """Set up LLM and embedding models.""" + logger.info("Setting up LLM and embedding models") + try: + llm = ChatOpenAI( + api_key=OPENAI_API_KEY, + model=LLM_MODEL, + api_type=OpenaiApiType.OpenAI, + max_retries=20, + ) + + token_encoder = tiktoken.get_encoding("cl100k_base") + + text_embedder = OpenAIEmbedding( + api_key=OPENAI_API_KEY, + api_base=None, + api_type=OpenaiApiType.OpenAI, + model=EMBEDDING_MODEL, + deployment_name=EMBEDDING_MODEL, + max_retries=20, + ) + + logger.info("LLM and embedding models setup completed") + except Exception as e: + logger.error(f"Error setting up models: {str(e)}") + raise + + return { + "llm": llm, + "token_encoder": token_encoder, + "text_embedder": text_embedder, + } + +def store_embeddings( + entities: Union[Dict[str, Any], List[Any]], vector_store: CouchbaseVectorStore +) -> None: + """Store entity semantic embeddings in Couchbase.""" + logger.info(f"Storing entity embeddings") + + try: + if isinstance(entities, dict): + entities_list = list(entities.values()) + elif isinstance(entities, list): + entities_list = entities + else: + raise TypeError("Entities must be either a list or a dictionary") + + store_entity_semantic_embeddings( + entities=entities_list, vectorstore=vector_store + ) + logger.info("Entity semantic embeddings stored successfully") + except AttributeError as e: + logger.error(f"Error storing entity semantic embeddings: {str(e)}") + logger.error("Ensure all entities have an 'id' attribute") + raise + except Exception as e: + logger.error(f"Error storing entity semantic embeddings: {str(e)}") + raise + + +def create_search_engine( + data: Dict[str, Any], models: Dict[str, Any], vector_store: CouchbaseVectorStore +) -> LocalSearch: + """Create and configure the search engine.""" + logger.info("Creating search engine") + context_builder = LocalSearchMixedContext( + community_reports=data["reports"], + text_units=data["text_units"], + entities=data["entities"], + relationships=data["relationships"], + covariates=data["covariates"], + entity_text_embeddings=vector_store, + embedding_vectorstore_key=EntityVectorStoreKey.ID, + text_embedder=models["text_embedder"], + token_encoder=models["token_encoder"], + ) + + local_context_params = { + "text_unit_prop": 0.5, + "community_prop": 0.1, + "conversation_history_max_turns": 5, + "conversation_history_user_turns_only": True, + "top_k_mapped_entities": 10, + "top_k_relationships": 10, + "include_entity_rank": True, + "include_relationship_weight": True, + "include_community_rank": False, + "return_candidate_context": False, + "embedding_vectorstore_key": EntityVectorStoreKey.ID, + "max_tokens": 12_000, + } + + llm_params = { + "max_tokens": 2_000, + "temperature": 0.0, + } + + search_engine = LocalSearch( + llm=models["llm"], + context_builder=context_builder, + token_encoder=models["token_encoder"], + llm_params=llm_params, + context_builder_params=local_context_params, + response_type="multiple paragraphs", + ) + logger.info("Search engine created") + return search_engine + + +async def run_query(search_engine: LocalSearch, question: str) -> None: + """Run a query using the search engine.""" + try: + logger.info(f"Running query: {question}") + result = await search_engine.asearch(question) + print(f"Question: {question}") + print(f"Answer: {result.response}") + logger.info("Query completed successfully") + except Exception as e: + logger.error(f"An error occurred while processing the query: {str(e)}") + print(f"An error occurred while processing the query: {str(e)}") + + +async def main() -> None: + """Main function to orchestrate the demo.""" + try: + logger.info("Starting Couchbase demo") + data = load_data() + vector_store = setup_vector_store() + models = setup_models() + + if data["entities"]: + store_embeddings(data["entities"], vector_store) + else: + logger.warning("No entities found to store in Couchbase") + + search_engine = create_search_engine(data, models, vector_store) + + question = "Give me a summary about the story" + await run_query(search_engine, question) + + logger.info("Couchbase demo completed") + except Exception as e: + logger.error(f"An error occurred: {str(e)}") + logger.error(f"Traceback: {traceback.format_exc()}") + print(f"An error occurred: {str(e)}") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json b/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json new file mode 100644 index 0000000000..2ee82e8572 --- /dev/null +++ b/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json @@ -0,0 +1,74 @@ +{ + "type": "fulltext-index", + "name": "grapghrag_index", + "uuid": "1797bd6bd434cdd2", + "sourceType": "gocbcore", + "sourceName": "graphrag-demo", + "sourceUUID": "4bbae514001eaf402caed43976ec4120", + "planParams": { + "maxPartitionsPerPIndex": 64, + "indexPartitions": 16 + }, + "params": { + "doc_config": { + "docid_prefix_delim": "", + "docid_regexp": "", + "mode": "scope.collection.type_field", + "type_field": "type" + }, + "mapping": { + "analysis": {}, + "default_analyzer": "standard", + "default_datetime_parser": "dateTimeOptional", + "default_field": "_all", + "default_mapping": { + "dynamic": true, + "enabled": false + }, + "default_type": "_default", + "docvalues_dynamic": false, + "index_dynamic": true, + "store_dynamic": false, + "type_field": "_type", + "types": { + "shared.entity_description_embeddings": { + "dynamic": true, + "enabled": true, + "properties": { + "embedding": { + "dynamic": false, + "enabled": true, + "fields": [ + { + "dims": 1536, + "index": true, + "name": "embedding", + "similarity": "dot_product", + "type": "vector", + "vector_index_optimized_for": "recall" + } + ] + }, + "text": { + "dynamic": false, + "enabled": true, + "fields": [ + { + "index": true, + "name": "text", + "store": true, + "type": "text" + } + ] + } + } + } + } + }, + "store": { + "indexType": "scorch", + "segmentVersion": 16 + } + }, + "sourceParams": {} +} \ No newline at end of file diff --git a/graphrag/index/verbs/text/embed/text_embed.py b/graphrag/index/verbs/text/embed/text_embed.py index 76ac97d76f..5451135a4c 100644 --- a/graphrag/index/verbs/text/embed/text_embed.py +++ b/graphrag/index/verbs/text/embed/text_embed.py @@ -75,7 +75,7 @@ async def text_embed( max_tokens: !ENV ${GRAPHRAG_MAX_TOKENS:6000} # The max tokens to use for openai organization: !ENV ${GRAPHRAG_OPENAI_ORGANIZATION} # The organization to use for openai vector_store: # The optional configuration for the vector store - type: lancedb # The type of vector store to use, available options are: azure_ai_search, lancedb + type: lancedb # The type of vector store to use, available options are: azure_ai_search, lancedb, couchbase <...> ``` """ diff --git a/graphrag/vector_stores/__init__.py b/graphrag/vector_stores/__init__.py index d4c11760aa..67b7239832 100644 --- a/graphrag/vector_stores/__init__.py +++ b/graphrag/vector_stores/__init__.py @@ -11,6 +11,7 @@ __all__ = [ "AzureAISearch", "BaseVectorStore", + "CouchbaseVectorStore", "LanceDBVectorStore", "VectorStoreDocument", "VectorStoreFactory", diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py new file mode 100644 index 0000000000..e2625ad3dd --- /dev/null +++ b/graphrag/vector_stores/couchbasedb.py @@ -0,0 +1,193 @@ +"""Couchbase vector store implementation for GraphRAG.""" + +import json +import logging +from typing import Any + +from couchbase.auth import PasswordAuthenticator +from couchbase.cluster import Cluster +from couchbase.exceptions import DocumentExistsException +from couchbase.options import ClusterOptions, SearchOptions +from couchbase.search import SearchRequest +from couchbase.vector_search import VectorQuery, VectorSearch + +from graphrag.model.types import TextEmbedder + +from .base import ( + DEFAULT_VECTOR_SIZE, + BaseVectorStore, + VectorStoreDocument, + VectorStoreSearchResult, +) + +# Set up logger +logger = logging.getLogger(__name__) + + +class CouchbaseVectorStore(BaseVectorStore): + """The Couchbase vector storage implementation.""" + + def __init__( + self, + collection_name: str, + bucket_name: str, + scope_name: str, + index_name: str, + text_key: str = "text", + embedding_key: str = "embedding", + scoped_index: bool = True, + **kwargs: Any, + ): + super().__init__(collection_name, **kwargs) + self.bucket_name = bucket_name + self.scope_name = scope_name + self.index_name = index_name + self.text_key = text_key + self.embedding_key = embedding_key + self.scoped_index = scoped_index + self.vector_size = kwargs.get("vector_size", DEFAULT_VECTOR_SIZE) + logger.debug( + f"Initialized CouchbaseVectorStore with collection: {collection_name}, bucket: {bucket_name}, scope: {scope_name}, index: {index_name}" + ) + + def connect(self, **kwargs: Any) -> None: + """Connect to the Couchbase vector store.""" + connection_string = kwargs.get("connection_string") + username = kwargs.get("username") + password = kwargs.get("password") + + if not isinstance(username, str) or not isinstance(password, str): + logger.error("Username and password must be strings") + raise TypeError("Username and password must be strings") + if not isinstance(connection_string, str): + logger.error("Connection string must be a string") + raise TypeError("Connection string must be a string") + + logger.info(f"Connecting to Couchbase at {connection_string}") + auth = PasswordAuthenticator(username, password) + options = ClusterOptions(auth) + cluster = Cluster(connection_string, options) + self.db_connection = cluster + self.bucket = cluster.bucket(self.bucket_name) + self.scope = self.bucket.scope(self.scope_name) + self.document_collection = self.scope.collection(self.collection_name) + logger.info("Successfully connected to Couchbase") + + def load_documents( + self, documents: list[VectorStoreDocument], overwrite: bool = True + ) -> None: + """Load documents into vector storage.""" + logger.info(f"Loading {len(documents)} documents into vector storage") + batch = [ + { + "id": doc.id, + self.text_key: doc.text, + self.embedding_key: doc.vector, + "attributes": json.dumps(doc.attributes), + } + for doc in documents + if doc.vector is not None + ] + if batch: + successful_loads = 0 + for doc in batch: + try: + if overwrite: + self.document_collection.upsert(doc["id"], doc) + else: + self.document_collection.insert(doc["id"], doc) + successful_loads += 1 + except DocumentExistsException: + if not overwrite: + logger.warning( + f"Document with id {doc['id']} already exists and overwrite is set to False" + ) + except Exception as e: + logger.error( + f"Error occurred while loading document {doc['id']}: {str(e)}" + ) + + logger.info( + f"Successfully loaded {successful_loads} out of {len(batch)} documents" + ) + else: + logger.warning("No valid documents to load") + + def similarity_search_by_text( + self, text: str, text_embedder: TextEmbedder, k: int = 10, **kwargs: Any + ) -> list[VectorStoreSearchResult]: + """Perform ANN search by text.""" + logger.info(f"Performing similarity search by text with k={k}") + query_embedding = text_embedder(text) + if query_embedding: + return self.similarity_search_by_vector(query_embedding, k) + logger.warning("Failed to generate embedding for the query text") + return [] + + def similarity_search_by_vector( + self, query_embedding: list[float], k: int = 10, **kwargs: Any + ) -> list[VectorStoreSearchResult]: + """Perform ANN search by vector.""" + logger.info(f"Performing similarity search by vector with k={k}") + + search_req = SearchRequest.create( + VectorSearch.from_vector_query( + VectorQuery( + self.embedding_key, + query_embedding, + k, + ) + ) + ) + + if self.scoped_index: + search_iter = self.scope.search( + self.index_name, + search_req, + SearchOptions( + limit=k, + fields=["*"], + ), + ) + else: + search_iter = self.db_connection.search( + index=self.index_name, + request=search_req, + options=SearchOptions(limit=k, fields=["*"]), + ) + + results = [] + for row in search_iter.rows(): + text = row.fields.pop(self.text_key, "") + metadata = self._format_metadata(row.fields) + score = row.score + doc = VectorStoreDocument( + id=row.id, + text=text, + vector=row.fields.get(self.embedding_key), + attributes=metadata, + ) + results.append(VectorStoreSearchResult(document=doc, score=score)) + + logger.info(f"Found {len(results)} results in similarity search by vector") + return results + + def filter_by_id(self, include_ids: list[str] | list[int]) -> Any: + """Build a query filter to filter documents by id.""" + id_filter = ",".join([f"{id!s}" for id in include_ids]) + logger.debug(f"Created filter by ID: {id_filter}") + return f"search.in(id, '{id_filter}', ',')" + + def _format_metadata(self, row_fields: dict[str, Any]) -> dict[str, Any]: + """Format the metadata from the Couchbase Search API. + + Extract and reorganize metadata fields from the Couchbase Search API response. + """ + metadata = {} + for key, value in row_fields.items(): + if key.startswith("attributes."): + new_key = key.split("attributes.")[-1] + metadata[new_key] = value + else: + metadata[key] = value + return metadata diff --git a/graphrag/vector_stores/typing.py b/graphrag/vector_stores/typing.py index 0b5a5cd195..82ae7f8d28 100644 --- a/graphrag/vector_stores/typing.py +++ b/graphrag/vector_stores/typing.py @@ -7,6 +7,7 @@ from typing import ClassVar from .azure_ai_search import AzureAISearch +from .couchbasedb import CouchbaseVectorStore from .lancedb import LanceDBVectorStore @@ -15,6 +16,7 @@ class VectorStoreType(str, Enum): LanceDB = "lancedb" AzureAISearch = "azure_ai_search" + Couchbase = "couchbase" class VectorStoreFactory: @@ -30,13 +32,15 @@ def register(cls, vector_store_type: str, vector_store: type): @classmethod def get_vector_store( cls, vector_store_type: VectorStoreType | str, kwargs: dict - ) -> LanceDBVectorStore | AzureAISearch: + ) -> LanceDBVectorStore | AzureAISearch | CouchbaseVectorStore: """Get the vector store type from a string.""" match vector_store_type: case VectorStoreType.LanceDB: return LanceDBVectorStore(**kwargs) case VectorStoreType.AzureAISearch: return AzureAISearch(**kwargs) + case VectorStoreType.Couchbase: + return CouchbaseVectorStore(**kwargs) case _: if vector_store_type in cls.vector_store_types: return cls.vector_store_types[vector_store_type](**kwargs) diff --git a/tests/unit/vector_stores/test_couchbasedb.py b/tests/unit/vector_stores/test_couchbasedb.py new file mode 100644 index 0000000000..9284609243 --- /dev/null +++ b/tests/unit/vector_stores/test_couchbasedb.py @@ -0,0 +1,83 @@ + +import unittest +from unittest.mock import MagicMock, patch + +from graphrag.model.types import VectorStoreDocument, VectorStoreSearchResult +from graphrag.vector_stores.couchbasedb import CouchbaseVectorStore + + +class TestCouchbaseVectorStore(unittest.IsolatedAsyncioTestCase): + def setUp(self): + self.vector_store = CouchbaseVectorStore( + collection_name="test_collection", + bucket_name="test_bucket", + scope_name="test_scope", + index_name="test_index" + ) + self.vector_store.db_connection = MagicMock() + self.vector_store.document_collection = MagicMock() + self.vector_store.scope = MagicMock() + + async def test_connect(self): + with patch('graphrag.vector_stores.couchbasedb.Cluster') as mock_cluster: + self.vector_store.connect( + connection_string="couchbase://localhost", + username="test_user", + password="test_password" + ) + mock_cluster.assert_called_once() + self.assertIsNotNone(self.vector_store.db_connection) + + async def test_load_documents(self): + documents = [ + VectorStoreDocument(id="1", text="Test 1", vector=[0.1, 0.2, 0.3], attributes={"attr": "value1"}), + VectorStoreDocument(id="2", text="Test 2", vector=[0.4, 0.5, 0.6], attributes={"attr": "value2"}) + ] + self.vector_store.load_documents(documents) + self.assertEqual(self.vector_store.document_collection.upsert.call_count, 2) + + async def test_similarity_search_by_text(self): + mock_text_embedder = MagicMock(return_value=[0.1, 0.2, 0.3]) + with patch.object(self.vector_store, 'similarity_search_by_vector') as mock_search: + mock_search.return_value = [ + VectorStoreSearchResult( + document=VectorStoreDocument(id="1", text="Test 1", vector=[0.1, 0.2, 0.3]), + score=0.9 + ) + ] + results = self.vector_store.similarity_search_by_text("test query", mock_text_embedder, k=1) + self.assertEqual(len(results), 1) + mock_search.assert_called_once_with([0.1, 0.2, 0.3], 1) + + async def test_similarity_search_by_vector(self): + mock_search_iter = MagicMock() + mock_search_iter.rows.return_value = [ + MagicMock(id="1", fields={"text": "Test 1", "embedding": [0.1, 0.2, 0.3]}, score=0.9) + ] + self.vector_store.scope.search.return_value = mock_search_iter + + results = self.vector_store.similarity_search_by_vector([0.1, 0.2, 0.3], k=1) + self.assertEqual(len(results), 1) + self.assertEqual(results[0].document.id, "1") + self.assertEqual(results[0].document.text, "Test 1") + self.assertEqual(results[0].score, 0.9) + + def test_filter_by_id(self): + filter_query = self.vector_store.filter_by_id(["1", "2", "3"]) + self.assertEqual(filter_query, "search.in(id, '1,2,3', ',')") + + def test_format_metadata(self): + row_fields = { + "attributes.attr1": "value1", + "attributes.attr2": "value2", + "other_field": "other_value" + } + metadata = self.vector_store._format_metadata(row_fields) + self.assertEqual(metadata, { + "attr1": "value1", + "attr2": "value2", + "other_field": "other_value" + }) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file From 7c2061aef3e1abafb4f0e5428a1645207859ec26 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Tue, 10 Sep 2024 14:25:49 +0530 Subject: [PATCH 02/25] fixed typos and updated test file --- .../couchbase/couchbasedb_demo.py | 2 +- tests/unit/vector_stores/__init__.py | 0 tests/unit/vector_stores/test_couchbasedb.py | 116 ++++++++---------- 3 files changed, 55 insertions(+), 63 deletions(-) create mode 100644 tests/unit/vector_stores/__init__.py diff --git a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py index 4744383d64..c8f657b4c4 100644 --- a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py +++ b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py @@ -39,7 +39,7 @@ COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "password") COUCHBASE_BUCKET_NAME = os.getenv("COUCHBASE_BUCKET_NAME", "graphrag-demo") COUCHBASE_SCOPE_NAME = os.getenv("COUCHBASE_SCOPE_NAME", "shared") -COUCHBASE_VECTOR_INDEX_NAME = os.getenv("COUCHBASE_VECTOR_INDEX_NAME", "grapghrag_index") +COUCHBASE_VECTOR_INDEX_NAME = os.getenv("COUCHBASE_VECTOR_INDEX_NAME", "graphrag_index") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") LLM_MODEL = os.getenv("LLM_MODEL", "gpt-4o") EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text-embedding-ada-002") diff --git a/tests/unit/vector_stores/__init__.py b/tests/unit/vector_stores/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/unit/vector_stores/test_couchbasedb.py b/tests/unit/vector_stores/test_couchbasedb.py index 9284609243..2c8487330b 100644 --- a/tests/unit/vector_stores/test_couchbasedb.py +++ b/tests/unit/vector_stores/test_couchbasedb.py @@ -1,83 +1,75 @@ - +# Constants for Couchbase connection +import os import unittest -from unittest.mock import MagicMock, patch -from graphrag.model.types import VectorStoreDocument, VectorStoreSearchResult +from graphrag.vector_stores.base import VectorStoreDocument, VectorStoreSearchResult from graphrag.vector_stores.couchbasedb import CouchbaseVectorStore +COUCHBASE_CONNECTION_STRING = os.environ.get("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") +COUCHBASE_USERNAME = os.environ.get("COUCHBASE_USERNAME", "") +COUCHBASE_PASSWORD = os.environ.get("COUCHBASE_PASSWORD", "") +BUCKET_NAME = os.environ.get("COUCHBASE_BUCKET_NAME", "graphrag-demo") +SCOPE_NAME = os.environ.get("COUCHBASE_SCOPE_NAME", "shared") +COLLECTION_NAME = os.environ.get("COUCHBASE_COLLECTION_NAME", "entity_description_embeddings") +INDEX_NAME = os.environ.get("COUCHBASE_INDEX_NAME", "graphrag_index") + -class TestCouchbaseVectorStore(unittest.IsolatedAsyncioTestCase): - def setUp(self): - self.vector_store = CouchbaseVectorStore( - collection_name="test_collection", - bucket_name="test_bucket", - scope_name="test_scope", - index_name="test_index" +class TestCouchbaseVectorStore(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.vector_store = CouchbaseVectorStore( + collection_name=COLLECTION_NAME, + bucket_name=BUCKET_NAME, + scope_name=SCOPE_NAME, + index_name=INDEX_NAME + ) + cls.vector_store.connect( + connection_string=COUCHBASE_CONNECTION_STRING, + username=COUCHBASE_USERNAME, + password=COUCHBASE_PASSWORD ) - self.vector_store.db_connection = MagicMock() - self.vector_store.document_collection = MagicMock() - self.vector_store.scope = MagicMock() - async def test_connect(self): - with patch('graphrag.vector_stores.couchbasedb.Cluster') as mock_cluster: - self.vector_store.connect( - connection_string="couchbase://localhost", - username="test_user", - password="test_password" - ) - mock_cluster.assert_called_once() - self.assertIsNotNone(self.vector_store.db_connection) + @classmethod + def tearDownClass(cls): + # Clean up the test collection + query = f"DELETE FROM `{BUCKET_NAME}`.`{SCOPE_NAME}`.`{COLLECTION_NAME}`" + cls.vector_store.db_connection.query(query).execute() - async def test_load_documents(self): + def test_load_documents(self): documents = [ VectorStoreDocument(id="1", text="Test 1", vector=[0.1, 0.2, 0.3], attributes={"attr": "value1"}), VectorStoreDocument(id="2", text="Test 2", vector=[0.4, 0.5, 0.6], attributes={"attr": "value2"}) ] self.vector_store.load_documents(documents) - self.assertEqual(self.vector_store.document_collection.upsert.call_count, 2) - async def test_similarity_search_by_text(self): - mock_text_embedder = MagicMock(return_value=[0.1, 0.2, 0.3]) - with patch.object(self.vector_store, 'similarity_search_by_vector') as mock_search: - mock_search.return_value = [ - VectorStoreSearchResult( - document=VectorStoreDocument(id="1", text="Test 1", vector=[0.1, 0.2, 0.3]), - score=0.9 - ) - ] - results = self.vector_store.similarity_search_by_text("test query", mock_text_embedder, k=1) - self.assertEqual(len(results), 1) - mock_search.assert_called_once_with([0.1, 0.2, 0.3], 1) + # Verify documents were loaded + for doc in documents: + result = self.vector_store.document_collection.get(doc.id) + assert result.content_as[dict] is not None + assert result.content_as[dict]["text"] == doc.text - async def test_similarity_search_by_vector(self): - mock_search_iter = MagicMock() - mock_search_iter.rows.return_value = [ - MagicMock(id="1", fields={"text": "Test 1", "embedding": [0.1, 0.2, 0.3]}, score=0.9) - ] - self.vector_store.scope.search.return_value = mock_search_iter + def test_similarity_search_by_vector(self): + # Ensure we have some documents in the store + self.test_load_documents() - results = self.vector_store.similarity_search_by_vector([0.1, 0.2, 0.3], k=1) - self.assertEqual(len(results), 1) - self.assertEqual(results[0].document.id, "1") - self.assertEqual(results[0].document.text, "Test 1") - self.assertEqual(results[0].score, 0.9) + results = self.vector_store.similarity_search_by_vector([0.1, 0.2, 0.3], k=2) + assert len(results) == 2 + assert isinstance(results[0], VectorStoreSearchResult) + assert isinstance(results[0].document, VectorStoreDocument) + + def test_similarity_search_by_text(self): + # Mock text embedder function + def mock_text_embedder(text): + return [0.1, 0.2, 0.3] + + results = self.vector_store.similarity_search_by_text("test query", mock_text_embedder, k=2) + assert len(results) == 2 + assert isinstance(results[0], VectorStoreSearchResult) + assert isinstance(results[0].document, VectorStoreDocument) def test_filter_by_id(self): filter_query = self.vector_store.filter_by_id(["1", "2", "3"]) - self.assertEqual(filter_query, "search.in(id, '1,2,3', ',')") - - def test_format_metadata(self): - row_fields = { - "attributes.attr1": "value1", - "attributes.attr2": "value2", - "other_field": "other_value" - } - metadata = self.vector_store._format_metadata(row_fields) - self.assertEqual(metadata, { - "attr1": "value1", - "attr2": "value2", - "other_field": "other_value" - }) + assert filter_query == "search.in(id, '1,2,3', ',')" -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() \ No newline at end of file From bb4afe1971b2d57609fb49815c2dcd72f58bbb37 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Tue, 10 Sep 2024 14:47:39 +0530 Subject: [PATCH 03/25] tests are working now --- tests/unit/vector_stores/.env.sample | 8 ++++ tests/unit/vector_stores/test_couchbasedb.py | 42 ++++++++++++++------ 2 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 tests/unit/vector_stores/.env.sample diff --git a/tests/unit/vector_stores/.env.sample b/tests/unit/vector_stores/.env.sample new file mode 100644 index 0000000000..378ead64ca --- /dev/null +++ b/tests/unit/vector_stores/.env.sample @@ -0,0 +1,8 @@ +COUCHBASE_CONNECTION_STRING= +COUCHBASE_USERNAME= +COUCHBASE_PASSWORD= +COUCHBASE_BUCKET_NAME= +COUCHBASE_SCOPE_NAME= +COUCHBASE_COLLECTION_NAME= +COUCHBASE_INDEX_NAME= +VECTOR_SIZE= diff --git a/tests/unit/vector_stores/test_couchbasedb.py b/tests/unit/vector_stores/test_couchbasedb.py index 2c8487330b..d17a703432 100644 --- a/tests/unit/vector_stores/test_couchbasedb.py +++ b/tests/unit/vector_stores/test_couchbasedb.py @@ -1,18 +1,23 @@ # Constants for Couchbase connection import os +import time import unittest +from dotenv import load_dotenv + from graphrag.vector_stores.base import VectorStoreDocument, VectorStoreSearchResult from graphrag.vector_stores.couchbasedb import CouchbaseVectorStore -COUCHBASE_CONNECTION_STRING = os.environ.get("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") -COUCHBASE_USERNAME = os.environ.get("COUCHBASE_USERNAME", "") -COUCHBASE_PASSWORD = os.environ.get("COUCHBASE_PASSWORD", "") -BUCKET_NAME = os.environ.get("COUCHBASE_BUCKET_NAME", "graphrag-demo") -SCOPE_NAME = os.environ.get("COUCHBASE_SCOPE_NAME", "shared") -COLLECTION_NAME = os.environ.get("COUCHBASE_COLLECTION_NAME", "entity_description_embeddings") -INDEX_NAME = os.environ.get("COUCHBASE_INDEX_NAME", "graphrag_index") +load_dotenv() +COUCHBASE_CONNECTION_STRING = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") +COUCHBASE_USERNAME = os.getenv("COUCHBASE_USERNAME", "") +COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "") +BUCKET_NAME = os.getenv("COUCHBASE_BUCKET_NAME", "graphrag-demo") +SCOPE_NAME = os.getenv("COUCHBASE_SCOPE_NAME", "shared") +COLLECTION_NAME = os.getenv("COUCHBASE_COLLECTION_NAME", "entity_description_embeddings") +INDEX_NAME = os.getenv("COUCHBASE_INDEX_NAME", "graphrag_index") +VECTOR_SIZE = int(os.getenv("VECTOR_SIZE", 1536)) class TestCouchbaseVectorStore(unittest.TestCase): @classmethod @@ -21,7 +26,8 @@ def setUpClass(cls): collection_name=COLLECTION_NAME, bucket_name=BUCKET_NAME, scope_name=SCOPE_NAME, - index_name=INDEX_NAME + index_name=INDEX_NAME, + vector_size=VECTOR_SIZE ) cls.vector_store.connect( connection_string=COUCHBASE_CONNECTION_STRING, @@ -37,11 +43,14 @@ def tearDownClass(cls): def test_load_documents(self): documents = [ - VectorStoreDocument(id="1", text="Test 1", vector=[0.1, 0.2, 0.3], attributes={"attr": "value1"}), - VectorStoreDocument(id="2", text="Test 2", vector=[0.4, 0.5, 0.6], attributes={"attr": "value2"}) + VectorStoreDocument(id="1", text="Test 1", vector=[0.1] * VECTOR_SIZE, attributes={"attr": "value1"}), + VectorStoreDocument(id="2", text="Test 2", vector=[0.2] * VECTOR_SIZE, attributes={"attr": "value2"}) ] self.vector_store.load_documents(documents) + # Add a sleep to allow time for indexing + time.sleep(2) + # Verify documents were loaded for doc in documents: result = self.vector_store.document_collection.get(doc.id) @@ -52,7 +61,10 @@ def test_similarity_search_by_vector(self): # Ensure we have some documents in the store self.test_load_documents() - results = self.vector_store.similarity_search_by_vector([0.1, 0.2, 0.3], k=2) + # Add a sleep to allow time for indexing + time.sleep(2) + + results = self.vector_store.similarity_search_by_vector([0.1] * VECTOR_SIZE, k=2) assert len(results) == 2 assert isinstance(results[0], VectorStoreSearchResult) assert isinstance(results[0].document, VectorStoreDocument) @@ -60,7 +72,13 @@ def test_similarity_search_by_vector(self): def test_similarity_search_by_text(self): # Mock text embedder function def mock_text_embedder(text): - return [0.1, 0.2, 0.3] + return [0.1] * VECTOR_SIZE + + # Ensure we have some documents in the store + self.test_load_documents() + + # Add a sleep to allow time for indexing + time.sleep(2) results = self.vector_store.similarity_search_by_text("test query", mock_text_embedder, k=2) assert len(results) == 2 From a40ac66a3a1333670fd4da453e0afaa6d6f84071 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Wed, 11 Sep 2024 16:36:55 +0530 Subject: [PATCH 04/25] added fields in kwrags, loaaded env vars from .env file, sampled data from tables --- .../community_contrib/couchbase/.env.sample | 10 + .../couchbase/GraphRAG_with_Couchbase.ipynb | 215 +++++++++++++----- .../couchbase/couchbasedb_demo.py | 21 +- graphrag/vector_stores/couchbasedb.py | 6 +- 4 files changed, 183 insertions(+), 69 deletions(-) create mode 100644 examples_notebooks/community_contrib/couchbase/.env.sample diff --git a/examples_notebooks/community_contrib/couchbase/.env.sample b/examples_notebooks/community_contrib/couchbase/.env.sample new file mode 100644 index 0000000000..4bafd451af --- /dev/null +++ b/examples_notebooks/community_contrib/couchbase/.env.sample @@ -0,0 +1,10 @@ +INPUT_DIR="" +COUCHBASE_CONNECTION_STRING="" +COUCHBASE_USERNAME="" +COUCHBASE_PASSWORD="" +COUCHBASE_BUCKET_NAME="" +COUCHBASE_SCOPE_NAME="" +COUCHBASE_VECTOR_INDEX_NAME="" +OPENAI_API_KEY="" +LLM_MODEL="" +EMBEDDING_MODEL="" \ No newline at end of file diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 72aa6d8860..0933eb70ba 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -36,14 +36,13 @@ }, "outputs": [], "source": [ - "import asyncio\n", "import logging\n", "import os\n", - "import traceback\n", "from typing import Any, Callable, Dict, List, Union\n", "\n", "import pandas as pd\n", "import tiktoken\n", + "from dotenv import load_dotenv\n", "\n", "from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey\n", "from graphrag.query.indexer_adapters import (\n", @@ -73,11 +72,13 @@ "# Configuring Environment Variables\n", "Here, we configure various environment variables that define paths, API keys, and connection strings. These values are essential for connecting to Couchbase and OpenAI, loading data, and defining other constants.\n", "\n", - "INPUT_DIR: This specifies where to find the data files.\n", - "COUCHBASE_CONNECTION_STRING: Connection details for Couchbase.\n", - "OPENAI_API_KEY: Your OpenAI API key, required for interacting with their models.\n", - "LLM_MODEL: Specifies which OpenAI model to use (e.g., GPT-4).\n", - "EMBEDDING_MODEL: Defines the model used to generate embeddings." + "- INPUT_DIR: This specifies the directory path where the input data files are located. These files typically contain the raw data that will be processed and analyzed in the notebook.\n", + "- COUCHBASE_CONNECTION_STRING: This is the connection string used to establish a connection with the Couchbase database. It usually includes the protocol and host information (e.g., \"couchbase://localhost\").\n", + "- OPENAI_API_KEY: This is your personal API key for accessing OpenAI's services. It's required for authentication when making requests to OpenAI's API, allowing you to use their language models and other AI services.\n", + "- LLM_MODEL: This variable specifies which Large Language Model (LLM) from OpenAI to use for text generation tasks. For example, it could be set to \"gpt-4\" for using GPT-4, or \"gpt-3.5-turbo\" for using ChatGPT.\n", + "- EMBEDDING_MODEL: This defines the specific model used for generating text embeddings. Text embeddings are vector representations of text that capture semantic meaning. For OpenAI, a common choice is \"text-embedding-ada-002\".\n", + "\n", + "These environment variables are crucial for the notebook's functionality, as they provide necessary configuration details for data access, database connections, and AI model interactions." ] }, { @@ -88,13 +89,15 @@ }, "outputs": [], "source": [ + "load_dotenv()\n", + "\n", "INPUT_DIR = os.getenv(\"INPUT_DIR\")\n", "COUCHBASE_CONNECTION_STRING = os.getenv(\"COUCHBASE_CONNECTION_STRING\", \"couchbase://localhost\")\n", "COUCHBASE_USERNAME = os.getenv(\"COUCHBASE_USERNAME\", \"Administrator\")\n", "COUCHBASE_PASSWORD = os.getenv(\"COUCHBASE_PASSWORD\", \"password\")\n", "COUCHBASE_BUCKET_NAME = os.getenv(\"COUCHBASE_BUCKET_NAME\", \"graphrag-demo\")\n", "COUCHBASE_SCOPE_NAME = os.getenv(\"COUCHBASE_SCOPE_NAME\", \"shared\")\n", - "COUCHBASE_VECTOR_INDEX_NAME = os.getenv(\"COUCHBASE_VECTOR_INDEX_NAME\", \"grapghrag_index\")\n", + "COUCHBASE_VECTOR_INDEX_NAME = os.getenv(\"COUCHBASE_VECTOR_INDEX_NAME\", \"graphrag_index\")\n", "OPENAI_API_KEY = os.getenv(\"OPENAI_API_KEY\")\n", "LLM_MODEL = os.getenv(\"LLM_MODEL\", \"gpt-4o\")\n", "EMBEDDING_MODEL = os.getenv(\"EMBEDDING_MODEL\", \"text-embedding-ada-002\")" @@ -110,7 +113,23 @@ "In this part, we load data from Parquet files into a dictionary. Each file corresponds to a particular table in the dataset, and we define functions that will handle the loading and processing of each table.\n", "\n", "read_indexer_entities, read_indexer_relationships, etc., are custom functions responsible for reading specific parts of the data, such as entities and relationships.\n", - "We use pandas to load the data from the files, and if a file is not found, we log a warning and continue." + "\n", + "We use pandas to load the data from the files, and if a file is not found, we log a warning and continue.\n", + "\n", + "## Entities table:\n", + "This table stores information about various entities in the system. Each entity has a unique ID, a short ID, a title, a type (e.g., PERSON), a description, and embeddings of the description. It may also include name embeddings, graph embeddings, community IDs, text unit IDs, document IDs, a rank, and additional attributes.\n", + "\n", + "## Relationships table:\n", + "This table represents relationships between entities. Each relationship has a unique ID, a short ID, a source entity, a target entity, a weight, a description, and potentially description embeddings. It also includes text unit IDs, document IDs, and may have additional attributes like rank.\n", + "\n", + "## Covariate table:\n", + "This table stores additional variables or attributes that may be associated with entities, relationships, or other elements in the system. Covariates are typically used to provide context or additional information that can be useful for analysis or modeling.\n", + "\n", + "## Reports table:\n", + "This table contains community reports. Each report has an ID, a short ID, a title, a community ID, a summary, full content, a rank, and potentially embeddings for the summary and full content. It may also include additional attributes.\n", + "\n", + "## Text units table:\n", + "This table stores text units, which are likely segments of text from documents. Each text unit has an ID, a short ID, the actual text content, and potentially text embeddings. It also includes entity IDs, relationship IDs, covariate IDs, the number of tokens, document IDs, and may have additional attributes." ] }, { @@ -124,15 +143,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-06 15:34:48,630 - __main__ - INFO - Loading data from parquet files\n" + "2024-09-11 16:28:21,629 - __main__ - INFO - Loading data from parquet files\n", + "2024-09-11 16:28:21,751 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" ] }, { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "2024-09-06 15:34:48,805 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n", - "2024-09-06 15:34:48,869 - __main__ - INFO - Data loading completed\n" + "Entities table sample:\n", + "Entity(id='3b040bcc19f14e04880ae52881a89c1c', short_id='27', title='AGENTS', type='PERSON', description='Agents Alex Mercer, Jordan Hayes, Taylor Cruz, and Sam Rivera are the team members exploring Dulce base', description_embedding=[0.007186084054410458, -0.023490138351917267, -0.01996060274541378, -0.04203357920050621, -0.02858390286564827, 0.04885200038552284, -0.00892411358654499, -0.009519054554402828, 0.004632517229765654, -0.036017321050167084, 0.018556809052824974, 0.03604406118392944, -0.013496468774974346, -0.006587800569832325, 0.016150306910276413, -0.012640823610126972, 0.003860431257635355, -0.038343608379364014, -0.014372168108820915, -0.015174335800111294, 0.001866710721515119, -0.017099536955356598, 0.013549946248531342, -0.02016114443540573, 0.0021457981783896685, -0.021351026371121407, 0.014626188203692436, -0.024813715368509293, 0.02861064113676548, 0.005768921226263046, 0.005023573990911245, 0.0026187426410615444, -0.005875877104699612, -0.010140734724700451, -0.00985329132527113, -0.005260881967842579, -0.014024562202394009, -0.011684906668961048, 0.002810928737744689, -0.012848049402236938, 0.02422545850276947, -0.0027273695450276136, -0.0054046036675572395, -0.03751470148563385, -0.011377409100532532, 0.004786266013979912, -0.023824375122785568, 0.010067202150821686, -0.02629772573709488, 0.010628719814121723, 0.016524650156497955, 0.020749399438500404, -0.002555237850174308, -0.027380650863051414, 0.011317246593534946, -0.01562889665365219, -0.009478946216404438, 0.005234143231064081, -0.0019018055172637105, -0.03732752799987793, -0.013456360436975956, -0.015067379921674728, -0.021016789600253105, 0.028075862675905228, -0.009365306235849857, 0.012714355252683163, -0.005768921226263046, 0.01423847395926714, 0.01435879897326231, -1.957111271622125e-05, -0.003384144278243184, 9.207169932778925e-05, 0.01760757714509964, -0.026979567483067513, 0.028049124404788017, -0.01959962584078312, -0.015094119124114513, -0.013636847957968712, 0.0012182919308543205, 0.022126454859972, 0.02429230697453022, 0.005758894141763449, -0.03163214027881622, 0.027808474376797676, 0.021444611251354218, 0.007921404205262661, 0.003823665203526616, 0.006266933865845203, -0.029519764706492424, -0.007734231650829315, 0.012326641008257866, 0.01762094721198082, 0.030214976519346237, 0.030375409871339798, -0.045349203050136566, -0.004311650525778532, -0.011203606612980366, 0.03906555846333504, -0.021070266142487526, -0.022901883348822594, -0.009452207013964653, -0.0008606588817201555, -0.021217331290245056, -0.0075938524678349495, -0.010722305625677109, 0.0032170258928090334, -0.013824020512402058, -0.003843719372525811, 0.02018788270652294, -0.0012174563016742468, -0.023583725094795227, 0.0029730333480983973, 0.003250449663028121, -0.038798168301582336, -0.016698453575372696, -0.020709291100502014, 0.002073937328532338, -0.005839111283421516, 0.003897197311744094, -0.01989375427365303, 0.018383005633950233, 0.025896642357110977, 0.007854556664824486, -0.004716076422482729, 0.02208634652197361, -0.0061499509029090405, 0.022875143215060234, -0.016765302047133446, 0.002663864754140377, -0.002899501472711563, 0.016551390290260315, 0.005762236658483744, 0.009726281277835369, 0.006327096372842789, -0.003760160179808736, 0.009198187850415707, -0.012647507712244987, 0.030001064762473106, 0.0035462488885968924, 0.01414488721638918, 0.010715621523559093, 0.018677134066820145, -0.014104778878390789, 0.0036933128722012043, 0.011430887505412102, 0.010688882321119308, 0.012192945927381516, -0.011450941674411297, 0.009131340309977531, 0.019332237541675568, 0.020535487681627274, -0.029386069625616074, 0.012319955974817276, -0.007493581622838974, 0.011384094133973122, 0.0025903326459228992, -0.01110333576798439, 0.008436128497123718, -0.013717064633965492, -0.004926645662635565, 0.009786443784832954, -0.010354645550251007, 0.008068468421697617, -0.02173873968422413, 0.018409743905067444, 0.0262843556702137, 0.011758439242839813, -0.022433951497077942, -0.018957892432808876, 0.0018449852941557765, 0.0033122834283858538, 0.024867193773388863, -0.00897090695798397, 0.0007349024526774883, -0.016003241762518883, 0.0031518498435616493, 0.0016828805673867464, -0.018222572281956673, -0.004903248976916075, -0.006313726771622896, 0.021110374480485916, -0.0013762186281383038, -0.0014789963606745005, 0.0014163270825520158, -0.0038637735415250063, -0.006484187673777342, 0.007460157852619886, -0.011343985795974731, -0.00432167761027813, -0.0014430659357458353, 0.00975970458239317, 0.00715934531763196, 0.020990049466490746, -0.00707244360819459, -0.6374558210372925, -0.047087233513593674, 0.005708758719265461, 0.0038871702272444963, 0.002468336373567581, 0.028129341080784798, 0.013944345526397228, -0.007373256608843803, -0.010207581333816051, -0.0053812069818377495, -0.011778493411839008, 0.022968729957938194, -0.015882916748523712, -0.014452384784817696, 0.006530980579555035, -0.011725015006959438, 0.00044244551099836826, -0.00723956199362874, 0.012861419469118118, 0.005852480418980122, -0.0400281585752964, 0.009906768798828125, 0.018663763999938965, -0.021163852885365486, 0.03815643489360809, 0.001753070275299251, 0.024639911949634552, -0.0015684046084061265, -0.012192945927381516, -0.008523030206561089, -0.018302788957953453, 0.021337656304240227, 0.0012609070399776101, -0.02018788270652294, 0.04125814884901047, -0.0022126454859972, -0.010474970564246178, 0.016203783452510834, -0.020842986181378365, 0.03751470148563385, -0.0036866283044219017, 0.014786621555685997, 0.022460689768195152, -0.006547692231833935, 0.005638569127768278, 0.020548857748508453, -0.0019519409397616982, 0.016444433480501175, -0.00879710353910923, 0.016792040318250656, 0.004037576727569103, -0.027166740968823433, -0.03703340142965317, 0.004569012671709061, 0.020682552829384804, 0.0016377586871385574, 0.018342897295951843, 0.0056051453575491905, -0.002600359730422497, 0.008355911821126938, -0.008335857652127743, 0.021524827927350998, -0.04652571678161621, -6.627282709814608e-05, -0.023583725094795227, 0.022634493187069893, -0.01435879897326231, 0.02669880911707878, 0.00032817843020893633, -0.009138025343418121, 0.007246246561408043, 0.0037568178959190845, -0.01791507378220558, 0.0038671158254146576, 0.011611375026404858, 0.018155725672841072, 0.028182819485664368, -0.0022427267394959927, 0.018743980675935745, 0.031792573630809784, -0.002428228035569191, -0.016310740262269974, -0.01782148890197277, -0.023249488323926926, 0.022126454859972, -0.0008034209022298455, -0.019345607608556747, -0.00992013793438673, 0.010635404847562313, -0.045349203050136566, 0.02173873968422413, 0.029760414734482765, 0.0009458892163820565, 0.007426734548062086, 0.004391867201775312, -0.018276050686836243, 0.004067657981067896, -0.00012356304796412587, 0.03248778358101845, -0.04037576541304588, 0.0005301826167851686, 0.0042982809245586395, 0.01528129167854786, -0.03310278058052063, 0.03767513483762741, 0.005036943592131138, -0.01969321258366108, 0.0006396450335159898, 0.04772896692156792, -0.02664533071219921, -0.007961512543261051, 0.014545971527695656, -0.025241538882255554, 0.0023530246689915657, -0.0066279093734920025, -0.030482366681098938, 0.007105867378413677, -0.018489960581064224, 0.006300357636064291, -0.05299653485417366, 0.0006521788891404867, 0.01752736046910286, 0.009097917005419731, -0.011163498274981976, 0.011551212519407272, 0.00711255194619298, -0.002030486473813653, -0.02909194305539131, -0.00784787256270647, 0.004014180041849613, 0.004669283516705036, 0.00723956199362874, 0.0003891765954904258, -0.02671217918395996, 0.020254729315638542, 0.0037568178959190845, 0.0244393702596426, -0.007934773340821266, 0.020669182762503624, -0.021137114614248276, -0.049600690603256226, -0.02006755769252777, 0.005210746545344591, -0.001195730990730226, 0.017112907022237778, -0.03497450426220894, -0.020990049466490746, -0.0017931786132976413, -0.01978679932653904, -0.02847694791853428, 0.01728671044111252, 0.0014271896798163652, -0.013035221956670284, 0.020909832790493965, 0.002575292019173503, -0.00659114308655262, 0.001866710721515119, -0.019265390932559967, -0.012761148624122143, -0.022995468229055405, -0.016992582008242607, 0.012293217703700066, -0.010194212198257446, -0.0030298535712063313, -0.0013118780916556716, -0.004645886830985546, 0.010682197287678719, -0.006213455926626921, 0.0011648141080513597, -0.0266854390501976, 0.024853823706507683, -0.005207404028624296, -0.008750311098992825, 0.010622034780681133, -0.005511559545993805, 0.016350848600268364, -0.015013902448117733, 0.019292129203677177, -0.0004528904100880027, -0.008476236835122108, -0.026952829211950302, 0.028129341080784798, -0.016952473670244217, -0.006153293419629335, 0.015936395153403282, 0.009505685418844223, 0.018262680619955063, 0.05075046420097351, -0.023797636851668358, 0.019332237541675568, -0.01088942401111126, 0.00723956199362874, -0.007433419115841389, 0.0072529311291873455, -0.0010386398062109947, -0.005474793259054422, -0.0029730333480983973, 0.007647330407053232, -0.018182463943958282, 0.021123744547367096, 0.011350670829415321, 0.007266300730407238, 0.027942169457674026, -0.022647863253951073, 0.00045497939572669566, -0.029813893139362335, 0.004742815624922514, -0.023209379985928535, 0.029974326491355896, -0.0174337737262249, 0.029011724516749382, -0.03756817802786827, -0.01542835496366024, 0.00494669983163476, 0.004177955910563469, 0.02676565572619438, 0.0006354670622386038, 0.011464310809969902, -0.04008163884282112, -0.012988429516553879, -0.0013845745706930757, -0.0024917328264564276, 0.03470711410045624, -0.010876054875552654, -0.02398480847477913, -0.018115617334842682, 0.02005418762564659, -0.00044035655446350574, 0.007660700008273125, -0.03251452371478081, 0.018596917390823364, -0.005909300874918699, -0.006307042203843594, 0.005280936136841774, 0.0028159422799944878, -0.01202582847326994, -0.007466842886060476, -0.0038704583421349525, 0.010815892368555069, -0.017086168751120567, 0.004137847572565079, 0.020856356248259544, 0.027313804253935814, -0.007079128175973892, 0.0306428000330925, 0.007399995345622301, 0.025428710505366325, -0.0038002687506377697, -0.0314449667930603, 0.006393943447619677, -0.03510819748044014, 0.003270503832027316, -0.010782468132674694, -0.004518877249211073, -0.025455448776483536, -0.023316336795687675, 0.009178133681416512, 0.02414524182677269, 0.0011664852499961853, 0.029065202921628952, 0.018235942348837852, 0.012440280988812447, 0.008402705192565918, -0.009224926121532917, 0.015882916748523712, 0.012827995233237743, -0.017139645293354988, -0.001212442759424448, -0.030134759843349457, -0.027260325849056244, 0.009251665323972702, -0.00542800035327673, 0.010876054875552654, 0.002627098700031638, 0.018195834010839462, 0.011437571607530117, -0.006891956087201834, -0.007426734548062086, -0.00041424433584325016, -0.0014572710497304797, -0.004241460934281349, -0.026859242469072342, 0.018743980675935745, 0.04005489870905876, 0.0019419138552621007, -0.002289519878104329, 0.003539564087986946, 0.00657443143427372, -0.02656511403620243, 0.016230523586273193, 0.010782468132674694, 0.005006862338632345, 0.0027190137188881636, 0.006952118594199419, -0.008182108402252197, 0.01751399040222168, 0.022741449996829033, -0.016832148656249046, -0.004702707286924124, 0.002030486473813653, 0.0031869446393102407, -0.010869369842112064, 0.0196129959076643, -0.024706760421395302, 0.02224677987396717, 0.012126099318265915, -0.01768779382109642, -0.009826552122831345, 0.009124655276536942, -0.02445274032652378, 0.00602962588891387, 0.013757172971963882, -0.018302788957953453, 0.0047495001927018166, 0.006795027293264866, 0.0029396098107099533, -0.029145419597625732, 0.0002575709659140557, 0.021471351385116577, -0.013690325431525707, 0.009793128818273544, -0.024800345301628113, -0.015789330005645752, -0.011343985795974731, 0.12171555310487747, 0.034306030720472336, -0.0041879829950630665, 0.0015892944065853953, 0.014666296541690826, 0.005715443752706051, -0.010080572217702866, 0.004228091333061457, 0.0023196011316031218, -0.03128453344106674, -1.3500020031642634e-05, 0.025268277153372765, -0.016136936843395233, -0.00653432309627533, 0.009405414573848248, 0.017059428617358208, -0.019211912527680397, -0.02193928137421608, -0.016778670251369476, 0.000854391953907907, -0.015214444138109684, 0.0011422531679272652, 0.00764064583927393, 0.016805410385131836, -0.0017146330792456865, -0.016043350100517273, 0.01522781327366829, -0.0007144304690882564, 0.0031969717238098383, 0.004873167723417282, 0.031658876687288284, 0.0025034311693161726, -0.005374522414058447, 0.0068284510634839535, -0.010789153166115284, 0.0010745702311396599, 0.010227635502815247, 0.015829438343644142, 0.027233587577939034, -0.0039607021026313305, 0.007654014974832535, 0.0019068190595135093, -0.004244802985340357, -0.03903881832957268, 0.008362596854567528, -0.016898995265364647, -0.0144657539203763, 0.031605400145053864, 0.023516878485679626, -0.020869724452495575, 0.032273873686790466, -0.018102247267961502, -0.019465932622551918, -0.005097106099128723, 0.027915429323911667, 0.01223305519670248, 0.029706938192248344, -0.004716076422482729, -0.026992937549948692, -0.012112729251384735, -0.016070090234279633, -0.02603033557534218, 0.011230344884097576, -0.020869724452495575, 0.0005974476807750762, -0.03264821693301201, 0.0016569773433730006, -0.0022293571382761, -0.008736941032111645, -0.029519764706492424, -0.0069387489929795265, -0.005344441160559654, 0.001554199610836804, 0.024813715368509293, 0.029065202921628952, 0.0018583547789603472, 0.00763396080583334, -0.010194212198257446, 0.01959962584078312, 0.005504874512553215, -0.008355911821126938, -0.004702707286924124, 0.019198542460799217, -0.005725470837205648, -0.0030766467098146677, 0.004060972947627306, 0.011190236546099186, -0.008670094422996044, 0.00489990646019578, 0.011938926763832569, -0.02232699654996395, -0.009231611154973507, 0.024720128625631332, -0.012366749346256256, 0.01562889665365219, 0.02863738127052784, 0.017246602103114128, 0.013656902126967907, -0.003519509918987751, 0.02180558629333973, 0.00024106804630719125, -0.06599164754152298, -0.006621224340051413, 0.002583647845312953, 0.01438553724437952, -0.008937482722103596, -0.030295193195343018, 0.01787496544420719, -0.018637025728821754, -0.008583192713558674, -0.003462689695879817, -0.002749094972386956, -0.015548680908977985, -0.018516700714826584, 0.01750062219798565, 0.0011890461901202798, -0.018463222309947014, 0.027246957644820213, -0.036471884697675705, -0.00012293635518290102, 0.02903846465051174, -0.018449852243065834, 0.01222637016326189, 0.023730788379907608, -0.024827085435390472, 0.016337478533387184, 0.004926645662635565, -0.04470746964216232, 0.011437571607530117, -0.005117160268127918, -0.02611055225133896, 0.01974669098854065, -0.02013440430164337, -0.013783912174403667, -0.025335123762488365, -0.016497911885380745, -0.027260325849056244, 0.02395807020366192, -0.024733498692512512, -0.024653282016515732, -0.002342997584491968, 0.027380650863051414, 0.009351936168968678, -0.0001162516200565733, -0.009117971174418926, -0.02657848410308361, 0.011524473316967487, 0.004699364770203829, -0.004990150686353445, 0.008609930984675884, -0.005578406620770693, 0.013743803836405277, -0.00024963286705315113, -0.010481655597686768, -0.01532140001654625, -0.027674779295921326, -0.038851648569107056, -0.0074802120216190815, 0.025549035519361496, 0.02390459179878235, 0.025348493829369545, 0.005668650381267071, 0.008897374384105206, -0.002612058073282242, 0.022982100024819374, 0.03093692660331726, 0.007540374528616667, 0.01572248339653015, -0.018810829147696495, 0.012908212840557098, 0.021043527871370316, 0.014532601460814476, 0.01435879897326231, -0.02231362648308277, 0.021097006276249886, 0.03302256390452385, 0.005742182489484549, -0.001204086933284998, 0.0025803055614233017, -0.017059428617358208, -0.0073933107778429985, -0.016484541818499565, -0.0037233943585306406, -0.00667804479598999, -0.025375232100486755, -0.016431065276265144, 0.031658876687288284, -0.009906768798828125, -0.010815892368555069, -0.0263512022793293, 0.02195265144109726, -0.024867193773388863, 0.016136936843395233, 0.016110198572278023, -0.002107360865920782, -0.009786443784832954, -0.0036866283044219017, -0.005170638207346201, 0.0001503019593656063, 0.0015032285591587424, -0.0010586939752101898, 0.01522781327366829, 0.02391796186566353, 0.006243537180125713, -0.0003448902571108192, 0.0523013211786747, 0.016818778589367867, -0.009525739587843418, -0.006972172763198614, -0.021391134709119797, -0.023102425038814545, 0.0001356791181024164, -0.021137114614248276, -0.027942169457674026, 0.011430887505412102, -0.019372345879673958, -0.0032120123505592346, 0.016417695209383965, -0.03508146107196808, -0.0132758729159832, 0.00010883575305342674, 0.013643532991409302, 0.06010908633470535, 0.030134759843349457, 0.007446788717061281, 0.04427964612841606, 0.0173669271171093, -0.004452029708772898, 0.03716709464788437, 0.004204694647341967, 0.027327174320816994, 0.0310438834130764, 0.01532140001654625, -0.03259474039077759, 0.006708126049488783, -0.02197938971221447, 0.013202340342104435, -0.002762464340776205, -0.022674601525068283, 0.027648041024804115, -0.018904414027929306, 0.032300613820552826, -0.00610984256491065, -0.011691591702401638, -0.006594485603272915, 0.0006450763903558254, -0.010134049691259861, -0.007326463237404823, 0.0032654902897775173, -0.020949941128492355, -0.023650571703910828, 0.02224677987396717, -0.003913909196853638, 0.0178348571062088, 0.006751576438546181, 0.006250221747905016, 0.009565847925841808, -0.009331881999969482, -0.005839111283421516, -0.010408123955130577, -0.012988429516553879, 0.03093692660331726, -0.012727724388241768, 0.027861952781677246, -0.004809662699699402, 0.020522119477391243, 0.002722356002777815, 0.016029981896281242, 0.01422510389238596, 0.025094473734498024, -0.018235942348837852, 0.020749399438500404, 0.010755729861557484, -0.012894842773675919, 0.03510819748044014, -0.01331598125398159, 0.003900539595633745, -0.028182819485664368, 0.0032738461159169674, -0.023543616756796837, 0.010120680555701256, 0.008436128497123718, -0.028263036161661148, 0.0025803055614233017, -0.006701441016048193, -0.03115083836019039, -0.012707670219242573, 0.0008974249358288944, 0.0003772694035433233, -0.01442564558237791, -0.016965843737125397, -0.01423847395926714, -0.022540908306837082, 0.022474059835076332, -0.004542273469269276, -0.009779758751392365, -0.010341276414692402, 0.00896422192454338, -0.040455982089042664, 0.01748725213110447, -0.04144532233476639, 0.0029713620897382498, -0.027861952781677246, 0.006297015119343996, -0.010267743840813637, -0.019265390932559967, 0.01982690766453743, -0.0017129619373008609, -0.02020125277340412, -0.0059494092129170895, -0.00988002959638834, 0.0006743220728822052, -0.01779474876821041, 0.011711645871400833, 0.010655459016561508, -0.011771808378398418, 0.01414488721638918, 0.009412098675966263, -0.01996060274541378, 0.024934040382504463, -0.01780811883509159, 0.004064315464347601, 0.006584458518773317, -0.013422936201095581, 0.007413364946842194, 0.01996060274541378, 0.01973332092165947, 0.022687971591949463, -0.011765123344957829, 0.009438837878406048, 0.007473527453839779, 0.025415340438485146, -0.002411516150459647, -0.018864305689930916, -0.008583192713558674, -0.020802877843379974, -0.01778138056397438, -0.005304332822561264, 0.001395437284372747, -0.03462689742445946, -0.003442635526880622, 0.014652926474809647, 0.006216798443347216, -0.01955951750278473, -0.008342542685568333, 0.0004967589629814029, -0.0122196851298213, 0.0006321247201412916, -0.025174690410494804, -0.013369458727538586, -0.006507583893835545, 0.0287978146225214, -0.0019385715713724494, -0.03898534178733826, -0.028263036161661148, -0.01721986196935177, -0.008596561849117279, 0.007988251745700836, -0.016497911885380745, 0.018062138929963112, 0.03294234722852707, 0.022941991686820984, 0.010321222245693207, 0.019412454217672348, 0.011825285851955414, -0.00875699520111084, 0.0008431114838458598, -0.011537842452526093, 0.020856356248259544, -0.028182819485664368, 0.033904947340488434, 0.011350670829415321, 0.007934773340821266, 0.003900539595633745, 0.015107488259673119, 0.003213683608919382, -0.016818778589367867, 0.018917784094810486, 0.0036030691117048264, -0.012687616050243378, -0.014893577434122562, 0.005919327959418297, -0.008055099286139011, -0.008563138544559479, 0.027046414092183113, -0.01548183336853981, -0.023637203499674797, 0.009271719492971897, -0.01223305519670248, -0.00615663593634963, 0.002408173866569996, 0.01959962584078312, -0.006734864786267281, 0.029653459787368774, -0.008041729219257832, 0.0029747046064585447, 0.011150128208100796, -0.023690680041909218, 0.013837389647960663, 0.004254830069839954, -0.013650217093527317, 0.023409921675920486, 0.03091018833220005, 0.004823032300919294, -0.004933330230414867, 0.013663587160408497, -0.012955005280673504, 0.00031230220338329673, 0.009726281277835369, -0.00498680816963315, 0.008088522590696812, -0.025923380628228188, 0.006871901918202639, -0.03066953830420971, 0.016016611829400063, -0.015749221667647362, 0.002683918923139572, -0.0122196851298213, 0.021230701357126236, 0.0009266706183552742, -0.049493737518787384, 0.012874788604676723, -0.014024562202394009, 0.011872079223394394, 0.016965843737125397, -0.00501020485535264, 0.008743626065552235, -0.005685362499207258, -0.006925379391759634, -0.007794394623488188, -0.011751754209399223, -0.011845340020954609, -0.011684906668961048, 0.01996060274541378, 0.001533309812657535, 0.013743803836405277, 0.21808260679244995, 0.0022393842227756977, 8.089566836133599e-05, 0.02898498624563217, -0.006871901918202639, 0.014211734756827354, 0.02828977443277836, 0.021110374480485916, 0.01217957679182291, -0.01309538446366787, 0.020428532734513283, 0.02215319313108921, -0.004943357314914465, 0.0032521209213882685, -0.00446539930999279, -0.03256800025701523, -0.0352686308324337, -0.03117757849395275, 0.014733143150806427, -0.0026471528690308332, 0.003039880655705929, 0.010722305625677109, 0.0009726281277835369, -0.02657848410308361, 0.010782468132674694, -0.0174337737262249, -0.015588789246976376, -0.005498189944773912, 0.0018901071744039655, 0.02453295700252056, -0.013476414605975151, -0.0350012443959713, 0.02165852300822735, 0.009585902094841003, 0.008783734403550625, -0.009686172939836979, -0.004131162539124489, 0.00040150154381990433, -0.004381840117275715, 0.012279847636818886, 0.0028660777024924755, 0.006119869649410248, -0.027648041024804115, 0.0017480567330494523, -0.003917251247912645, 0.004492138046771288, -0.007420049514621496, -0.013469729572534561, -0.0015809384640306234, 0.03435950726270676, -0.0313112735748291, -0.016992582008242607, -0.011484364978969097, 0.03457342088222504, 0.014880207367241383, 0.014626188203692436, 0.018115617334842682, 0.0007950650178827345, -0.02401154860854149, -0.00981318298727274, -0.016043350100517273, 0.014920315705239773, -0.018516700714826584, 0.025335123762488365, -0.004218064248561859, 0.0029747046064585447, -0.018917784094810486, 0.030001064762473106, 0.01955951750278473, 0.006918694823980331, 0.012634138576686382, -0.025869902223348618, -0.00889069028198719, 0.016912365332245827, -0.02882455289363861, -0.031739093363285065, 0.02874433621764183, 0.007045704871416092, 0.03457342088222504, 0.005237485282123089, 0.0037701872643083334, 0.016083458438515663, 0.0066011701710522175, 0.014211734756827354, -0.0010896108578890562, -0.022674601525068283, 0.023877853527665138, 0.001204086933284998, -0.0028176135383546352, 0.00047169122262857854, -0.010180843062698841, -0.025629252195358276, 0.0016101842047646642, 0.0002504684671293944, -0.008543084375560284, 0.022754818201065063, 0.018316159024834633, 0.026043705642223358, -0.0005063682328909636, 0.002314587589353323, -0.022928621619939804, 0.023209379985928535, 0.013516522943973541, 0.016003241762518883, -0.02224677987396717, 0.018516700714826584, 0.02414524182677269, 0.008897374384105206, 0.01004714798182249, 0.004408578854054213, -0.006724837701767683, -0.020709291100502014, -0.0004528904100880027, -0.0036298080813139677, -0.01572248339653015, 0.00877036526799202, 0.016738561913371086, -0.01760757714509964, 0.0017146330792456865, -0.02232699654996395, 0.019078217446804047, -0.02466665208339691, -0.020334945991635323, -0.008509660139679909, -0.00019636392244137824, -0.007914719171822071, 0.008081837557256222, -0.0061766901053488255, 0.023717420175671577, -0.025963488966226578, 0.0025736207608133554, -0.004582381807267666, 0.04120467230677605, -0.029118681326508522, 0.011029803194105625, 0.006845162715762854, 0.018436484038829803, -0.0056051453575491905, -0.029332593083381653, 0.01122366078197956, 0.009793128818273544, -0.006998911499977112, 0.029198898002505302, -0.006210113409906626, -0.0026220851577818394, -0.02195265144109726, 0.012807941064238548, 0.007928089238703251, -0.024733498692512512, -0.008302433416247368, -0.004786266013979912, -0.010822576470673084, 0.012848049402236938, -0.013496468774974346, 0.03714035451412201, -0.030081281438469887, -0.0196129959076643, -0.013469729572534561, 0.004144532140344381, 0.022594384849071503, -0.022554276511073112, 0.02398480847477913, -0.003360747592523694, -0.025508927181363106, -0.0314449667930603, 0.02004081942141056, -0.17102211713790894, 0.028209557756781578, 0.017300080507993698, 0.003689970588311553, 0.01528129167854786, -0.0024800344835966825, 0.03887838497757912, 0.0008723571663722396, -0.021578306332230568, 0.022621124982833862, 0.01451923232525587, 0.0015767605509608984, -0.004034234210848808, -0.002135771093890071, 0.005758894141763449, 0.02847694791853428, -0.011925557628273964, 0.01094290241599083, 0.016792040318250656, -0.00711923697963357, 0.0313112735748291, -0.015241183340549469, 0.016417695209383965, 0.011163498274981976, 0.03109736181795597, -0.007908035069704056, 0.012600715272128582, 0.005371179897338152, -0.010073887184262276, 0.007286354899406433, -0.043049655854701996, -0.010862684808671474, 0.022474059835076332, 0.02188580483198166, 0.020602336153388023, 0.006159977987408638, -0.009265034459531307, 0.018449852243065834, 0.004107766319066286, 0.006317069288343191, -0.004091054201126099, 0.020883094519376755, 0.01732681877911091, -0.0009241638472303748, 0.007974881678819656, 0.015588789246976376, 0.018182463943958282, 0.002291190903633833, 0.019318867474794388, -0.027206849306821823, 0.020254729315638542, -0.049814604222774506, 0.006798369809985161, -0.0043250201269984245, 0.010916163213551044, 0.011323931626975536, 0.0313112735748291, 0.007259616162627935, 0.008128630928695202, -0.02898498624563217, -0.02442600019276142, -0.00984660629183054, 0.0038270074874162674, -0.036605577915906906, -0.016270631924271584, -0.011384094133973122, -0.013529892079532146, 0.011765123344957829, -0.036364927887916565, 0.02197938971221447, -0.0044152638874948025, 0.0037735297810286283, -0.004555643070489168, -0.012687616050243378, 0.01569574512541294, 0.01197235006839037, 0.009151394478976727, 0.0014138203114271164, 0.008342542685568333, -0.020976681262254715, -0.01569574512541294, -0.0065978276543319225, -0.021110374480485916, 0.0015124200144782662, 0.006383916363120079, 0.013422936201095581, -0.014492493122816086, 0.0013536576880142093, 0.01795518398284912, -0.021324286237359047, 0.0022477402817457914, -0.006668017711490393, 0.012834680266678333, -0.01560215838253498, -0.013489783741533756, 0.019118325784802437, -0.005100448615849018, 0.007413364946842194, 0.015909655019640923, -0.022928621619939804, -0.006440736819058657, -0.01763431541621685, -0.01198572013527155, -0.0010887753451243043, 0.009077862836420536, 0.016083458438515663, 0.010347961448132992, 0.03727405145764351, 0.005839111283421516, -0.020602336153388023, -0.01322907954454422, -0.0004775403649546206, 0.013476414605975151, 0.004468741361051798, -0.00357967265881598, -8.669258386362344e-05, -0.009699542075395584, -0.012286532670259476, 0.01526792161166668, 0.00432167761027813, 0.06251558661460876, 0.008242270909249783, 0.0001411104603903368, -0.01974669098854065, -0.013997822999954224, -0.005625199526548386, -0.07289028912782669, -0.01775464043021202, -0.0066546481102705, 0.013048592023551464, -0.013128808699548244, 0.03548254445195198, 0.00047586916480213404, -0.004642544314265251, -0.014706404879689217, 0.013529892079532146, 0.00021244905656203628, -0.0143989073112607, 0.02168526127934456, 0.0017513991333544254, 0.016029981896281242, 0.007433419115841389, -0.014733143150806427, -0.008001620881259441, -0.001590965548530221, 0.027487607672810555, -0.007540374528616667, 0.020709291100502014, 0.014666296541690826, -0.010027093812823296, 0.01117686741054058, 0.00432167761027813, -0.036525361239910126, 0.03361082077026367, 0.024840453639626503, -0.004983465652912855, 0.02172536961734295, -0.019024739041924477, 0.0314449667930603, -0.012079305946826935, 0.018489960581064224, 0.002717342460528016, -0.02199275977909565, -0.003669916419312358, 0.009519054554402828, -0.03604406118392944, 0.009900083765387535, -0.010688882321119308, -0.023383183404803276, -0.018222572281956673, -0.01959962584078312, -0.0035328795202076435, -0.012787886895239353, -0.003676601219922304, -0.008663409389555454, -0.0217922180891037, -0.028022386133670807, -0.021538197994232178, -0.015254552476108074, -0.02165852300822735, 0.019038109108805656, -0.0028727625031024218, 0.0174337737262249, 0.014652926474809647, -0.03468037769198418, -0.030081281438469887, 0.0011079938849434257, 0.004057630896568298, -0.029974326491355896, 0.0013904237421229482, -0.00306661962531507, -0.01754073053598404, -0.03898534178733826, 0.016350848600268364, 0.019038109108805656, -0.02831651270389557, -0.023690680041909218, 0.005013546906411648, -0.008663409389555454, 0.005902615841478109, -0.06508252769708633, 0.00723287696018815, -0.0132758729159832, -0.0024466109462082386, 0.016497911885380745, -0.038290128111839294, -0.02172536961734295, -0.016284000128507614, 0.013115438632667065, -0.008656724356114864, 0.034038640558719635, 0.013824020512402058, 0.012547236867249012, 0.012553921900689602, 0.00863667018711567, -0.016658345237374306, 0.01965310424566269, 0.007246246561408043, -0.0029162131249904633, 0.0016812094254419208, -0.0173669271171093, 0.0051806652918457985, -0.024947410449385643, -0.009465577080845833, -0.02887803129851818, 0.0035729878582060337, -0.004886537324637175, -0.013930976390838623, -0.0700024887919426, 0.014786621555685997, -0.0011664852499961853, 0.020655814558267593, -0.01209267508238554, -0.029172159731388092, 0.0014856810448691249, -0.016096828505396843, -0.007413364946842194, 0.011584635823965073, -0.0013611780013889074, 0.02653837576508522, 0.016511281952261925, -0.00863667018711567, -0.01122366078197956, -0.012206315994262695, -0.008603246882557869, -0.013603424653410912, 0.0396270751953125, 0.015094119124114513, -0.023343075066804886, 0.010274428874254227, 0.027968907728791237, 0.00723287696018815, -0.007460157852619886, 0.021297547966241837, -0.012848049402236938, -0.00017996544193010777, 0.008509660139679909, -0.013643532991409302, -0.003823665203526616, -0.011083281598985195, 0.0033490494824945927, 0.0050904215313494205, -0.004181298427283764, 0.0002322943473700434, -0.016765302047133446, 0.030375409871339798, 0.007500266190618277, 0.012045882642269135, -0.034011904150247574, -0.03957359865307808, 0.0143989073112607, -0.005645254161208868, -0.0024750209413468838, -0.016845518723130226, -0.0122196851298213, -0.002486719284206629, -0.00608644587919116, 0.01969321258366108, 0.012634138576686382, 0.01231327187269926, 0.009218242019414902, -0.03331669047474861, -0.013509837910532951, -0.014211734756827354, 0.010428178124129772, 0.008115261793136597, -0.0177011638879776, -0.005578406620770693, 0.03537558764219284, 0.011531158350408077, 0.005912642925977707, 0.004605778492987156, 0.018797459080815315, 0.009692857973277569, -0.0036398351658135653, 0.012487074360251427, 0.029439548030495644, -0.018797459080815315, -0.018155725672841072, -0.00218089297413826, 0.034011904150247574, 0.025629252195358276, 0.00024378372472710907, 0.015027271583676338, 0.008663409389555454, -0.0025786343030631542, -0.034092120826244354, 0.020348316058516502, 0.029787154868245125, -0.02645815908908844, -0.0239714402705431, 0.0019820223096758127, 0.01318897120654583, 0.010368015617132187, 0.009311827830970287, -0.004712734371423721, -0.007125921547412872, -0.004696022253483534, -0.02168526127934456, -0.005347783677279949, -0.002685589948669076, -0.0012901527807116508, -0.007493581622838974, -0.009505685418844223, 0.003096700878813863, 0.014586079865694046, 0.03687296807765961, 0.025602513924241066, -0.01526792161166668, 0.005277593620121479, 0.014104778878390789, -0.0239714402705431, -0.042809005826711655, 0.002904515014961362, -0.027888691052794456, -0.01092953234910965, 0.03125779330730438, 0.007520320359617472, 0.006798369809985161, -0.0041846404783427715, -0.007453473284840584, 0.010307853110134602, -0.010615350678563118, 0.018356267362833023, 0.015588789246976376, -0.009385360404849052, -0.004645886830985546, 0.015080749057233334, 0.01963973417878151, -0.0006116527365520597, 0.008142000064253807, -0.025549035519361496, 0.011598005890846252, -0.006424024701118469, 0.02401154860854149, -0.018717242404818535, 0.020455271005630493, 0.0010244348086416721, 0.009906768798828125, -0.03665905445814133, -0.0007741752197034657, -0.011865394189953804, -0.025281647220253944, 0.00544471200555563, -0.01795518398284912, 0.008148685097694397, -0.027621300891041756, 0.07893328368663788, 0.03080323338508606, -0.016270631924271584, 0.015013902448117733, -0.013810650445520878, 0.022794926539063454, -0.0059694633819162846, 0.014960424043238163, -0.010087256319820881, -0.014078039675951004, -0.0036799435038119555, 0.0001763097388902679, 0.036311451345682144, -0.013757172971963882, -0.02009429596364498, -0.014078039675951004, 0.021137114614248276, -0.006808396894484758, -0.022661233320832253, -0.042889222502708435, -3.6583227483788505e-05, 0.000646747590508312, 0.0015934723196551204, 0.004622490145266056, -0.013944345526397228, -0.0013946016551926732, 0.01213946845382452, -0.0050904215313494205, -0.01978679932653904, -0.0035663030575960875, 0.007105867378413677, -0.012152837589383125, -0.025054365396499634, -0.014545971527695656, -0.010000355541706085, 0.002160838805139065, 0.006541007664054632, -0.008422759361565113, 0.023236120119690895, 0.025401972234249115, -0.015575419180095196, 0.006460790988057852, -0.010334591381251812, -0.015201075002551079, 0.004094396717846394, 0.000691869470756501, -0.016551390290260315, -0.030482366681098938, 0.031231055036187172], name_embedding=None, graph_embedding=None, community_ids=['7'], text_unit_ids=['b1acf6f137198e644d60ab1843b2c63e'], document_ids=None, rank=1, attributes=None)\n", + "Relationships table sample:\n", + "Relationship(id='bb9e01bc171d4326a29afda59ece8d17', short_id='0', source='ALEX MERCER', target='TAYLOR CRUZ', weight=21.0, description=\"Alex Mercer and Taylor Cruz are both integral members of the Paranormal Military Squad, working together at the Dulce military base. They play significant leadership roles within the team, guiding their colleagues through complex missions involving the analysis of extraterrestrial data and alien signals. Their professional relationship is marked by a balance of strategic and pragmatic approaches, with Alex Mercer often valuing Taylor Cruz's strategic input and cautious oversight.\\n\\nWhile Alex Mercer acknowledges Taylor Cruz's authority and ambition, there is also an element of skepticism and debate between them, particularly regarding the nature of their findings. Taylor Cruz, known for a commanding presence, provides cautionary advice and ensures the team remains focused and sharp during negotiations and mission-critical moments. Despite occasional questioning of Mercer's commitment, Cruz's oversight and risk assessment are crucial to the team's success.\\n\\nTogether, they combine their leadership and strategic thinking to navigate the challenges of their mission, ensuring that the Paranormal Military Squad operates effectively and efficiently in their pursuit of understanding and managing paranormal phenomena.\", description_embedding=None, text_unit_ids=['0252fd22516cf1fe4c8249dc1d5aa995', '264139de2d051ec271cd0cc07f967667', '2be045844a1390572a34f61054ca1994', '2c566f4fafe76923d5e2393b28ddfc7e', '3033fdd0e928a52a29b8bb5f4c4ca242', '3ce43735ef073010f94b5c8c59eef5dd', '49b695de87aa38bf72fe97b12a2ccefd', '5b2d21ec6fc171c30bdda343f128f5a6', '6a678172e5a65aa7a3bfd06472a4bc8a', '73011d975a4700a15ab8e3a0df2c50ca', '935164b93d027138525f0a392bb67c18', 'ad48c6cbbdc9a7ea6322eca668433d1d', 'ae3d58f47c77025945b78a1115014d49', 'b330e287a060d3a460431479f6ec248f', 'b586b4a1d69c6dcc177e138c452bcd2a', 'cfd4ea0e691b888c0d765e865ad7e8da', 'd491433ffa1b4c629fe984e7d85364aa', 'db133889acaba9520123346a859a1494'], document_ids=None, attributes={'rank': 49})\n", + "Reports table sample:\n", + "CommunityReport(id='17', short_id='17', title='Paranormal Military Squad and Operation: Dulce', community_id='17', summary=\"The community centers around the Paranormal Military Squad, a specialized governmental faction focused on extraterrestrial phenomena and interspecies communication. The squad is currently engaged in Operation: Dulce, a mission based at the Dulce military base, involving key members such as Alex Mercer, Sam Rivera, Taylor Cruz, and Dr. Jordan Hayes. The operation aims to decode and respond to alien messages, marking a significant step in humanity's first contact with intelligent alien entities.\", full_content=\"# Paranormal Military Squad and Operation: Dulce\\n\\nThe community centers around the Paranormal Military Squad, a specialized governmental faction focused on extraterrestrial phenomena and interspecies communication. The squad is currently engaged in Operation: Dulce, a mission based at the Dulce military base, involving key members such as Alex Mercer, Sam Rivera, Taylor Cruz, and Dr. Jordan Hayes. The operation aims to decode and respond to alien messages, marking a significant step in humanity's first contact with intelligent alien entities.\\n\\n## Paranormal Military Squad's central role\\n\\nThe Paranormal Military Squad is the central entity in this community, tasked with handling paranormal and extraterrestrial phenomena. This elite group is responsible for mediating Earth's bid for cosmic relevance and preparing for humanity's interstellar narrative. Their current focus is on Operation: Dulce, which involves decoding and responding to an alien message. The squad's operations are based out of the Dulce military base, which serves as their command center [Data: Entities (4), Relationships (99, 96, 110, 113, 106, +more)].\\n\\n## Operation: Dulce's significance\\n\\nOperation: Dulce is a critical mission undertaken by the Paranormal Military Squad. The mission involves investigating anomalies, engaging in dialogue with an alien race, and decoding alien messages. This operation marks a significant transition for the squad from covert operatives to ambassadors of Earth. The Dulce military base in New Mexico is the central location for this mission, highlighting its strategic importance [Data: Entities (5), Relationships (92, 128, 127, 133, 132, +more)].\\n\\n## Key members of the Paranormal Military Squad\\n\\nThe Paranormal Military Squad comprises several key members, each playing a vital role in Operation: Dulce. Alex Mercer is the leader, providing strategic direction and overseeing the decryption process. Sam Rivera contributes technical expertise and enthusiasm, focusing on signal decryption. Taylor Cruz offers military precision and strategic insights, while Dr. Jordan Hayes focuses on deciphering alien codes with a skeptical and analytical approach. These members' combined efforts are crucial to the mission's success [Data: Entities (52, 53, 91, 42); Relationships (66, 26, 3, 49, +more)].\\n\\n## Dulce military base as the operational hub\\n\\nThe Dulce military base in New Mexico serves as the operational hub for the Paranormal Military Squad. This base is where the squad conducts various operations, including decryption efforts and deciphering extraterrestrial signals. The comprehensive setup at Dulce, including its command center, mainframe chamber, and underground base, allows the squad to effectively manage and execute their missions [Data: Relationships (99, 96, 110, 128, 127, +more)].\\n\\n## Potential global impact of first contact\\n\\nThe Paranormal Military Squad's mission to establish first contact with an alien race has significant global implications. Successful communication with extraterrestrial intelligence could lead to unprecedented scientific breakthroughs and potential interstellar diplomacy. However, it also poses risks, including potential galactic peril and the complexities of cosmic negotiations. The squad's efforts in decoding alien signals and preparing for interstellar communication are critical in navigating these challenges [Data: Relationships (112, 114, 115, 101, 102, +more)].\\n\\n## Technical capabilities and expertise\\n\\nThe Paranormal Military Squad possesses advanced technical capabilities and expertise essential for their mission. Members like Sam Rivera and Dr. Jordan Hayes bring specialized skills in signal decryption and analysis. The squad's ability to decode complex alien messages and understand their implications is vital for successful interspecies communication. Their technical prowess ensures that they can effectively respond to and engage with extraterrestrial intelligence [Data: Relationships (66, 49, 71, 52, 109, +more)].\\n\\n## Leadership and strategic direction\\n\\nLeadership within the Paranormal Military Squad is a critical factor in the success of Operation: Dulce. Alex Mercer, as the leader, provides strategic direction and oversees the decryption process. Taylor Cruz, another authoritative figure, ensures military precision and offers strategic insights. Their combined leadership ensures that the squad operates with diligence and a cautious approach, essential for navigating the complexities of interspecies communication [Data: Relationships (3, 26, 29, 6, 130, +more)].\\n\\n## Mentorship and team dynamics\\n\\nThe team dynamics within the Paranormal Military Squad are strengthened by mentorship relationships. For instance, Sam Rivera is mentored by Mercer, which enhances his technical skills and enthusiasm for the mission. These mentorship relationships foster a collaborative environment, ensuring that the squad operates cohesively and effectively. The combination of experienced leaders and enthusiastic members is crucial for the squad's success [Data: Relationships (66, 75, 116, 117, +more)].\\n\\n## Washington command center's role\\n\\nThe Washington command center plays a pivotal role in supporting the Paranormal Military Squad during Operation: Dulce. It serves as the communication hub, providing strategic oversight and coordination for the squad's activities. The command center's involvement ensures that the squad receives the necessary support and guidance, enhancing their ability to navigate the complexities of their mission [Data: Entities (53); Relationships (98, 132)].\\n\\n## Historical significance of the mission\\n\\nOperation: Dulce holds historical significance as it marks humanity's first potential contact with intelligent alien entities. The Paranormal Military Squad's efforts in decoding alien signals and engaging in interspecies communication could lead to groundbreaking scientific discoveries and reshape humanity's understanding of its place in the cosmos. The mission's success could pave the way for future interstellar diplomacy and cosmic alliances [Data: Relationships (101, 102, 103, 104, 105, +more)].\", rank=9.0, summary_embedding=None, full_content_embedding=None, attributes=None)\n", + "Text units table sample:\n", + "TextUnit(id='5b2d21ec6fc171c30bdda343f128f5a6', short_id='0', text='# Operation: Dulce\\n\\n## Chapter 1\\n\\nThe thrumming of monitors cast a stark contrast to the rigid silence enveloping the group. Agent Alex Mercer, unfailingly determined on paper, seemed dwarfed by the enormity of the sterile briefing room where Paranormal Military Squad\\'s elite convened. With dulled eyes, he scanned the projectors outlining their impending odyssey into Operation: Dulce.\\n\\n“I assume, Agent Mercer, you’re not having second thoughts?” It was Taylor Cruz’s voice, laced with an edge that demanded attention.\\n\\nAlex flickered a strained smile, still thumbing his folder\\'s corner. \"Of course not, Agent Cruz. Just trying to soak in all the details.\" The compliance in his tone was unsettling, even to himself.\\n\\nJordan Hayes, perched on the opposite side of the table, narrowed their eyes but offered a supportive nod. \"Details are imperative. We’ll need your clear-headedness down there, Mercer.\"\\n\\nA comfortable silence, the kind that threaded between veterans of shared secrets, lingered briefly before Sam Rivera, never one to submit to quiet, added, \"I’ve combed through the last transmission logs. If anyone can make sense of the anomalies, it’s going to be the two of you.\"\\n\\nTaylor snorted dismissively. “Focus, people. We have protocols for a reason. Speculation is counter-productive.” The words \\'counter-productive\\' seemed to hang in the air, a tacit reprimand directed at Alex.\\n\\nFeeling the weight of his compliance conflicting with his natural inclination to leave no stone unturned, Alex straightened in his seat. \"I agree, Agent Cruz. Protocol is paramount,\" he said, meeting Taylor\\'s steely gaze. It was an affirmation, but beneath it lay layers of unspoken complexities that would undoubtedly unwind with time.\\n\\nAlex\\'s submission, though seemingly complete, didn\\'t escape Jordan, who tilted their head ever so slightly, their eyes revealing a spark of understanding. They knew well enough the struggle of aligning personal convictions with overarching missions. As everyone began to collect their binders and prepare for departure, a quiet resolve took form within Alex, galvanized by the groundwork laid by their interactions. He may have spoken in compliance, but his determination had merely taken a subtler form — one that wouldn\\'t surrender so easily to the forthcoming shadows.\\n\\n\\\\*\\n\\nDr. Jordan Hayes shuffled a stack of papers, their eyes revealing a tinge of skepticism at Taylor Cruz\\'s authoritarian performance. _Protocols_, Jordan thought, _are just the framework, the true challenges we\\'re about to face lie well beyond the boundaries of any protocol._ They cleared their throat before speaking, tone cautious yet firm, \"Let\\'s remember, the unknown variables exceed the known. We should remain adaptive.\"\\n\\nA murmur of agreement echoed from Sam Rivera, who leaned forward, lacing their fingers together as if weaving a digital framework in the air before them, \"Exactly, adaptability could be the key to interpreting the signal distortions and system malfunctions. We shouldn\\'t discount the… erratic.\"\\n\\nTheir words hung like an electric charge in the room, challenging Taylor\\'s position with an inherent truth. Cruz’s jaw tightened almost imperceptibly, but the agent masked it with a small nod, conceding to the omnipresent threat of the unpredictable. \\n\\nAlex glanced at Jordan, who never looked back, their gaze fixed instead on a distant point, as if envisioning the immense dark corridors they were soon to navigate in Dulce. Jordan was not one to embrace fantastical theories, but the air of cautious calculation betrayed a mind bracing for confrontation with the inexplicable, an internal battle between the evidence of their research and the calculating skepticism that kept them alive in their field.\\n\\nThe meeting adjourned with no further comments, the team members quietly retreading the paths to their personal preparations. Alex, trailing slightly behind, observed the others. _The cautious reserve Jordan wears like armor doesn\\'t fool me_, he thought, _their analytical mind sees the patterns I do. And that\\'s worth more than protocol. That\\'s the connection we need to survive this._\\n\\nAs the agents dispersed into the labyrinth of the facility, lost in their thoughts and preparations, the base\\'s halogen lights flickered, a brief and unnoticed harbingers of the darkness to come.\\n\\n\\\\*\\n\\nA deserted corridor inside the facility stretched before Taylor Cruz, each footstep rhythmic and precise. Cruz, ambitious and meticulous, eyed the troops passing by with a sardonic tilt of the lips. Obedience—it was as much a tool as any weapon in the arsenal, and Cruz wielded it masterfully. To them, it was another step toward unfettered power within the dark bowels of the military complex.\\n\\nInside a secluded equipment bay, Cruz began checking over gear with mechanical efficiency. They traced fingers over the sleek surface of an encrypted radio transmitter. \"If protocols are maintained,\" said Cruz aloud, rehearsing the speech for their subordinates, \"not only will we re-establish a line of communication with Dulce, but we shall also illuminate the darkest secrets it conceals.\"\\n\\nAgent Hayes appeared in the doorway, arms crossed and a knowing glint in their eyes. \"You do understand,\" Jordan began, the words measured and probing, \"that once we\\'re in the depths, rank gives way to survival instincts. It\\'s not about commands—it\\'s empowerment through trust.\"\\n\\nThe sentiment snagged on Cruz\\'s armor of confidence, probing at the insecurities festering beneath. Taylor offered a brief nod, perhaps too curt, but enough to acknowledge Jordan\\'s point without yielding ground. \"Trust,\" Cruz mused, \"or the illusion thereof, is just as potent.\"\\n\\nSilence claimed the space between them, steeped in the reality of the unknown dangers lurking in the shadows of the mission. Cruz diligently returned to the equipment, the act a clear dismissal.\\n\\nNot much later, Cruz stood alone', text_embedding=None, entity_ids=['b45241d70f0e43fca764df95b2b81f77', '4119fd06010c494caa07f439b333f4c5', 'd3835bf3dda84ead99deadbeac5d0d7d', '077d2820ae1845bcbb1803379a3d1eae', '3671ea0dd4e84c1a9b02c5ab2c8f4bac', '19a7f254a5d64566ab5cc15472df02de', 'e7ffaee9d31d4d3c96e04f911d0a8f9e'], relationship_ids=['bb9e01bc171d4326a29afda59ece8d17', '3c063eea52e94164b70c99431ea30bae', '252cc8452bfc4c2aa58cab68d8b61879', '7e2c84548fb94ee395ba8588d8f2a006', '3e95dacfe57b4d57b5da4310ef2e157f', '1f1545308e9347af91fd03b94aadc21f', '6ea81acaf232485e94fff638e03336e1', '86505bca739d4bccaaa1a8e0f3baffdc', '1af9faf341e14a5bbf4ddc9080e8dc0b', '6090e736374d45fd84f0e4610a314f8f', '735d19aea0744b2295556841c5c4c3fd', '6e0c81bef5364c988b21bf9b709d9861'], covariate_ids=None, n_tokens=1200, document_ids=['958fdd043f17ade63cb13570b59df295'], attributes=None)\n", + "Data loading completed\n" ] } ], @@ -162,6 +189,8 @@ " data[\"entities\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\")\n", " entity_embeddings = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet\")\n", " data[\"entities\"] = read_indexer_entities(data[\"entities\"], entity_embeddings, COMMUNITY_LEVEL)\n", + " print(\"Entities table sample:\")\n", + " print(data[\"entities\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"ENTITY_TABLE file not found. Setting entities to None.\")\n", " data[\"entities\"] = None\n", @@ -169,6 +198,8 @@ "try:\n", " data[\"relationships\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['RELATIONSHIP_TABLE']}.parquet\")\n", " data[\"relationships\"] = read_indexer_relationships(data[\"relationships\"])\n", + " print(\"Relationships table sample:\")\n", + " print(data[\"relationships\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"RELATIONSHIP_TABLE file not found. Setting relationships to None.\")\n", " data[\"relationships\"] = None\n", @@ -176,6 +207,8 @@ "try:\n", " data[\"covariates\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['COVARIATE_TABLE']}.parquet\")\n", " data[\"covariates\"] = read_indexer_covariates(data[\"covariates\"])\n", + " print(\"Covariates table sample:\")\n", + " print(data[\"covariates\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"COVARIATE_TABLE file not found. Setting covariates to None.\")\n", " data[\"covariates\"] = None\n", @@ -184,6 +217,8 @@ " data[\"reports\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['COMMUNITY_REPORT_TABLE']}.parquet\")\n", " entity_data = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\")\n", " data[\"reports\"] = read_indexer_reports(data[\"reports\"], entity_data, COMMUNITY_LEVEL)\n", + " print(\"Reports table sample:\")\n", + " print(data[\"reports\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"COMMUNITY_REPORT_TABLE file not found. Setting reports to None.\")\n", " data[\"reports\"] = None\n", @@ -191,11 +226,13 @@ "try:\n", " data[\"text_units\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['TEXT_UNIT_TABLE']}.parquet\")\n", " data[\"text_units\"] = read_indexer_text_units(data[\"text_units\"])\n", + " print(\"Text units table sample:\")\n", + " print(data[\"text_units\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"TEXT_UNIT_TABLE file not found. Setting text_units to None.\")\n", " data[\"text_units\"] = None\n", "\n", - "logger.info(\"Data loading completed\")" + "print(\"Data loading completed\")" ] }, { @@ -222,10 +259,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-06 15:34:48,892 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-06 15:34:48,898 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-06 15:34:48,966 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-06 15:34:48,970 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + "2024-09-11 16:28:21,824 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-11 16:28:21,827 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-11 16:28:21,873 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-11 16:28:21,874 - __main__ - INFO - CouchbaseVectorStore setup completed\n" ] } ], @@ -233,13 +270,13 @@ "logger.info(\"Setting up CouchbaseVectorStore\")\n", "\n", "try:\n", - " description_embedding_store = CouchbaseVectorStore(\n", + " couchbase_vector_store = CouchbaseVectorStore(\n", " collection_name=\"entity_description_embeddings\",\n", " bucket_name=COUCHBASE_BUCKET_NAME,\n", " scope_name=COUCHBASE_SCOPE_NAME,\n", " index_name=COUCHBASE_VECTOR_INDEX_NAME,\n", " )\n", - " description_embedding_store.connect(\n", + " couchbase_vector_store.connect(\n", " connection_string=COUCHBASE_CONNECTION_STRING,\n", " username=COUCHBASE_USERNAME,\n", " password=COUCHBASE_PASSWORD,\n", @@ -275,8 +312,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-06 15:34:48,984 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-06 15:34:49,594 - __main__ - INFO - LLM and embedding models setup completed\n" + "2024-09-11 16:28:21,911 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-11 16:28:22,536 - __main__ - INFO - LLM and embedding models setup completed\n" ] } ], @@ -332,10 +369,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-06 15:34:49,609 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-06 15:34:49,612 - graphrag.vector_stores.couchbasedb - INFO - Loading 96 documents into vector storage\n", - "2024-09-06 15:34:49,998 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded 96 out of 96 documents\n", - "2024-09-06 15:34:50,007 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + "2024-09-11 16:28:22,550 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-11 16:28:22,553 - graphrag.vector_stores.couchbasedb - INFO - Loading 96 documents into vector storage\n", + "2024-09-11 16:28:22,992 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded 96 out of 96 documents\n", + "2024-09-11 16:28:22,997 - __main__ - INFO - Entity semantic embeddings stored successfully\n" ] } ], @@ -346,7 +383,7 @@ " entities_list = list(data[\"entities\"].values()) if isinstance(data[\"entities\"], dict) else data[\"entities\"]\n", "\n", " store_entity_semantic_embeddings(\n", - " entities=entities_list, vectorstore=description_embedding_store\n", + " entities=entities_list, vectorstore=couchbase_vector_store\n", " )\n", " logger.info(\"Entity semantic embeddings stored successfully\")\n", "except AttributeError as e:\n", @@ -364,14 +401,70 @@ "id": "f0LSSSJlgdZd" }, "source": [ - "# Building the Search Engine\n", - "Now that we have stored the embeddings and set up the models, we create the search engine. This step configures how queries will be processed, how much weight each entity or relationship will have, and how many entities or relationships will be retrieved in a query.\n", - "\n", - "## LocalSearch\n", - "A local search engine that integrates with the language model and vector store to retrieve data.\n", - "## LocalSearchMixedContext\n", - "A context builder that combines different types of context (reports, entities, relationships) and prepares them for querying.\n", - "python\n" + "### **7. Building the Search Engine (In the Context of Graphrag)**\n", + "\n", + "In this section, we focus on creating a search engine that integrates multiple components, specifically designed for the **Graphrag** system. Graphrag is a sophisticated architecture built for handling structured data, entities, relationships, and other contextual information to provide semantic search capabilities. This search engine allows you to query this structured data using **natural language** and get relevant, context-aware responses.\n", + "\n", + "Here, we explain the components of the search engine in detail and how they contribute to its functionality within Graphrag.\n", + "\n", + "#### **1. Context Builder (LocalSearchMixedContext)**\n", + "\n", + "The `LocalSearchMixedContext` class is the cornerstone of our search engine in Graphrag. It acts as a **contextual environment** for the search process by combining various types of data—such as **community reports, text units, entities, relationships, and covariates**—into a coherent structure that can be used by the search engine. In this context:\n", + "\n", + "- **Community Reports**: These are structured documents or insights generated at a community level, such as summaries or analytics reports, which are crucial when trying to query community-specific data.\n", + "- **Text Units**: Smaller pieces of text, such as paragraphs, sentences, or tokens that are stored in the system. These units help in understanding specific parts of the context when answering questions.\n", + "- **Entities**: These represent the core subjects (people, organizations, products, etc.) around which your queries are structured. Each entity has certain attributes and semantic embeddings stored in Couchbase, and these are used to enrich the search results.\n", + "- **Relationships**: The connections between entities, which can represent anything from business partnerships to familial ties or data dependencies. Understanding these relationships helps in contextualizing the search results more effectively.\n", + "- **Covariates**: Additional variables or metadata that provide more information about entities and relationships. These could include factors like location, time, or other metrics that affect the relevance of the search.\n", + "\n", + "All these elements work together to build the **context** that the search engine will use to find and rank results.\n", + "\n", + "- **entity_text_embeddings**: The entity descriptions are stored as vector embeddings (using the Couchbase vector store) to help in finding semantically similar entities.\n", + "- **text_embedder**: This is the **OpenAI embedding model** used to embed both the entities and user queries in a similar vector space, allowing for meaningful similarity comparisons.\n", + "- **token_encoder**: Tokenization splits the input text into tokens (smaller chunks), making it easier to process by the language models.\n", + "\n", + "#### **2. Local Search Parameters**\n", + "\n", + "Once the context is established, we define the parameters for the **search engine**. These parameters guide how the search engine processes the context to answer a query.\n", + "\n", + "- **text_unit_prop**: This sets the proportion of text units to be considered when building the context. In this case, 50% of the context comes from text units.\n", + "- **community_prop**: Similar to `text_unit_prop`, this defines how much weight to give community reports. Here, 10% of the context is derived from community reports.\n", + "- **conversation_history_max_turns**: This specifies how many conversation history turns are retained when building the context. It helps in multi-turn queries, where the context from previous queries may still be relevant.\n", + "- **top_k_mapped_entities**: Defines how many of the most relevant entities should be considered in each query. In this case, we are considering the top 10 entities.\n", + "- **top_k_relationships**: Similarly, we consider the top 10 relationships that are most relevant to the query.\n", + "- **include_entity_rank**: Whether to rank entities based on their relevance to the query.\n", + "- **include_relationship_weight**: Whether to include relationship weights in the ranking process. This is crucial because certain relationships may have higher importance based on the data being queried.\n", + "- **embedding_vectorstore_key**: Defines the **key** for accessing entity embeddings from Couchbase. Here, we use `EntityVectorStoreKey.ID` as the identifier for retrieving the correct embeddings.\n", + "- **max_tokens**: The maximum number of tokens to consider in the context.\n", + "\n", + "\n", + "#### **3. Language Model Parameters**\n", + "\n", + "For answering the query, we use the **language model** (LLM) to generate the response. The parameters for the LLM are configured here:\n", + "- **max_tokens**: Limits the number of tokens (words or sub-words) in the generated answer.\n", + "- **temperature**: Controls the randomness of the output. Setting it to `0.0` makes the model’s answers more deterministic.\n", + "\n", + "\n", + "#### **4. Integrating Everything: Creating the Search Engine**\n", + "\n", + "Finally, all components are integrated into the `LocalSearch` class, which serves as the main search engine. This class is responsible for:\n", + "- **Accepting queries** in natural language.\n", + "- **Using the context builder** to form a detailed context based on the available structured data (entities, relationships, text, reports).\n", + "- **Passing the query and context** to the language model (LLM), which generates the final answer.\n", + "\n", + "The search engine is now ready to process queries, using the underlying Graphrag system to provide context-aware and semantically rich answers.\n", + "\n", + "\n", + "### **Summary**\n", + "\n", + "In this section, we have built a search engine specifically designed for the **Graphrag** system. This search engine leverages **structured data** (entities, relationships, reports, etc.) and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context to generate meaningful answers.\n", + "\n", + "Key steps include:\n", + "1. Setting up the **context builder** to combine different types of data.\n", + "2. Defining search parameters for handling text units, entities, relationships, and embedding similarities.\n", + "3. Integrating the **language model** to generate answers based on the context.\n", + "\n", + "This search engine is highly useful for querying large-scale structured data and generating insights using natural language queries. It’s particularly relevant for systems like Graphrag, where the data has both structured and unstructured components that need to be processed together for an enriched search experience." ] }, { @@ -385,8 +478,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-06 15:34:50,037 - __main__ - INFO - Creating search engine\n", - "2024-09-06 15:34:50,042 - __main__ - INFO - Search engine created\n" + "2024-09-11 16:28:23,046 - __main__ - INFO - Creating search engine\n", + "2024-09-11 16:28:23,052 - __main__ - INFO - Search engine created\n" ] } ], @@ -399,7 +492,7 @@ " entities=data[\"entities\"],\n", " relationships=data[\"relationships\"],\n", " covariates=data[\"covariates\"],\n", - " entity_text_embeddings=description_embedding_store,\n", + " entity_text_embeddings=couchbase_vector_store,\n", " embedding_vectorstore_key=EntityVectorStoreKey.ID,\n", " text_embedder=text_embedder,\n", " token_encoder=token_encoder,\n", @@ -460,15 +553,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-06 15:34:50,067 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-06 15:34:50,075 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-06 15:34:50,606 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-06 15:34:50,617 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-06 15:34:50,628 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-06 15:34:50,636 - graphrag.query.context_builder.community_context - WARNING - Warning: No community records added when building community context.\n", - "2024-09-06 15:34:50,757 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1725617090.0754764. QUERY: Give me a summary about the story\n", - "2024-09-06 15:34:51,781 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-06 15:35:02,055 - __main__ - INFO - Query completed successfully\n" + "2024-09-11 16:28:23,093 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-11 16:28:23,096 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-11 16:28:23,914 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-11 16:28:24,107 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-11 16:28:24,115 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-11 16:28:24,122 - graphrag.query.context_builder.community_context - WARNING - Warning: No community records added when building community context.\n", + "2024-09-11 16:28:24,212 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726052303.0959587. QUERY: Give me a summary about the story\n", + "2024-09-11 16:28:25,232 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-11 16:28:34,545 - __main__ - INFO - Query completed successfully\n" ] }, { @@ -480,29 +573,35 @@ "\n", "### Introduction to the Mission\n", "\n", - "The narrative centers around a team from the Paranormal Military Squad, tasked with a mission at the Dulce military base. This mission, known as Operation: Dulce, involves investigating and responding to an alien signal that has been detected. The team is composed of key figures such as Alex, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, each bringing their unique skills and perspectives to the mission [Data: Entities (21, 47, 50, 68, 27, 4); Relationships (117, 56, 31, 88, 68, 50, 27, 4)].\n", + "The narrative revolves around a mission undertaken by the Paranormal Military Squad at the Dulce military base. The mission, known as Operation: Dulce, is a high-stakes endeavor involving the investigation and potential first contact with extraterrestrial intelligence. The team, led by key figures such as Alex, Taylor Cruz, and Dr. Jordan Hayes, navigates the complexities and dangers of the base, which is filled with advanced technology and hidden secrets [Data: Entities (21, 47, 50, 54, 157, 193)].\n", "\n", - "### The Setting and Initial Discoveries\n", + "### Key Characters and Their Roles\n", "\n", - "The story unfolds in the eerie and technologically advanced environment of the Dulce base. The team navigates through various locations within the base, including the server room, where they uncover critical information, and the crash site, where Dr. Jordan Hayes studies alien technology [Data: Entities (50, 44); Relationships (58, 54, 32, 8, 73, 136)]. The concrete hallway marks a significant threshold between the familiar world above and the strangeness beneath, symbolizing the transition into the unknown [Data: Entities (24); Relationships (158)].\n", + "**Alex** is a central figure in the mission, displaying leadership and a mix of respect, mentorship, and skepticism. He works closely with other team members, including Dr. Jordan Hayes and Sam Rivera, to decode and respond to the alien signal [Data: Entities (47); Relationships (117, 88, 56, 155, 196)].\n", "\n", - "### The Cosmic Play and Human Involvement\n", + "**Dr. Jordan Hayes** is a scientist studying alien technology retrieved from a crash site. Jordan uses the metaphor of a \"cosmic ballet\" to describe the intricate process of deciphering alien signals, highlighting the scientific and philosophical implications of their work [Data: Entities (44, 54, 88); Relationships (64)].\n", "\n", - "The narrative describes the human race as unwitting actors in a larger cosmic play, with Earth as the stage. This cosmic play involves the potential for interstellar diplomacy and the intricate process of deciphering alien signals, metaphorically referred to as the \"cosmic ballet\" by Dr. Jordan Hayes [Data: Entities (55, 57, 88); Relationships (197, 153, 35, 12, 79)]. The team feels a profound sense of responsibility as they stand on the precipice of making history by establishing intergalactic contact [Data: Entities (62, 81); Relationships (102, 138, 211)].\n", + "**Taylor Cruz** is another key member of the team, providing strategic insights and maintaining control over the mission's operations. Cruz's leadership is marked by a blend of authority and vulnerability, as they navigate the challenges posed by the unknown [Data: Entities (27, 32, 46); Relationships (31, 43, 148)].\n", "\n", - "### Key Interactions and Relationships\n", + "**Sam Rivera** is a technology expert who plays a crucial role in interpreting the alien signals and bridging communication systems. Sam's expertise and youthful energy are vital to the team's efforts [Data: Entities (23, 68, 73); Relationships (70, 90)].\n", "\n", - "Alex emerges as a key figure, displaying leadership and mentorship qualities as he navigates the complexities of the mission. His interactions with other team members, such as Dr. Jordan Hayes and Sam Rivera, highlight the blend of respect, skepticism, and camaraderie that defines their relationships [Data: Entities (47); Relationships (117, 56, 88, 196, 155, 183)]. Taylor Cruz, another significant member, provides strategic insights and maintains a commanding presence, though not without moments of vulnerability and respect for the gravity of their discoveries [Data: Entities (27); Relationships (31, 46, 43, 32, 148)].\n", + "### The Cosmic Play and Human Involvement\n", + "\n", + "The story portrays humanity as unwitting actors in a larger cosmic narrative, referred to as the \"cosmic play.\" Earth serves as the stage for this grand drama, with the human race involved in efforts of cosmic discovery and interstellar diplomacy [Data: Entities (55, 57, 81); Relationships (197, 200, 108)].\n", "\n", "### The Interstellar Pas de Deux\n", "\n", - "A central theme in the story is the \"interstellar pas de deux,\" a dance-like interaction between the team and the unknown extraterrestrial intelligence. This interaction is marked by attempts at communication and understanding, with the team interpreting signals and uncovering the intent behind the alien messages [Data: Entities (90); Relationships (122, 65, 22, 90, 46)]. The potential for interspecies communication and the broader implications of their discoveries are explored, emphasizing the delicate balance between curiosity and caution [Data: Relationships (199, 201, 205, 210)].\n", + "A significant aspect of the mission is the \"interstellar pas de deux,\" a dance-like interaction between the Paranormal Military Squad and the unknown extraterrestrial intelligence. This interaction is marked by attempts at communication and understanding, with the potential for significant advancements in human knowledge and interspecies diplomacy [Data: Entities (90, 70, 71); Relationships (122, 65, 22)].\n", + "\n", + "### The Cosmic Threshold\n", + "\n", + "The team reaches a critical moment known as the \"cosmic threshold,\" representing the potential first contact with an alien intelligence. This milestone is seen as a monumental achievement for humanity, with the team poised to make history [Data: Entities (81, 62); Relationships (114, 102, 211)].\n", "\n", - "### Conclusion and Legacy\n", + "### Conclusion\n", "\n", - "As the team delves deeper into the mission, they confront the existential implications of their discoveries. The narrative captures their collective resolve and the transformation of their roles from mere operatives to guardians of a threshold, poised to redefine humanity's place in the cosmos [Data: Sources (3, 7, 10, 1)]. The story concludes with the team standing on the brink of a new reality, their actions and decisions poised to make history and potentially alter the course of human knowledge and interstellar relations.\n", + "The story of Operation: Dulce is a blend of scientific exploration, philosophical inquiry, and the human quest for understanding. The Paranormal Military Squad's mission at the Dulce base encapsulates the tension between the known and the unknown, the earthly and the cosmic, as they navigate the complexities of interstellar communication and the potential for a new era of human history [Data: Entities (91, 79, 50); Relationships (121, 205, 208)].\n", "\n", - "In summary, the story of Operation: Dulce is a compelling blend of science fiction and human drama, exploring themes of discovery, responsibility, and the profound impact of first contact with an alien intelligence. The characters' interactions and the unfolding cosmic narrative create a rich tapestry of intrigue and anticipation.\n" + "This summary captures the essence of the narrative, highlighting the key characters, their roles, and the overarching themes of cosmic discovery and human involvement in a larger, interstellar context.\n" ] } ], diff --git a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py index c8f657b4c4..8e01c240df 100644 --- a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py +++ b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py @@ -4,6 +4,7 @@ import traceback from typing import Any, Callable, Dict, List, Union +from dotenv import load_dotenv import pandas as pd import tiktoken @@ -31,7 +32,7 @@ ) logger = logging.getLogger(__name__) - +load_dotenv() INPUT_DIR = os.getenv("INPUT_DIR") COUCHBASE_CONNECTION_STRING = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") @@ -44,6 +45,7 @@ LLM_MODEL = os.getenv("LLM_MODEL", "gpt-4o") EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text-embedding-ada-002") + # Constants COMMUNITY_LEVEL = 2 @@ -65,20 +67,20 @@ def load_data() -> Dict[str, Any]: def load_table(table_name: str, read_function: Callable, *args) -> Any: try: - table_data = pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES[table_name]}.parquet") + table_data = pd.read_parquet( + f"{INPUT_DIR}/{TABLE_NAMES[table_name]}.parquet" + ) return read_function(table_data, *args) except FileNotFoundError: - logger.warning(f"{table_name} file not found. Setting {table_name.lower()} to None.") + logger.warning( + f"{table_name} file not found. Setting {table_name.lower()} to None." + ) return None - data["entities"] = load_table("ENTITY_TABLE", read_indexer_entities, - pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet"), - COMMUNITY_LEVEL) + data["entities"] = load_table("ENTITY_TABLE", read_indexer_entities, pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet"), COMMUNITY_LEVEL) data["relationships"] = load_table("RELATIONSHIP_TABLE", read_indexer_relationships) data["covariates"] = load_table("COVARIATE_TABLE", read_indexer_covariates) - data["reports"] = load_table("COMMUNITY_REPORT_TABLE", read_indexer_reports, - pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet"), - COMMUNITY_LEVEL) + data["reports"] = load_table("COMMUNITY_REPORT_TABLE", read_indexer_reports, pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet"), COMMUNITY_LEVEL) data["text_units"] = load_table("TEXT_UNIT_TABLE", read_indexer_text_units) logger.info("Data loading completed") @@ -141,6 +143,7 @@ def setup_models() -> Dict[str, Any]: "text_embedder": text_embedder, } + def store_embeddings( entities: Union[Dict[str, Any], List[Any]], vector_store: CouchbaseVectorStore ) -> None: diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index e2625ad3dd..f57e746561 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -140,20 +140,22 @@ def similarity_search_by_vector( ) ) + fields = kwargs.get('fields', ["*"]) + if self.scoped_index: search_iter = self.scope.search( self.index_name, search_req, SearchOptions( limit=k, - fields=["*"], + fields=fields, ), ) else: search_iter = self.db_connection.search( index=self.index_name, request=search_req, - options=SearchOptions(limit=k, fields=["*"]), + options=SearchOptions(limit=k, fields=fields), ) results = [] From be2b075229526ff0a84aba577de549891a550bae Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Wed, 11 Sep 2024 16:56:59 +0530 Subject: [PATCH 05/25] upgraded load documents --- .../couchbase/couchbasedb_demo.py | 2 +- graphrag/vector_stores/couchbasedb.py | 77 +++++++++---------- 2 files changed, 38 insertions(+), 41 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py index 8e01c240df..ccfb7df1f8 100644 --- a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py +++ b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py @@ -4,9 +4,9 @@ import traceback from typing import Any, Callable, Dict, List, Union -from dotenv import load_dotenv import pandas as pd import tiktoken +from dotenv import load_dotenv from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey from graphrag.query.indexer_adapters import ( diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index f57e746561..f718e79677 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -6,7 +6,6 @@ from couchbase.auth import PasswordAuthenticator from couchbase.cluster import Cluster -from couchbase.exceptions import DocumentExistsException from couchbase.options import ClusterOptions, SearchOptions from couchbase.search import SearchRequest from couchbase.vector_search import VectorQuery, VectorSearch @@ -47,7 +46,8 @@ def __init__( self.scoped_index = scoped_index self.vector_size = kwargs.get("vector_size", DEFAULT_VECTOR_SIZE) logger.debug( - f"Initialized CouchbaseVectorStore with collection: {collection_name}, bucket: {bucket_name}, scope: {scope_name}, index: {index_name}" + "Initialized CouchbaseVectorStore with collection: %s, bucket: %s, scope: %s, index: %s", + collection_name, bucket_name, scope_name, index_name ) def connect(self, **kwargs: Any) -> None: @@ -57,13 +57,15 @@ def connect(self, **kwargs: Any) -> None: password = kwargs.get("password") if not isinstance(username, str) or not isinstance(password, str): - logger.error("Username and password must be strings") - raise TypeError("Username and password must be strings") + error_msg = "Username and password must be strings" + logger.error(error_msg) + raise TypeError(error_msg) if not isinstance(connection_string, str): - logger.error("Connection string must be a string") - raise TypeError("Connection string must be a string") + error_msg = "Connection string must be a string" + logger.error(error_msg) + raise TypeError(error_msg) - logger.info(f"Connecting to Couchbase at {connection_string}") + logger.info("Connecting to Couchbase at %s", connection_string) auth = PasswordAuthenticator(username, password) options = ClusterOptions(auth) cluster = Cluster(connection_string, options) @@ -73,43 +75,38 @@ def connect(self, **kwargs: Any) -> None: self.document_collection = self.scope.collection(self.collection_name) logger.info("Successfully connected to Couchbase") - def load_documents( - self, documents: list[VectorStoreDocument], overwrite: bool = True - ) -> None: + def load_documents(self, documents: list[VectorStoreDocument]) -> None: """Load documents into vector storage.""" - logger.info(f"Loading {len(documents)} documents into vector storage") - batch = [ - { - "id": doc.id, + logger.info("Loading %d documents into vector storage", len(documents)) + batch = { + doc.id: { self.text_key: doc.text, self.embedding_key: doc.vector, "attributes": json.dumps(doc.attributes), } for doc in documents if doc.vector is not None - ] + } if batch: - successful_loads = 0 - for doc in batch: - try: - if overwrite: - self.document_collection.upsert(doc["id"], doc) + try: + result = self.document_collection.upsert_multi(batch) + + # Assuming the result has an 'all_ok' attribute + if hasattr(result, "all_ok"): + if result.all_ok: + logger.info("Successfully loaded all %d documents", len(batch)) else: - self.document_collection.insert(doc["id"], doc) - successful_loads += 1 - except DocumentExistsException: - if not overwrite: - logger.warning( - f"Document with id {doc['id']} already exists and overwrite is set to False" - ) - except Exception as e: - logger.error( - f"Error occurred while loading document {doc['id']}: {str(e)}" - ) - - logger.info( - f"Successfully loaded {successful_loads} out of {len(batch)} documents" - ) + logger.warning("Some documents failed to load") + else: + logger.info("Unable to determine success status of document loading") + + # If there's a way to access individual results, log them + if hasattr(result, "__iter__"): + for key, value in result: + logger.info("Document %s: %s", key, "Success" if value.success else "Failed") + + except Exception as e: + logger.exception("Error occurred while loading documents: %s", str(e)) else: logger.warning("No valid documents to load") @@ -117,7 +114,7 @@ def similarity_search_by_text( self, text: str, text_embedder: TextEmbedder, k: int = 10, **kwargs: Any ) -> list[VectorStoreSearchResult]: """Perform ANN search by text.""" - logger.info(f"Performing similarity search by text with k={k}") + logger.info("Performing similarity search by text with k=%d", k) query_embedding = text_embedder(text) if query_embedding: return self.similarity_search_by_vector(query_embedding, k) @@ -128,7 +125,7 @@ def similarity_search_by_vector( self, query_embedding: list[float], k: int = 10, **kwargs: Any ) -> list[VectorStoreSearchResult]: """Perform ANN search by vector.""" - logger.info(f"Performing similarity search by vector with k={k}") + logger.info("Performing similarity search by vector with k=%d", k) search_req = SearchRequest.create( VectorSearch.from_vector_query( @@ -140,7 +137,7 @@ def similarity_search_by_vector( ) ) - fields = kwargs.get('fields', ["*"]) + fields = kwargs.get("fields", ["*"]) if self.scoped_index: search_iter = self.scope.search( @@ -171,13 +168,13 @@ def similarity_search_by_vector( ) results.append(VectorStoreSearchResult(document=doc, score=score)) - logger.info(f"Found {len(results)} results in similarity search by vector") + logger.info("Found %d results in similarity search by vector", len(results)) return results def filter_by_id(self, include_ids: list[str] | list[int]) -> Any: """Build a query filter to filter documents by id.""" id_filter = ",".join([f"{id!s}" for id in include_ids]) - logger.debug(f"Created filter by ID: {id_filter}") + logger.debug("Created filter by ID: %s", id_filter) return f"search.in(id, '{id_filter}', ',')" def _format_metadata(self, row_fields: dict[str, Any]) -> dict[str, Any]: From 3c7c21572fee123b021dad241f5f947d2e4c2e10 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Wed, 11 Sep 2024 16:57:32 +0530 Subject: [PATCH 06/25] changed ANN to KNN --- graphrag/vector_stores/couchbasedb.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index f718e79677..5dad863649 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -113,7 +113,7 @@ def load_documents(self, documents: list[VectorStoreDocument]) -> None: def similarity_search_by_text( self, text: str, text_embedder: TextEmbedder, k: int = 10, **kwargs: Any ) -> list[VectorStoreSearchResult]: - """Perform ANN search by text.""" + """Perform KNN search by text.""" logger.info("Performing similarity search by text with k=%d", k) query_embedding = text_embedder(text) if query_embedding: @@ -124,7 +124,7 @@ def similarity_search_by_text( def similarity_search_by_vector( self, query_embedding: list[float], k: int = 10, **kwargs: Any ) -> list[VectorStoreSearchResult]: - """Perform ANN search by vector.""" + """Perform KNN search by vector.""" logger.info("Performing similarity search by vector with k=%d", k) search_req = SearchRequest.create( From de65413ec5c20094bc2e9fdf306ba175cbd9a792 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Tue, 17 Sep 2024 12:35:46 +0530 Subject: [PATCH 07/25] feat: added cluster options and updated logging statements in the demo --- .../couchbase/couchbasedb_demo.py | 48 ++++++++++--------- graphrag/vector_stores/couchbasedb.py | 3 +- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py index ccfb7df1f8..7c8b2cd669 100644 --- a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py +++ b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py @@ -1,8 +1,15 @@ +""" +Couchbase Vector Store Demo for GraphRAG. + +This module demonstrates the usage of Couchbase as a vector store for GraphRAG, +including data loading, vector store setup, and query execution. +""" + import asyncio import logging import os -import traceback -from typing import Any, Callable, Dict, List, Union +from collections.abc import Callable +from typing import Any import pandas as pd import tiktoken @@ -45,7 +52,6 @@ LLM_MODEL = os.getenv("LLM_MODEL", "gpt-4o") EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text-embedding-ada-002") - # Constants COMMUNITY_LEVEL = 2 @@ -60,7 +66,7 @@ } -def load_data() -> Dict[str, Any]: +def load_data() -> dict[str, Any]: """Load data from parquet files.""" logger.info("Loading data from parquet files") data = {} @@ -73,7 +79,8 @@ def load_table(table_name: str, read_function: Callable, *args) -> Any: return read_function(table_data, *args) except FileNotFoundError: logger.warning( - f"{table_name} file not found. Setting {table_name.lower()} to None." + "%(table_name)s file not found. Setting %(table_name_lower)s to None.", + {"table_name": table_name, "table_name_lower": table_name.lower()} ) return None @@ -103,14 +110,14 @@ def setup_vector_store() -> CouchbaseVectorStore: password=COUCHBASE_PASSWORD, ) logger.info("CouchbaseVectorStore setup completed") - except Exception as e: - logger.error(f"Error setting up CouchbaseVectorStore: {str(e)}") + except Exception: + logger.exception("Error setting up CouchbaseVectorStore:") raise return description_embedding_store -def setup_models() -> Dict[str, Any]: +def setup_models() -> dict[str, Any]: """Set up LLM and embedding models.""" logger.info("Setting up LLM and embedding models") try: @@ -134,7 +141,7 @@ def setup_models() -> Dict[str, Any]: logger.info("LLM and embedding models setup completed") except Exception as e: - logger.error(f"Error setting up models: {str(e)}") + logger.exception("Error setting up models: %s", str(e)) raise return { @@ -145,34 +152,32 @@ def setup_models() -> Dict[str, Any]: def store_embeddings( - entities: Union[Dict[str, Any], List[Any]], vector_store: CouchbaseVectorStore + entities: dict[str, Any] | list[Any], vector_store: CouchbaseVectorStore ) -> None: """Store entity semantic embeddings in Couchbase.""" - logger.info(f"Storing entity embeddings") + logger.info("Storing entity embeddings") try: if isinstance(entities, dict): entities_list = list(entities.values()) elif isinstance(entities, list): entities_list = entities - else: - raise TypeError("Entities must be either a list or a dictionary") store_entity_semantic_embeddings( entities=entities_list, vectorstore=vector_store ) logger.info("Entity semantic embeddings stored successfully") except AttributeError as e: - logger.error(f"Error storing entity semantic embeddings: {str(e)}") + logger.exception("Error storing entity semantic embeddings: %s", str(e)) logger.error("Ensure all entities have an 'id' attribute") raise except Exception as e: - logger.error(f"Error storing entity semantic embeddings: {str(e)}") + logger.exception("Error storing entity semantic embeddings: %s", str(e)) raise def create_search_engine( - data: Dict[str, Any], models: Dict[str, Any], vector_store: CouchbaseVectorStore + data: dict[str, Any], models: dict[str, Any], vector_store: CouchbaseVectorStore ) -> LocalSearch: """Create and configure the search engine.""" logger.info("Creating search engine") @@ -223,18 +228,17 @@ def create_search_engine( async def run_query(search_engine: LocalSearch, question: str) -> None: """Run a query using the search engine.""" try: - logger.info(f"Running query: {question}") + logger.info("Running query: %s", question) result = await search_engine.asearch(question) print(f"Question: {question}") print(f"Answer: {result.response}") logger.info("Query completed successfully") except Exception as e: - logger.error(f"An error occurred while processing the query: {str(e)}") - print(f"An error occurred while processing the query: {str(e)}") + logger.exception("An error occurred while processing the query: %s", str(e)) async def main() -> None: - """Main function to orchestrate the demo.""" + """Orchestrate the demo.""" try: logger.info("Starting Couchbase demo") data = load_data() @@ -253,9 +257,7 @@ async def main() -> None: logger.info("Couchbase demo completed") except Exception as e: - logger.error(f"An error occurred: {str(e)}") - logger.error(f"Traceback: {traceback.format_exc()}") - print(f"An error occurred: {str(e)}") + logger.exception("An error occurred: %s", str(e)) if __name__ == "__main__": diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index 5dad863649..798522eb54 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -55,6 +55,7 @@ def connect(self, **kwargs: Any) -> None: connection_string = kwargs.get("connection_string") username = kwargs.get("username") password = kwargs.get("password") + cluster_options = kwargs.get("cluster_options", {}) if not isinstance(username, str) or not isinstance(password, str): error_msg = "Username and password must be strings" @@ -67,7 +68,7 @@ def connect(self, **kwargs: Any) -> None: logger.info("Connecting to Couchbase at %s", connection_string) auth = PasswordAuthenticator(username, password) - options = ClusterOptions(auth) + options = ClusterOptions(auth, **cluster_options) cluster = Cluster(connection_string, options) self.db_connection = cluster self.bucket = cluster.bucket(self.bucket_name) From e386d21d89b22b9352453a3c13312e3b8f9b3615 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Thu, 19 Sep 2024 12:11:39 +0530 Subject: [PATCH 08/25] feat: fixed the vector store and the demo --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 354 ++++++++++++------ .../community_contrib/couchbase/__init__.py | 10 + .../couchbase/couchbasedb_demo.py | 181 +++++---- .../couchbase/graphrag_demo_index.json | 2 +- graphrag/vector_stores/couchbasedb.py | 59 +-- 5 files changed, 382 insertions(+), 224 deletions(-) create mode 100644 examples_notebooks/community_contrib/couchbase/__init__.py diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 0933eb70ba..bf80577c32 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -6,7 +6,7 @@ "id": "fbw833Y2gckr" }, "source": [ - "# Tutorial on GraphRAG with Couchbase\n", + "# Tutorial on GraphRAG Local Search with Couchbase Vector Store\n", "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying structured data. This is useful when you need to search through structured data using natural language queries, leveraging both machine learning and a database." ] }, @@ -38,12 +38,13 @@ "source": [ "import logging\n", "import os\n", - "from typing import Any, Callable, Dict, List, Union\n", "\n", "import pandas as pd\n", "import tiktoken\n", "from dotenv import load_dotenv\n", "\n", + "from couchbase.auth import PasswordAuthenticator\n", + "from couchbase.options import ClusterOptions\n", "from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey\n", "from graphrag.query.indexer_adapters import (\n", " read_indexer_covariates,\n", @@ -92,11 +93,16 @@ "load_dotenv()\n", "\n", "INPUT_DIR = os.getenv(\"INPUT_DIR\")\n", - "COUCHBASE_CONNECTION_STRING = os.getenv(\"COUCHBASE_CONNECTION_STRING\", \"couchbase://localhost\")\n", + "COUCHBASE_CONNECTION_STRING = os.getenv(\n", + " \"COUCHBASE_CONNECTION_STRING\", \"couchbase://localhost\"\n", + ")\n", "COUCHBASE_USERNAME = os.getenv(\"COUCHBASE_USERNAME\", \"Administrator\")\n", "COUCHBASE_PASSWORD = os.getenv(\"COUCHBASE_PASSWORD\", \"password\")\n", "COUCHBASE_BUCKET_NAME = os.getenv(\"COUCHBASE_BUCKET_NAME\", \"graphrag-demo\")\n", "COUCHBASE_SCOPE_NAME = os.getenv(\"COUCHBASE_SCOPE_NAME\", \"shared\")\n", + "COUCHBASE_COLLECTION_NAME = os.getenv(\n", + " \"COUCHBASE_COLLECTION_NAME\", \"entity_description_embeddings\"\n", + ")\n", "COUCHBASE_VECTOR_INDEX_NAME = os.getenv(\"COUCHBASE_VECTOR_INDEX_NAME\", \"graphrag_index\")\n", "OPENAI_API_KEY = os.getenv(\"OPENAI_API_KEY\")\n", "LLM_MODEL = os.getenv(\"LLM_MODEL\", \"gpt-4o\")\n", @@ -114,52 +120,19 @@ "\n", "read_indexer_entities, read_indexer_relationships, etc., are custom functions responsible for reading specific parts of the data, such as entities and relationships.\n", "\n", - "We use pandas to load the data from the files, and if a file is not found, we log a warning and continue.\n", - "\n", - "## Entities table:\n", - "This table stores information about various entities in the system. Each entity has a unique ID, a short ID, a title, a type (e.g., PERSON), a description, and embeddings of the description. It may also include name embeddings, graph embeddings, community IDs, text unit IDs, document IDs, a rank, and additional attributes.\n", - "\n", - "## Relationships table:\n", - "This table represents relationships between entities. Each relationship has a unique ID, a short ID, a source entity, a target entity, a weight, a description, and potentially description embeddings. It also includes text unit IDs, document IDs, and may have additional attributes like rank.\n", - "\n", - "## Covariate table:\n", - "This table stores additional variables or attributes that may be associated with entities, relationships, or other elements in the system. Covariates are typically used to provide context or additional information that can be useful for analysis or modeling.\n", - "\n", - "## Reports table:\n", - "This table contains community reports. Each report has an ID, a short ID, a title, a community ID, a summary, full content, a rank, and potentially embeddings for the summary and full content. It may also include additional attributes.\n", - "\n", - "## Text units table:\n", - "This table stores text units, which are likely segments of text from documents. Each text unit has an ID, a short ID, the actual text content, and potentially text embeddings. It also includes entity IDs, relationship IDs, covariate IDs, the number of tokens, document IDs, and may have additional attributes." + "We use pandas to load the data from the files, and if a file is not found, we log a warning and continue." ] }, { "cell_type": "code", "execution_count": 3, - "metadata": { - "id": "QQTIbPrzgvyS" - }, + "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "2024-09-11 16:28:21,629 - __main__ - INFO - Loading data from parquet files\n", - "2024-09-11 16:28:21,751 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Entities table sample:\n", - "Entity(id='3b040bcc19f14e04880ae52881a89c1c', short_id='27', title='AGENTS', type='PERSON', description='Agents Alex Mercer, Jordan Hayes, Taylor Cruz, and Sam Rivera are the team members exploring Dulce base', description_embedding=[0.007186084054410458, -0.023490138351917267, -0.01996060274541378, -0.04203357920050621, -0.02858390286564827, 0.04885200038552284, -0.00892411358654499, -0.009519054554402828, 0.004632517229765654, -0.036017321050167084, 0.018556809052824974, 0.03604406118392944, -0.013496468774974346, -0.006587800569832325, 0.016150306910276413, -0.012640823610126972, 0.003860431257635355, -0.038343608379364014, -0.014372168108820915, -0.015174335800111294, 0.001866710721515119, -0.017099536955356598, 0.013549946248531342, -0.02016114443540573, 0.0021457981783896685, -0.021351026371121407, 0.014626188203692436, -0.024813715368509293, 0.02861064113676548, 0.005768921226263046, 0.005023573990911245, 0.0026187426410615444, -0.005875877104699612, -0.010140734724700451, -0.00985329132527113, -0.005260881967842579, -0.014024562202394009, -0.011684906668961048, 0.002810928737744689, -0.012848049402236938, 0.02422545850276947, -0.0027273695450276136, -0.0054046036675572395, -0.03751470148563385, -0.011377409100532532, 0.004786266013979912, -0.023824375122785568, 0.010067202150821686, -0.02629772573709488, 0.010628719814121723, 0.016524650156497955, 0.020749399438500404, -0.002555237850174308, -0.027380650863051414, 0.011317246593534946, -0.01562889665365219, -0.009478946216404438, 0.005234143231064081, -0.0019018055172637105, -0.03732752799987793, -0.013456360436975956, -0.015067379921674728, -0.021016789600253105, 0.028075862675905228, -0.009365306235849857, 0.012714355252683163, -0.005768921226263046, 0.01423847395926714, 0.01435879897326231, -1.957111271622125e-05, -0.003384144278243184, 9.207169932778925e-05, 0.01760757714509964, -0.026979567483067513, 0.028049124404788017, -0.01959962584078312, -0.015094119124114513, -0.013636847957968712, 0.0012182919308543205, 0.022126454859972, 0.02429230697453022, 0.005758894141763449, -0.03163214027881622, 0.027808474376797676, 0.021444611251354218, 0.007921404205262661, 0.003823665203526616, 0.006266933865845203, -0.029519764706492424, -0.007734231650829315, 0.012326641008257866, 0.01762094721198082, 0.030214976519346237, 0.030375409871339798, -0.045349203050136566, -0.004311650525778532, -0.011203606612980366, 0.03906555846333504, -0.021070266142487526, -0.022901883348822594, -0.009452207013964653, -0.0008606588817201555, -0.021217331290245056, -0.0075938524678349495, -0.010722305625677109, 0.0032170258928090334, -0.013824020512402058, -0.003843719372525811, 0.02018788270652294, -0.0012174563016742468, -0.023583725094795227, 0.0029730333480983973, 0.003250449663028121, -0.038798168301582336, -0.016698453575372696, -0.020709291100502014, 0.002073937328532338, -0.005839111283421516, 0.003897197311744094, -0.01989375427365303, 0.018383005633950233, 0.025896642357110977, 0.007854556664824486, -0.004716076422482729, 0.02208634652197361, -0.0061499509029090405, 0.022875143215060234, -0.016765302047133446, 0.002663864754140377, -0.002899501472711563, 0.016551390290260315, 0.005762236658483744, 0.009726281277835369, 0.006327096372842789, -0.003760160179808736, 0.009198187850415707, -0.012647507712244987, 0.030001064762473106, 0.0035462488885968924, 0.01414488721638918, 0.010715621523559093, 0.018677134066820145, -0.014104778878390789, 0.0036933128722012043, 0.011430887505412102, 0.010688882321119308, 0.012192945927381516, -0.011450941674411297, 0.009131340309977531, 0.019332237541675568, 0.020535487681627274, -0.029386069625616074, 0.012319955974817276, -0.007493581622838974, 0.011384094133973122, 0.0025903326459228992, -0.01110333576798439, 0.008436128497123718, -0.013717064633965492, -0.004926645662635565, 0.009786443784832954, -0.010354645550251007, 0.008068468421697617, -0.02173873968422413, 0.018409743905067444, 0.0262843556702137, 0.011758439242839813, -0.022433951497077942, -0.018957892432808876, 0.0018449852941557765, 0.0033122834283858538, 0.024867193773388863, -0.00897090695798397, 0.0007349024526774883, -0.016003241762518883, 0.0031518498435616493, 0.0016828805673867464, -0.018222572281956673, -0.004903248976916075, -0.006313726771622896, 0.021110374480485916, -0.0013762186281383038, -0.0014789963606745005, 0.0014163270825520158, -0.0038637735415250063, -0.006484187673777342, 0.007460157852619886, -0.011343985795974731, -0.00432167761027813, -0.0014430659357458353, 0.00975970458239317, 0.00715934531763196, 0.020990049466490746, -0.00707244360819459, -0.6374558210372925, -0.047087233513593674, 0.005708758719265461, 0.0038871702272444963, 0.002468336373567581, 0.028129341080784798, 0.013944345526397228, -0.007373256608843803, -0.010207581333816051, -0.0053812069818377495, -0.011778493411839008, 0.022968729957938194, -0.015882916748523712, -0.014452384784817696, 0.006530980579555035, -0.011725015006959438, 0.00044244551099836826, -0.00723956199362874, 0.012861419469118118, 0.005852480418980122, -0.0400281585752964, 0.009906768798828125, 0.018663763999938965, -0.021163852885365486, 0.03815643489360809, 0.001753070275299251, 0.024639911949634552, -0.0015684046084061265, -0.012192945927381516, -0.008523030206561089, -0.018302788957953453, 0.021337656304240227, 0.0012609070399776101, -0.02018788270652294, 0.04125814884901047, -0.0022126454859972, -0.010474970564246178, 0.016203783452510834, -0.020842986181378365, 0.03751470148563385, -0.0036866283044219017, 0.014786621555685997, 0.022460689768195152, -0.006547692231833935, 0.005638569127768278, 0.020548857748508453, -0.0019519409397616982, 0.016444433480501175, -0.00879710353910923, 0.016792040318250656, 0.004037576727569103, -0.027166740968823433, -0.03703340142965317, 0.004569012671709061, 0.020682552829384804, 0.0016377586871385574, 0.018342897295951843, 0.0056051453575491905, -0.002600359730422497, 0.008355911821126938, -0.008335857652127743, 0.021524827927350998, -0.04652571678161621, -6.627282709814608e-05, -0.023583725094795227, 0.022634493187069893, -0.01435879897326231, 0.02669880911707878, 0.00032817843020893633, -0.009138025343418121, 0.007246246561408043, 0.0037568178959190845, -0.01791507378220558, 0.0038671158254146576, 0.011611375026404858, 0.018155725672841072, 0.028182819485664368, -0.0022427267394959927, 0.018743980675935745, 0.031792573630809784, -0.002428228035569191, -0.016310740262269974, -0.01782148890197277, -0.023249488323926926, 0.022126454859972, -0.0008034209022298455, -0.019345607608556747, -0.00992013793438673, 0.010635404847562313, -0.045349203050136566, 0.02173873968422413, 0.029760414734482765, 0.0009458892163820565, 0.007426734548062086, 0.004391867201775312, -0.018276050686836243, 0.004067657981067896, -0.00012356304796412587, 0.03248778358101845, -0.04037576541304588, 0.0005301826167851686, 0.0042982809245586395, 0.01528129167854786, -0.03310278058052063, 0.03767513483762741, 0.005036943592131138, -0.01969321258366108, 0.0006396450335159898, 0.04772896692156792, -0.02664533071219921, -0.007961512543261051, 0.014545971527695656, -0.025241538882255554, 0.0023530246689915657, -0.0066279093734920025, -0.030482366681098938, 0.007105867378413677, -0.018489960581064224, 0.006300357636064291, -0.05299653485417366, 0.0006521788891404867, 0.01752736046910286, 0.009097917005419731, -0.011163498274981976, 0.011551212519407272, 0.00711255194619298, -0.002030486473813653, -0.02909194305539131, -0.00784787256270647, 0.004014180041849613, 0.004669283516705036, 0.00723956199362874, 0.0003891765954904258, -0.02671217918395996, 0.020254729315638542, 0.0037568178959190845, 0.0244393702596426, -0.007934773340821266, 0.020669182762503624, -0.021137114614248276, -0.049600690603256226, -0.02006755769252777, 0.005210746545344591, -0.001195730990730226, 0.017112907022237778, -0.03497450426220894, -0.020990049466490746, -0.0017931786132976413, -0.01978679932653904, -0.02847694791853428, 0.01728671044111252, 0.0014271896798163652, -0.013035221956670284, 0.020909832790493965, 0.002575292019173503, -0.00659114308655262, 0.001866710721515119, -0.019265390932559967, -0.012761148624122143, -0.022995468229055405, -0.016992582008242607, 0.012293217703700066, -0.010194212198257446, -0.0030298535712063313, -0.0013118780916556716, -0.004645886830985546, 0.010682197287678719, -0.006213455926626921, 0.0011648141080513597, -0.0266854390501976, 0.024853823706507683, -0.005207404028624296, -0.008750311098992825, 0.010622034780681133, -0.005511559545993805, 0.016350848600268364, -0.015013902448117733, 0.019292129203677177, -0.0004528904100880027, -0.008476236835122108, -0.026952829211950302, 0.028129341080784798, -0.016952473670244217, -0.006153293419629335, 0.015936395153403282, 0.009505685418844223, 0.018262680619955063, 0.05075046420097351, -0.023797636851668358, 0.019332237541675568, -0.01088942401111126, 0.00723956199362874, -0.007433419115841389, 0.0072529311291873455, -0.0010386398062109947, -0.005474793259054422, -0.0029730333480983973, 0.007647330407053232, -0.018182463943958282, 0.021123744547367096, 0.011350670829415321, 0.007266300730407238, 0.027942169457674026, -0.022647863253951073, 0.00045497939572669566, -0.029813893139362335, 0.004742815624922514, -0.023209379985928535, 0.029974326491355896, -0.0174337737262249, 0.029011724516749382, -0.03756817802786827, -0.01542835496366024, 0.00494669983163476, 0.004177955910563469, 0.02676565572619438, 0.0006354670622386038, 0.011464310809969902, -0.04008163884282112, -0.012988429516553879, -0.0013845745706930757, -0.0024917328264564276, 0.03470711410045624, -0.010876054875552654, -0.02398480847477913, -0.018115617334842682, 0.02005418762564659, -0.00044035655446350574, 0.007660700008273125, -0.03251452371478081, 0.018596917390823364, -0.005909300874918699, -0.006307042203843594, 0.005280936136841774, 0.0028159422799944878, -0.01202582847326994, -0.007466842886060476, -0.0038704583421349525, 0.010815892368555069, -0.017086168751120567, 0.004137847572565079, 0.020856356248259544, 0.027313804253935814, -0.007079128175973892, 0.0306428000330925, 0.007399995345622301, 0.025428710505366325, -0.0038002687506377697, -0.0314449667930603, 0.006393943447619677, -0.03510819748044014, 0.003270503832027316, -0.010782468132674694, -0.004518877249211073, -0.025455448776483536, -0.023316336795687675, 0.009178133681416512, 0.02414524182677269, 0.0011664852499961853, 0.029065202921628952, 0.018235942348837852, 0.012440280988812447, 0.008402705192565918, -0.009224926121532917, 0.015882916748523712, 0.012827995233237743, -0.017139645293354988, -0.001212442759424448, -0.030134759843349457, -0.027260325849056244, 0.009251665323972702, -0.00542800035327673, 0.010876054875552654, 0.002627098700031638, 0.018195834010839462, 0.011437571607530117, -0.006891956087201834, -0.007426734548062086, -0.00041424433584325016, -0.0014572710497304797, -0.004241460934281349, -0.026859242469072342, 0.018743980675935745, 0.04005489870905876, 0.0019419138552621007, -0.002289519878104329, 0.003539564087986946, 0.00657443143427372, -0.02656511403620243, 0.016230523586273193, 0.010782468132674694, 0.005006862338632345, 0.0027190137188881636, 0.006952118594199419, -0.008182108402252197, 0.01751399040222168, 0.022741449996829033, -0.016832148656249046, -0.004702707286924124, 0.002030486473813653, 0.0031869446393102407, -0.010869369842112064, 0.0196129959076643, -0.024706760421395302, 0.02224677987396717, 0.012126099318265915, -0.01768779382109642, -0.009826552122831345, 0.009124655276536942, -0.02445274032652378, 0.00602962588891387, 0.013757172971963882, -0.018302788957953453, 0.0047495001927018166, 0.006795027293264866, 0.0029396098107099533, -0.029145419597625732, 0.0002575709659140557, 0.021471351385116577, -0.013690325431525707, 0.009793128818273544, -0.024800345301628113, -0.015789330005645752, -0.011343985795974731, 0.12171555310487747, 0.034306030720472336, -0.0041879829950630665, 0.0015892944065853953, 0.014666296541690826, 0.005715443752706051, -0.010080572217702866, 0.004228091333061457, 0.0023196011316031218, -0.03128453344106674, -1.3500020031642634e-05, 0.025268277153372765, -0.016136936843395233, -0.00653432309627533, 0.009405414573848248, 0.017059428617358208, -0.019211912527680397, -0.02193928137421608, -0.016778670251369476, 0.000854391953907907, -0.015214444138109684, 0.0011422531679272652, 0.00764064583927393, 0.016805410385131836, -0.0017146330792456865, -0.016043350100517273, 0.01522781327366829, -0.0007144304690882564, 0.0031969717238098383, 0.004873167723417282, 0.031658876687288284, 0.0025034311693161726, -0.005374522414058447, 0.0068284510634839535, -0.010789153166115284, 0.0010745702311396599, 0.010227635502815247, 0.015829438343644142, 0.027233587577939034, -0.0039607021026313305, 0.007654014974832535, 0.0019068190595135093, -0.004244802985340357, -0.03903881832957268, 0.008362596854567528, -0.016898995265364647, -0.0144657539203763, 0.031605400145053864, 0.023516878485679626, -0.020869724452495575, 0.032273873686790466, -0.018102247267961502, -0.019465932622551918, -0.005097106099128723, 0.027915429323911667, 0.01223305519670248, 0.029706938192248344, -0.004716076422482729, -0.026992937549948692, -0.012112729251384735, -0.016070090234279633, -0.02603033557534218, 0.011230344884097576, -0.020869724452495575, 0.0005974476807750762, -0.03264821693301201, 0.0016569773433730006, -0.0022293571382761, -0.008736941032111645, -0.029519764706492424, -0.0069387489929795265, -0.005344441160559654, 0.001554199610836804, 0.024813715368509293, 0.029065202921628952, 0.0018583547789603472, 0.00763396080583334, -0.010194212198257446, 0.01959962584078312, 0.005504874512553215, -0.008355911821126938, -0.004702707286924124, 0.019198542460799217, -0.005725470837205648, -0.0030766467098146677, 0.004060972947627306, 0.011190236546099186, -0.008670094422996044, 0.00489990646019578, 0.011938926763832569, -0.02232699654996395, -0.009231611154973507, 0.024720128625631332, -0.012366749346256256, 0.01562889665365219, 0.02863738127052784, 0.017246602103114128, 0.013656902126967907, -0.003519509918987751, 0.02180558629333973, 0.00024106804630719125, -0.06599164754152298, -0.006621224340051413, 0.002583647845312953, 0.01438553724437952, -0.008937482722103596, -0.030295193195343018, 0.01787496544420719, -0.018637025728821754, -0.008583192713558674, -0.003462689695879817, -0.002749094972386956, -0.015548680908977985, -0.018516700714826584, 0.01750062219798565, 0.0011890461901202798, -0.018463222309947014, 0.027246957644820213, -0.036471884697675705, -0.00012293635518290102, 0.02903846465051174, -0.018449852243065834, 0.01222637016326189, 0.023730788379907608, -0.024827085435390472, 0.016337478533387184, 0.004926645662635565, -0.04470746964216232, 0.011437571607530117, -0.005117160268127918, -0.02611055225133896, 0.01974669098854065, -0.02013440430164337, -0.013783912174403667, -0.025335123762488365, -0.016497911885380745, -0.027260325849056244, 0.02395807020366192, -0.024733498692512512, -0.024653282016515732, -0.002342997584491968, 0.027380650863051414, 0.009351936168968678, -0.0001162516200565733, -0.009117971174418926, -0.02657848410308361, 0.011524473316967487, 0.004699364770203829, -0.004990150686353445, 0.008609930984675884, -0.005578406620770693, 0.013743803836405277, -0.00024963286705315113, -0.010481655597686768, -0.01532140001654625, -0.027674779295921326, -0.038851648569107056, -0.0074802120216190815, 0.025549035519361496, 0.02390459179878235, 0.025348493829369545, 0.005668650381267071, 0.008897374384105206, -0.002612058073282242, 0.022982100024819374, 0.03093692660331726, 0.007540374528616667, 0.01572248339653015, -0.018810829147696495, 0.012908212840557098, 0.021043527871370316, 0.014532601460814476, 0.01435879897326231, -0.02231362648308277, 0.021097006276249886, 0.03302256390452385, 0.005742182489484549, -0.001204086933284998, 0.0025803055614233017, -0.017059428617358208, -0.0073933107778429985, -0.016484541818499565, -0.0037233943585306406, -0.00667804479598999, -0.025375232100486755, -0.016431065276265144, 0.031658876687288284, -0.009906768798828125, -0.010815892368555069, -0.0263512022793293, 0.02195265144109726, -0.024867193773388863, 0.016136936843395233, 0.016110198572278023, -0.002107360865920782, -0.009786443784832954, -0.0036866283044219017, -0.005170638207346201, 0.0001503019593656063, 0.0015032285591587424, -0.0010586939752101898, 0.01522781327366829, 0.02391796186566353, 0.006243537180125713, -0.0003448902571108192, 0.0523013211786747, 0.016818778589367867, -0.009525739587843418, -0.006972172763198614, -0.021391134709119797, -0.023102425038814545, 0.0001356791181024164, -0.021137114614248276, -0.027942169457674026, 0.011430887505412102, -0.019372345879673958, -0.0032120123505592346, 0.016417695209383965, -0.03508146107196808, -0.0132758729159832, 0.00010883575305342674, 0.013643532991409302, 0.06010908633470535, 0.030134759843349457, 0.007446788717061281, 0.04427964612841606, 0.0173669271171093, -0.004452029708772898, 0.03716709464788437, 0.004204694647341967, 0.027327174320816994, 0.0310438834130764, 0.01532140001654625, -0.03259474039077759, 0.006708126049488783, -0.02197938971221447, 0.013202340342104435, -0.002762464340776205, -0.022674601525068283, 0.027648041024804115, -0.018904414027929306, 0.032300613820552826, -0.00610984256491065, -0.011691591702401638, -0.006594485603272915, 0.0006450763903558254, -0.010134049691259861, -0.007326463237404823, 0.0032654902897775173, -0.020949941128492355, -0.023650571703910828, 0.02224677987396717, -0.003913909196853638, 0.0178348571062088, 0.006751576438546181, 0.006250221747905016, 0.009565847925841808, -0.009331881999969482, -0.005839111283421516, -0.010408123955130577, -0.012988429516553879, 0.03093692660331726, -0.012727724388241768, 0.027861952781677246, -0.004809662699699402, 0.020522119477391243, 0.002722356002777815, 0.016029981896281242, 0.01422510389238596, 0.025094473734498024, -0.018235942348837852, 0.020749399438500404, 0.010755729861557484, -0.012894842773675919, 0.03510819748044014, -0.01331598125398159, 0.003900539595633745, -0.028182819485664368, 0.0032738461159169674, -0.023543616756796837, 0.010120680555701256, 0.008436128497123718, -0.028263036161661148, 0.0025803055614233017, -0.006701441016048193, -0.03115083836019039, -0.012707670219242573, 0.0008974249358288944, 0.0003772694035433233, -0.01442564558237791, -0.016965843737125397, -0.01423847395926714, -0.022540908306837082, 0.022474059835076332, -0.004542273469269276, -0.009779758751392365, -0.010341276414692402, 0.00896422192454338, -0.040455982089042664, 0.01748725213110447, -0.04144532233476639, 0.0029713620897382498, -0.027861952781677246, 0.006297015119343996, -0.010267743840813637, -0.019265390932559967, 0.01982690766453743, -0.0017129619373008609, -0.02020125277340412, -0.0059494092129170895, -0.00988002959638834, 0.0006743220728822052, -0.01779474876821041, 0.011711645871400833, 0.010655459016561508, -0.011771808378398418, 0.01414488721638918, 0.009412098675966263, -0.01996060274541378, 0.024934040382504463, -0.01780811883509159, 0.004064315464347601, 0.006584458518773317, -0.013422936201095581, 0.007413364946842194, 0.01996060274541378, 0.01973332092165947, 0.022687971591949463, -0.011765123344957829, 0.009438837878406048, 0.007473527453839779, 0.025415340438485146, -0.002411516150459647, -0.018864305689930916, -0.008583192713558674, -0.020802877843379974, -0.01778138056397438, -0.005304332822561264, 0.001395437284372747, -0.03462689742445946, -0.003442635526880622, 0.014652926474809647, 0.006216798443347216, -0.01955951750278473, -0.008342542685568333, 0.0004967589629814029, -0.0122196851298213, 0.0006321247201412916, -0.025174690410494804, -0.013369458727538586, -0.006507583893835545, 0.0287978146225214, -0.0019385715713724494, -0.03898534178733826, -0.028263036161661148, -0.01721986196935177, -0.008596561849117279, 0.007988251745700836, -0.016497911885380745, 0.018062138929963112, 0.03294234722852707, 0.022941991686820984, 0.010321222245693207, 0.019412454217672348, 0.011825285851955414, -0.00875699520111084, 0.0008431114838458598, -0.011537842452526093, 0.020856356248259544, -0.028182819485664368, 0.033904947340488434, 0.011350670829415321, 0.007934773340821266, 0.003900539595633745, 0.015107488259673119, 0.003213683608919382, -0.016818778589367867, 0.018917784094810486, 0.0036030691117048264, -0.012687616050243378, -0.014893577434122562, 0.005919327959418297, -0.008055099286139011, -0.008563138544559479, 0.027046414092183113, -0.01548183336853981, -0.023637203499674797, 0.009271719492971897, -0.01223305519670248, -0.00615663593634963, 0.002408173866569996, 0.01959962584078312, -0.006734864786267281, 0.029653459787368774, -0.008041729219257832, 0.0029747046064585447, 0.011150128208100796, -0.023690680041909218, 0.013837389647960663, 0.004254830069839954, -0.013650217093527317, 0.023409921675920486, 0.03091018833220005, 0.004823032300919294, -0.004933330230414867, 0.013663587160408497, -0.012955005280673504, 0.00031230220338329673, 0.009726281277835369, -0.00498680816963315, 0.008088522590696812, -0.025923380628228188, 0.006871901918202639, -0.03066953830420971, 0.016016611829400063, -0.015749221667647362, 0.002683918923139572, -0.0122196851298213, 0.021230701357126236, 0.0009266706183552742, -0.049493737518787384, 0.012874788604676723, -0.014024562202394009, 0.011872079223394394, 0.016965843737125397, -0.00501020485535264, 0.008743626065552235, -0.005685362499207258, -0.006925379391759634, -0.007794394623488188, -0.011751754209399223, -0.011845340020954609, -0.011684906668961048, 0.01996060274541378, 0.001533309812657535, 0.013743803836405277, 0.21808260679244995, 0.0022393842227756977, 8.089566836133599e-05, 0.02898498624563217, -0.006871901918202639, 0.014211734756827354, 0.02828977443277836, 0.021110374480485916, 0.01217957679182291, -0.01309538446366787, 0.020428532734513283, 0.02215319313108921, -0.004943357314914465, 0.0032521209213882685, -0.00446539930999279, -0.03256800025701523, -0.0352686308324337, -0.03117757849395275, 0.014733143150806427, -0.0026471528690308332, 0.003039880655705929, 0.010722305625677109, 0.0009726281277835369, -0.02657848410308361, 0.010782468132674694, -0.0174337737262249, -0.015588789246976376, -0.005498189944773912, 0.0018901071744039655, 0.02453295700252056, -0.013476414605975151, -0.0350012443959713, 0.02165852300822735, 0.009585902094841003, 0.008783734403550625, -0.009686172939836979, -0.004131162539124489, 0.00040150154381990433, -0.004381840117275715, 0.012279847636818886, 0.0028660777024924755, 0.006119869649410248, -0.027648041024804115, 0.0017480567330494523, -0.003917251247912645, 0.004492138046771288, -0.007420049514621496, -0.013469729572534561, -0.0015809384640306234, 0.03435950726270676, -0.0313112735748291, -0.016992582008242607, -0.011484364978969097, 0.03457342088222504, 0.014880207367241383, 0.014626188203692436, 0.018115617334842682, 0.0007950650178827345, -0.02401154860854149, -0.00981318298727274, -0.016043350100517273, 0.014920315705239773, -0.018516700714826584, 0.025335123762488365, -0.004218064248561859, 0.0029747046064585447, -0.018917784094810486, 0.030001064762473106, 0.01955951750278473, 0.006918694823980331, 0.012634138576686382, -0.025869902223348618, -0.00889069028198719, 0.016912365332245827, -0.02882455289363861, -0.031739093363285065, 0.02874433621764183, 0.007045704871416092, 0.03457342088222504, 0.005237485282123089, 0.0037701872643083334, 0.016083458438515663, 0.0066011701710522175, 0.014211734756827354, -0.0010896108578890562, -0.022674601525068283, 0.023877853527665138, 0.001204086933284998, -0.0028176135383546352, 0.00047169122262857854, -0.010180843062698841, -0.025629252195358276, 0.0016101842047646642, 0.0002504684671293944, -0.008543084375560284, 0.022754818201065063, 0.018316159024834633, 0.026043705642223358, -0.0005063682328909636, 0.002314587589353323, -0.022928621619939804, 0.023209379985928535, 0.013516522943973541, 0.016003241762518883, -0.02224677987396717, 0.018516700714826584, 0.02414524182677269, 0.008897374384105206, 0.01004714798182249, 0.004408578854054213, -0.006724837701767683, -0.020709291100502014, -0.0004528904100880027, -0.0036298080813139677, -0.01572248339653015, 0.00877036526799202, 0.016738561913371086, -0.01760757714509964, 0.0017146330792456865, -0.02232699654996395, 0.019078217446804047, -0.02466665208339691, -0.020334945991635323, -0.008509660139679909, -0.00019636392244137824, -0.007914719171822071, 0.008081837557256222, -0.0061766901053488255, 0.023717420175671577, -0.025963488966226578, 0.0025736207608133554, -0.004582381807267666, 0.04120467230677605, -0.029118681326508522, 0.011029803194105625, 0.006845162715762854, 0.018436484038829803, -0.0056051453575491905, -0.029332593083381653, 0.01122366078197956, 0.009793128818273544, -0.006998911499977112, 0.029198898002505302, -0.006210113409906626, -0.0026220851577818394, -0.02195265144109726, 0.012807941064238548, 0.007928089238703251, -0.024733498692512512, -0.008302433416247368, -0.004786266013979912, -0.010822576470673084, 0.012848049402236938, -0.013496468774974346, 0.03714035451412201, -0.030081281438469887, -0.0196129959076643, -0.013469729572534561, 0.004144532140344381, 0.022594384849071503, -0.022554276511073112, 0.02398480847477913, -0.003360747592523694, -0.025508927181363106, -0.0314449667930603, 0.02004081942141056, -0.17102211713790894, 0.028209557756781578, 0.017300080507993698, 0.003689970588311553, 0.01528129167854786, -0.0024800344835966825, 0.03887838497757912, 0.0008723571663722396, -0.021578306332230568, 0.022621124982833862, 0.01451923232525587, 0.0015767605509608984, -0.004034234210848808, -0.002135771093890071, 0.005758894141763449, 0.02847694791853428, -0.011925557628273964, 0.01094290241599083, 0.016792040318250656, -0.00711923697963357, 0.0313112735748291, -0.015241183340549469, 0.016417695209383965, 0.011163498274981976, 0.03109736181795597, -0.007908035069704056, 0.012600715272128582, 0.005371179897338152, -0.010073887184262276, 0.007286354899406433, -0.043049655854701996, -0.010862684808671474, 0.022474059835076332, 0.02188580483198166, 0.020602336153388023, 0.006159977987408638, -0.009265034459531307, 0.018449852243065834, 0.004107766319066286, 0.006317069288343191, -0.004091054201126099, 0.020883094519376755, 0.01732681877911091, -0.0009241638472303748, 0.007974881678819656, 0.015588789246976376, 0.018182463943958282, 0.002291190903633833, 0.019318867474794388, -0.027206849306821823, 0.020254729315638542, -0.049814604222774506, 0.006798369809985161, -0.0043250201269984245, 0.010916163213551044, 0.011323931626975536, 0.0313112735748291, 0.007259616162627935, 0.008128630928695202, -0.02898498624563217, -0.02442600019276142, -0.00984660629183054, 0.0038270074874162674, -0.036605577915906906, -0.016270631924271584, -0.011384094133973122, -0.013529892079532146, 0.011765123344957829, -0.036364927887916565, 0.02197938971221447, -0.0044152638874948025, 0.0037735297810286283, -0.004555643070489168, -0.012687616050243378, 0.01569574512541294, 0.01197235006839037, 0.009151394478976727, 0.0014138203114271164, 0.008342542685568333, -0.020976681262254715, -0.01569574512541294, -0.0065978276543319225, -0.021110374480485916, 0.0015124200144782662, 0.006383916363120079, 0.013422936201095581, -0.014492493122816086, 0.0013536576880142093, 0.01795518398284912, -0.021324286237359047, 0.0022477402817457914, -0.006668017711490393, 0.012834680266678333, -0.01560215838253498, -0.013489783741533756, 0.019118325784802437, -0.005100448615849018, 0.007413364946842194, 0.015909655019640923, -0.022928621619939804, -0.006440736819058657, -0.01763431541621685, -0.01198572013527155, -0.0010887753451243043, 0.009077862836420536, 0.016083458438515663, 0.010347961448132992, 0.03727405145764351, 0.005839111283421516, -0.020602336153388023, -0.01322907954454422, -0.0004775403649546206, 0.013476414605975151, 0.004468741361051798, -0.00357967265881598, -8.669258386362344e-05, -0.009699542075395584, -0.012286532670259476, 0.01526792161166668, 0.00432167761027813, 0.06251558661460876, 0.008242270909249783, 0.0001411104603903368, -0.01974669098854065, -0.013997822999954224, -0.005625199526548386, -0.07289028912782669, -0.01775464043021202, -0.0066546481102705, 0.013048592023551464, -0.013128808699548244, 0.03548254445195198, 0.00047586916480213404, -0.004642544314265251, -0.014706404879689217, 0.013529892079532146, 0.00021244905656203628, -0.0143989073112607, 0.02168526127934456, 0.0017513991333544254, 0.016029981896281242, 0.007433419115841389, -0.014733143150806427, -0.008001620881259441, -0.001590965548530221, 0.027487607672810555, -0.007540374528616667, 0.020709291100502014, 0.014666296541690826, -0.010027093812823296, 0.01117686741054058, 0.00432167761027813, -0.036525361239910126, 0.03361082077026367, 0.024840453639626503, -0.004983465652912855, 0.02172536961734295, -0.019024739041924477, 0.0314449667930603, -0.012079305946826935, 0.018489960581064224, 0.002717342460528016, -0.02199275977909565, -0.003669916419312358, 0.009519054554402828, -0.03604406118392944, 0.009900083765387535, -0.010688882321119308, -0.023383183404803276, -0.018222572281956673, -0.01959962584078312, -0.0035328795202076435, -0.012787886895239353, -0.003676601219922304, -0.008663409389555454, -0.0217922180891037, -0.028022386133670807, -0.021538197994232178, -0.015254552476108074, -0.02165852300822735, 0.019038109108805656, -0.0028727625031024218, 0.0174337737262249, 0.014652926474809647, -0.03468037769198418, -0.030081281438469887, 0.0011079938849434257, 0.004057630896568298, -0.029974326491355896, 0.0013904237421229482, -0.00306661962531507, -0.01754073053598404, -0.03898534178733826, 0.016350848600268364, 0.019038109108805656, -0.02831651270389557, -0.023690680041909218, 0.005013546906411648, -0.008663409389555454, 0.005902615841478109, -0.06508252769708633, 0.00723287696018815, -0.0132758729159832, -0.0024466109462082386, 0.016497911885380745, -0.038290128111839294, -0.02172536961734295, -0.016284000128507614, 0.013115438632667065, -0.008656724356114864, 0.034038640558719635, 0.013824020512402058, 0.012547236867249012, 0.012553921900689602, 0.00863667018711567, -0.016658345237374306, 0.01965310424566269, 0.007246246561408043, -0.0029162131249904633, 0.0016812094254419208, -0.0173669271171093, 0.0051806652918457985, -0.024947410449385643, -0.009465577080845833, -0.02887803129851818, 0.0035729878582060337, -0.004886537324637175, -0.013930976390838623, -0.0700024887919426, 0.014786621555685997, -0.0011664852499961853, 0.020655814558267593, -0.01209267508238554, -0.029172159731388092, 0.0014856810448691249, -0.016096828505396843, -0.007413364946842194, 0.011584635823965073, -0.0013611780013889074, 0.02653837576508522, 0.016511281952261925, -0.00863667018711567, -0.01122366078197956, -0.012206315994262695, -0.008603246882557869, -0.013603424653410912, 0.0396270751953125, 0.015094119124114513, -0.023343075066804886, 0.010274428874254227, 0.027968907728791237, 0.00723287696018815, -0.007460157852619886, 0.021297547966241837, -0.012848049402236938, -0.00017996544193010777, 0.008509660139679909, -0.013643532991409302, -0.003823665203526616, -0.011083281598985195, 0.0033490494824945927, 0.0050904215313494205, -0.004181298427283764, 0.0002322943473700434, -0.016765302047133446, 0.030375409871339798, 0.007500266190618277, 0.012045882642269135, -0.034011904150247574, -0.03957359865307808, 0.0143989073112607, -0.005645254161208868, -0.0024750209413468838, -0.016845518723130226, -0.0122196851298213, -0.002486719284206629, -0.00608644587919116, 0.01969321258366108, 0.012634138576686382, 0.01231327187269926, 0.009218242019414902, -0.03331669047474861, -0.013509837910532951, -0.014211734756827354, 0.010428178124129772, 0.008115261793136597, -0.0177011638879776, -0.005578406620770693, 0.03537558764219284, 0.011531158350408077, 0.005912642925977707, 0.004605778492987156, 0.018797459080815315, 0.009692857973277569, -0.0036398351658135653, 0.012487074360251427, 0.029439548030495644, -0.018797459080815315, -0.018155725672841072, -0.00218089297413826, 0.034011904150247574, 0.025629252195358276, 0.00024378372472710907, 0.015027271583676338, 0.008663409389555454, -0.0025786343030631542, -0.034092120826244354, 0.020348316058516502, 0.029787154868245125, -0.02645815908908844, -0.0239714402705431, 0.0019820223096758127, 0.01318897120654583, 0.010368015617132187, 0.009311827830970287, -0.004712734371423721, -0.007125921547412872, -0.004696022253483534, -0.02168526127934456, -0.005347783677279949, -0.002685589948669076, -0.0012901527807116508, -0.007493581622838974, -0.009505685418844223, 0.003096700878813863, 0.014586079865694046, 0.03687296807765961, 0.025602513924241066, -0.01526792161166668, 0.005277593620121479, 0.014104778878390789, -0.0239714402705431, -0.042809005826711655, 0.002904515014961362, -0.027888691052794456, -0.01092953234910965, 0.03125779330730438, 0.007520320359617472, 0.006798369809985161, -0.0041846404783427715, -0.007453473284840584, 0.010307853110134602, -0.010615350678563118, 0.018356267362833023, 0.015588789246976376, -0.009385360404849052, -0.004645886830985546, 0.015080749057233334, 0.01963973417878151, -0.0006116527365520597, 0.008142000064253807, -0.025549035519361496, 0.011598005890846252, -0.006424024701118469, 0.02401154860854149, -0.018717242404818535, 0.020455271005630493, 0.0010244348086416721, 0.009906768798828125, -0.03665905445814133, -0.0007741752197034657, -0.011865394189953804, -0.025281647220253944, 0.00544471200555563, -0.01795518398284912, 0.008148685097694397, -0.027621300891041756, 0.07893328368663788, 0.03080323338508606, -0.016270631924271584, 0.015013902448117733, -0.013810650445520878, 0.022794926539063454, -0.0059694633819162846, 0.014960424043238163, -0.010087256319820881, -0.014078039675951004, -0.0036799435038119555, 0.0001763097388902679, 0.036311451345682144, -0.013757172971963882, -0.02009429596364498, -0.014078039675951004, 0.021137114614248276, -0.006808396894484758, -0.022661233320832253, -0.042889222502708435, -3.6583227483788505e-05, 0.000646747590508312, 0.0015934723196551204, 0.004622490145266056, -0.013944345526397228, -0.0013946016551926732, 0.01213946845382452, -0.0050904215313494205, -0.01978679932653904, -0.0035663030575960875, 0.007105867378413677, -0.012152837589383125, -0.025054365396499634, -0.014545971527695656, -0.010000355541706085, 0.002160838805139065, 0.006541007664054632, -0.008422759361565113, 0.023236120119690895, 0.025401972234249115, -0.015575419180095196, 0.006460790988057852, -0.010334591381251812, -0.015201075002551079, 0.004094396717846394, 0.000691869470756501, -0.016551390290260315, -0.030482366681098938, 0.031231055036187172], name_embedding=None, graph_embedding=None, community_ids=['7'], text_unit_ids=['b1acf6f137198e644d60ab1843b2c63e'], document_ids=None, rank=1, attributes=None)\n", - "Relationships table sample:\n", - "Relationship(id='bb9e01bc171d4326a29afda59ece8d17', short_id='0', source='ALEX MERCER', target='TAYLOR CRUZ', weight=21.0, description=\"Alex Mercer and Taylor Cruz are both integral members of the Paranormal Military Squad, working together at the Dulce military base. They play significant leadership roles within the team, guiding their colleagues through complex missions involving the analysis of extraterrestrial data and alien signals. Their professional relationship is marked by a balance of strategic and pragmatic approaches, with Alex Mercer often valuing Taylor Cruz's strategic input and cautious oversight.\\n\\nWhile Alex Mercer acknowledges Taylor Cruz's authority and ambition, there is also an element of skepticism and debate between them, particularly regarding the nature of their findings. Taylor Cruz, known for a commanding presence, provides cautionary advice and ensures the team remains focused and sharp during negotiations and mission-critical moments. Despite occasional questioning of Mercer's commitment, Cruz's oversight and risk assessment are crucial to the team's success.\\n\\nTogether, they combine their leadership and strategic thinking to navigate the challenges of their mission, ensuring that the Paranormal Military Squad operates effectively and efficiently in their pursuit of understanding and managing paranormal phenomena.\", description_embedding=None, text_unit_ids=['0252fd22516cf1fe4c8249dc1d5aa995', '264139de2d051ec271cd0cc07f967667', '2be045844a1390572a34f61054ca1994', '2c566f4fafe76923d5e2393b28ddfc7e', '3033fdd0e928a52a29b8bb5f4c4ca242', '3ce43735ef073010f94b5c8c59eef5dd', '49b695de87aa38bf72fe97b12a2ccefd', '5b2d21ec6fc171c30bdda343f128f5a6', '6a678172e5a65aa7a3bfd06472a4bc8a', '73011d975a4700a15ab8e3a0df2c50ca', '935164b93d027138525f0a392bb67c18', 'ad48c6cbbdc9a7ea6322eca668433d1d', 'ae3d58f47c77025945b78a1115014d49', 'b330e287a060d3a460431479f6ec248f', 'b586b4a1d69c6dcc177e138c452bcd2a', 'cfd4ea0e691b888c0d765e865ad7e8da', 'd491433ffa1b4c629fe984e7d85364aa', 'db133889acaba9520123346a859a1494'], document_ids=None, attributes={'rank': 49})\n", - "Reports table sample:\n", - "CommunityReport(id='17', short_id='17', title='Paranormal Military Squad and Operation: Dulce', community_id='17', summary=\"The community centers around the Paranormal Military Squad, a specialized governmental faction focused on extraterrestrial phenomena and interspecies communication. The squad is currently engaged in Operation: Dulce, a mission based at the Dulce military base, involving key members such as Alex Mercer, Sam Rivera, Taylor Cruz, and Dr. Jordan Hayes. The operation aims to decode and respond to alien messages, marking a significant step in humanity's first contact with intelligent alien entities.\", full_content=\"# Paranormal Military Squad and Operation: Dulce\\n\\nThe community centers around the Paranormal Military Squad, a specialized governmental faction focused on extraterrestrial phenomena and interspecies communication. The squad is currently engaged in Operation: Dulce, a mission based at the Dulce military base, involving key members such as Alex Mercer, Sam Rivera, Taylor Cruz, and Dr. Jordan Hayes. The operation aims to decode and respond to alien messages, marking a significant step in humanity's first contact with intelligent alien entities.\\n\\n## Paranormal Military Squad's central role\\n\\nThe Paranormal Military Squad is the central entity in this community, tasked with handling paranormal and extraterrestrial phenomena. This elite group is responsible for mediating Earth's bid for cosmic relevance and preparing for humanity's interstellar narrative. Their current focus is on Operation: Dulce, which involves decoding and responding to an alien message. The squad's operations are based out of the Dulce military base, which serves as their command center [Data: Entities (4), Relationships (99, 96, 110, 113, 106, +more)].\\n\\n## Operation: Dulce's significance\\n\\nOperation: Dulce is a critical mission undertaken by the Paranormal Military Squad. The mission involves investigating anomalies, engaging in dialogue with an alien race, and decoding alien messages. This operation marks a significant transition for the squad from covert operatives to ambassadors of Earth. The Dulce military base in New Mexico is the central location for this mission, highlighting its strategic importance [Data: Entities (5), Relationships (92, 128, 127, 133, 132, +more)].\\n\\n## Key members of the Paranormal Military Squad\\n\\nThe Paranormal Military Squad comprises several key members, each playing a vital role in Operation: Dulce. Alex Mercer is the leader, providing strategic direction and overseeing the decryption process. Sam Rivera contributes technical expertise and enthusiasm, focusing on signal decryption. Taylor Cruz offers military precision and strategic insights, while Dr. Jordan Hayes focuses on deciphering alien codes with a skeptical and analytical approach. These members' combined efforts are crucial to the mission's success [Data: Entities (52, 53, 91, 42); Relationships (66, 26, 3, 49, +more)].\\n\\n## Dulce military base as the operational hub\\n\\nThe Dulce military base in New Mexico serves as the operational hub for the Paranormal Military Squad. This base is where the squad conducts various operations, including decryption efforts and deciphering extraterrestrial signals. The comprehensive setup at Dulce, including its command center, mainframe chamber, and underground base, allows the squad to effectively manage and execute their missions [Data: Relationships (99, 96, 110, 128, 127, +more)].\\n\\n## Potential global impact of first contact\\n\\nThe Paranormal Military Squad's mission to establish first contact with an alien race has significant global implications. Successful communication with extraterrestrial intelligence could lead to unprecedented scientific breakthroughs and potential interstellar diplomacy. However, it also poses risks, including potential galactic peril and the complexities of cosmic negotiations. The squad's efforts in decoding alien signals and preparing for interstellar communication are critical in navigating these challenges [Data: Relationships (112, 114, 115, 101, 102, +more)].\\n\\n## Technical capabilities and expertise\\n\\nThe Paranormal Military Squad possesses advanced technical capabilities and expertise essential for their mission. Members like Sam Rivera and Dr. Jordan Hayes bring specialized skills in signal decryption and analysis. The squad's ability to decode complex alien messages and understand their implications is vital for successful interspecies communication. Their technical prowess ensures that they can effectively respond to and engage with extraterrestrial intelligence [Data: Relationships (66, 49, 71, 52, 109, +more)].\\n\\n## Leadership and strategic direction\\n\\nLeadership within the Paranormal Military Squad is a critical factor in the success of Operation: Dulce. Alex Mercer, as the leader, provides strategic direction and oversees the decryption process. Taylor Cruz, another authoritative figure, ensures military precision and offers strategic insights. Their combined leadership ensures that the squad operates with diligence and a cautious approach, essential for navigating the complexities of interspecies communication [Data: Relationships (3, 26, 29, 6, 130, +more)].\\n\\n## Mentorship and team dynamics\\n\\nThe team dynamics within the Paranormal Military Squad are strengthened by mentorship relationships. For instance, Sam Rivera is mentored by Mercer, which enhances his technical skills and enthusiasm for the mission. These mentorship relationships foster a collaborative environment, ensuring that the squad operates cohesively and effectively. The combination of experienced leaders and enthusiastic members is crucial for the squad's success [Data: Relationships (66, 75, 116, 117, +more)].\\n\\n## Washington command center's role\\n\\nThe Washington command center plays a pivotal role in supporting the Paranormal Military Squad during Operation: Dulce. It serves as the communication hub, providing strategic oversight and coordination for the squad's activities. The command center's involvement ensures that the squad receives the necessary support and guidance, enhancing their ability to navigate the complexities of their mission [Data: Entities (53); Relationships (98, 132)].\\n\\n## Historical significance of the mission\\n\\nOperation: Dulce holds historical significance as it marks humanity's first potential contact with intelligent alien entities. The Paranormal Military Squad's efforts in decoding alien signals and engaging in interspecies communication could lead to groundbreaking scientific discoveries and reshape humanity's understanding of its place in the cosmos. The mission's success could pave the way for future interstellar diplomacy and cosmic alliances [Data: Relationships (101, 102, 103, 104, 105, +more)].\", rank=9.0, summary_embedding=None, full_content_embedding=None, attributes=None)\n", - "Text units table sample:\n", - "TextUnit(id='5b2d21ec6fc171c30bdda343f128f5a6', short_id='0', text='# Operation: Dulce\\n\\n## Chapter 1\\n\\nThe thrumming of monitors cast a stark contrast to the rigid silence enveloping the group. Agent Alex Mercer, unfailingly determined on paper, seemed dwarfed by the enormity of the sterile briefing room where Paranormal Military Squad\\'s elite convened. With dulled eyes, he scanned the projectors outlining their impending odyssey into Operation: Dulce.\\n\\n“I assume, Agent Mercer, you’re not having second thoughts?” It was Taylor Cruz’s voice, laced with an edge that demanded attention.\\n\\nAlex flickered a strained smile, still thumbing his folder\\'s corner. \"Of course not, Agent Cruz. Just trying to soak in all the details.\" The compliance in his tone was unsettling, even to himself.\\n\\nJordan Hayes, perched on the opposite side of the table, narrowed their eyes but offered a supportive nod. \"Details are imperative. We’ll need your clear-headedness down there, Mercer.\"\\n\\nA comfortable silence, the kind that threaded between veterans of shared secrets, lingered briefly before Sam Rivera, never one to submit to quiet, added, \"I’ve combed through the last transmission logs. If anyone can make sense of the anomalies, it’s going to be the two of you.\"\\n\\nTaylor snorted dismissively. “Focus, people. We have protocols for a reason. Speculation is counter-productive.” The words \\'counter-productive\\' seemed to hang in the air, a tacit reprimand directed at Alex.\\n\\nFeeling the weight of his compliance conflicting with his natural inclination to leave no stone unturned, Alex straightened in his seat. \"I agree, Agent Cruz. Protocol is paramount,\" he said, meeting Taylor\\'s steely gaze. It was an affirmation, but beneath it lay layers of unspoken complexities that would undoubtedly unwind with time.\\n\\nAlex\\'s submission, though seemingly complete, didn\\'t escape Jordan, who tilted their head ever so slightly, their eyes revealing a spark of understanding. They knew well enough the struggle of aligning personal convictions with overarching missions. As everyone began to collect their binders and prepare for departure, a quiet resolve took form within Alex, galvanized by the groundwork laid by their interactions. He may have spoken in compliance, but his determination had merely taken a subtler form — one that wouldn\\'t surrender so easily to the forthcoming shadows.\\n\\n\\\\*\\n\\nDr. Jordan Hayes shuffled a stack of papers, their eyes revealing a tinge of skepticism at Taylor Cruz\\'s authoritarian performance. _Protocols_, Jordan thought, _are just the framework, the true challenges we\\'re about to face lie well beyond the boundaries of any protocol._ They cleared their throat before speaking, tone cautious yet firm, \"Let\\'s remember, the unknown variables exceed the known. We should remain adaptive.\"\\n\\nA murmur of agreement echoed from Sam Rivera, who leaned forward, lacing their fingers together as if weaving a digital framework in the air before them, \"Exactly, adaptability could be the key to interpreting the signal distortions and system malfunctions. We shouldn\\'t discount the… erratic.\"\\n\\nTheir words hung like an electric charge in the room, challenging Taylor\\'s position with an inherent truth. Cruz’s jaw tightened almost imperceptibly, but the agent masked it with a small nod, conceding to the omnipresent threat of the unpredictable. \\n\\nAlex glanced at Jordan, who never looked back, their gaze fixed instead on a distant point, as if envisioning the immense dark corridors they were soon to navigate in Dulce. Jordan was not one to embrace fantastical theories, but the air of cautious calculation betrayed a mind bracing for confrontation with the inexplicable, an internal battle between the evidence of their research and the calculating skepticism that kept them alive in their field.\\n\\nThe meeting adjourned with no further comments, the team members quietly retreading the paths to their personal preparations. Alex, trailing slightly behind, observed the others. _The cautious reserve Jordan wears like armor doesn\\'t fool me_, he thought, _their analytical mind sees the patterns I do. And that\\'s worth more than protocol. That\\'s the connection we need to survive this._\\n\\nAs the agents dispersed into the labyrinth of the facility, lost in their thoughts and preparations, the base\\'s halogen lights flickered, a brief and unnoticed harbingers of the darkness to come.\\n\\n\\\\*\\n\\nA deserted corridor inside the facility stretched before Taylor Cruz, each footstep rhythmic and precise. Cruz, ambitious and meticulous, eyed the troops passing by with a sardonic tilt of the lips. Obedience—it was as much a tool as any weapon in the arsenal, and Cruz wielded it masterfully. To them, it was another step toward unfettered power within the dark bowels of the military complex.\\n\\nInside a secluded equipment bay, Cruz began checking over gear with mechanical efficiency. They traced fingers over the sleek surface of an encrypted radio transmitter. \"If protocols are maintained,\" said Cruz aloud, rehearsing the speech for their subordinates, \"not only will we re-establish a line of communication with Dulce, but we shall also illuminate the darkest secrets it conceals.\"\\n\\nAgent Hayes appeared in the doorway, arms crossed and a knowing glint in their eyes. \"You do understand,\" Jordan began, the words measured and probing, \"that once we\\'re in the depths, rank gives way to survival instincts. It\\'s not about commands—it\\'s empowerment through trust.\"\\n\\nThe sentiment snagged on Cruz\\'s armor of confidence, probing at the insecurities festering beneath. Taylor offered a brief nod, perhaps too curt, but enough to acknowledge Jordan\\'s point without yielding ground. \"Trust,\" Cruz mused, \"or the illusion thereof, is just as potent.\"\\n\\nSilence claimed the space between them, steeped in the reality of the unknown dangers lurking in the shadows of the mission. Cruz diligently returned to the equipment, the act a clear dismissal.\\n\\nNot much later, Cruz stood alone', text_embedding=None, entity_ids=['b45241d70f0e43fca764df95b2b81f77', '4119fd06010c494caa07f439b333f4c5', 'd3835bf3dda84ead99deadbeac5d0d7d', '077d2820ae1845bcbb1803379a3d1eae', '3671ea0dd4e84c1a9b02c5ab2c8f4bac', '19a7f254a5d64566ab5cc15472df02de', 'e7ffaee9d31d4d3c96e04f911d0a8f9e'], relationship_ids=['bb9e01bc171d4326a29afda59ece8d17', '3c063eea52e94164b70c99431ea30bae', '252cc8452bfc4c2aa58cab68d8b61879', '7e2c84548fb94ee395ba8588d8f2a006', '3e95dacfe57b4d57b5da4310ef2e157f', '1f1545308e9347af91fd03b94aadc21f', '6ea81acaf232485e94fff638e03336e1', '86505bca739d4bccaaa1a8e0f3baffdc', '1af9faf341e14a5bbf4ddc9080e8dc0b', '6090e736374d45fd84f0e4610a314f8f', '735d19aea0744b2295556841c5c4c3fd', '6e0c81bef5364c988b21bf9b709d9861'], covariate_ids=None, n_tokens=1200, document_ids=['958fdd043f17ade63cb13570b59df295'], attributes=None)\n", - "Data loading completed\n" + "2024-09-19 12:10:20,405 - __main__ - INFO - Loading data from parquet files\n" ] } ], @@ -183,48 +156,184 @@ " \"RELATIONSHIP_TABLE\": \"create_final_relationships\",\n", " \"COVARIATE_TABLE\": \"create_final_covariates\",\n", " \"TEXT_UNIT_TABLE\": \"create_final_text_units\",\n", - "}\n", - "\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Entities table:\n", + "This table stores information about various entities in the system. Each entity has a unique ID, a short ID, a title, a type (e.g., PERSON), a description, and embeddings of the description. It may also include name embeddings, graph embeddings, community IDs, text unit IDs, document IDs, a rank, and additional attributes." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Entities table sample:\n", + "Entity(id='bc0e3f075a4c4ebbb7c7b152b65a5625', short_id='16', title='AGENTS', type='PERSON', description='Agents Alex Mercer, Jordan Hayes, Taylor Cruz, and Sam Rivera are the team members proceeding into Dulce base', description_embedding=[0.0020066287834197283, -0.026493584737181664, -0.01942051388323307, -0.03475676849484444, -0.02514118142426014, 0.05112085118889809, -0.0065084416419267654, -0.006623396184295416, 0.004919367842376232, -0.03559526056051254, 0.022395802661776543, 0.037596818059682846, -0.01751362532377243, -0.0053048026748001575, 0.01192143652588129, -0.012746402993798256, 0.0003514135896693915, -0.03619031608104706, -0.0123880160972476, -0.01390270795673132, 0.0030564318876713514, -0.013429366983473301, 0.01271259319037199, -0.023585917428135872, -0.00046700183884240687, -0.021949509158730507, 0.012502970173954964, -0.024356786161661148, 0.02913077175617218, 0.0017665770137682557, 0.00477398419752717, 0.0003277465293649584, -0.0033877708483487368, -0.009257202036678791, -0.00796565692871809, -0.007255644537508488, -0.014917010441422462, -0.01766238920390606, 0.0009728852892294526, -0.010846275836229324, 0.029157819226384163, -0.006177103146910667, -0.00038797076558694243, -0.040004096925258636, -0.022274086251854897, 0.002971906680613756, -0.02093520574271679, 0.00554823549464345, -0.02999630942940712, 0.013158885762095451, 0.020881110802292824, 0.019231177866458893, -0.00968997087329626, -0.02783246338367462, 0.010061881504952908, -0.013557844795286655, -0.007918322458863258, 0.0019440799951553345, -0.002713259542360902, -0.03099708817899227, -0.010136264376342297, -0.013463176786899567, -0.015295683406293392, 0.020529484376311302, -0.005876193288713694, 0.012881643138825893, -0.00695135397836566, 0.00877709873020649, 0.0005299731274135411, 0.0025695667136460543, -0.00561923673376441, 0.003472296055406332, 0.019690994173288345, -0.030672511085867882, 0.03032088652253151, -0.019014792516827583, -0.019298797473311424, -0.014687102288007736, 0.005595569498836994, 0.021624932065606117, 0.01855497620999813, 0.0013946661492809653, -0.03032088652253151, 0.027169786393642426, 0.02618253231048584, 0.002812999300658703, 0.00616696011275053, 0.007559935562312603, -0.03097004070878029, -0.0113466652110219, 0.011082946322858334, 0.021422071382403374, 0.02538461424410343, 0.029509443789720535, -0.04197860509157181, -0.0003313388442620635, -0.01629646122455597, 0.041194211691617966, -0.01658046618103981, -0.02672349289059639, -0.00033556512789800763, -0.003428342752158642, -0.020664725452661514, -0.009189581498503685, -0.007776319980621338, -0.006592967081815004, -0.016066553071141243, 0.0007040950586088002, 0.020624153316020966, -0.0014783460646867752, -0.02804884873330593, 0.006991926115006208, 0.006383344531059265, -0.04273594915866852, -0.013442890718579292, -0.015728453174233437, 0.0036920616403222084, -0.00333536509424448, -0.0021824410650879145, -0.02791360765695572, 0.013794515281915665, 0.03291749954223633, 0.013564607128500938, -0.002077629789710045, 0.021232735365629196, -0.011806482449173927, 0.02999630942940712, -0.01740543358027935, 0.006538870744407177, -0.0020911539904773235, 0.017324289306998253, 0.0009661232470534742, 0.011448095552623272, 0.008783861063420773, 0.007181262597441673, 0.009798163548111916, -0.010724559426307678, 0.030266789719462395, 0.002909358125180006, 0.01271259319037199, 0.016093602403998375, 0.012861357070505619, -0.011874102987349033, -0.002775808097794652, 0.010602843016386032, 0.00954796839505434, 0.013070980086922646, -0.021516740322113037, 0.006234580185264349, 0.019907379522919655, 0.020597105845808983, -0.02923896349966526, 0.012360967695713043, -0.009189581498503685, 0.01305745542049408, 0.004824699368327856, -0.01039322093129158, 0.006478012539446354, -0.007837178185582161, -0.004273594822734594, 0.007864226587116718, -0.008756812661886215, 0.014822342433035374, -0.02180074341595173, 0.021056922152638435, 0.027088642120361328, 0.007397647015750408, -0.023829350247979164, -0.021530263125896454, -0.004449407570064068, 0.006738350261002779, 0.014497765339910984, -0.014105568639934063, 0.002736926544457674, -0.0189877450466156, 0.0017429100116714835, 0.0012526637874543667, -0.018676692619919777, -0.009534444659948349, -0.006900638807564974, 0.017351336777210236, -0.005183086264878511, -0.0005046155420131981, 0.0052168965339660645, -0.004608314950019121, -0.0016921948408707976, -0.001999866683036089, -0.013354984112083912, -0.008168516680598259, 0.0009306226274929941, 0.009879307821393013, 0.009196343831717968, 0.026344820857048035, -0.0077289859764277935, -0.6417965888977051, -0.04725297912955284, 0.009378918446600437, -0.0030665749218314886, 0.009345107711851597, 0.02538461424410343, 0.011887626722455025, -0.010609605349600315, -0.00872300285845995, 0.002826523268595338, -0.01161714643239975, 0.025262897834181786, -0.011143804527819157, -0.01287488080561161, 0.003965923096984625, -0.016850948333740234, 0.0016905043739825487, -0.0077289859764277935, 0.012841071002185345, 0.0056158555671572685, -0.029806973412632942, 0.007140690460801125, 0.014470716938376427, -0.012110773473978043, 0.03443219140172005, -0.0017412195447832346, 0.023396579548716545, -5.805826003779657e-05, -0.013118313625454903, -0.006917543709278107, -0.01712142862379551, 0.024180974811315536, -0.0022449898533523083, -0.022328181192278862, 0.04241137206554413, -0.0010109215509146452, -0.012807261198759079, 0.017527149990200996, -0.019474610686302185, 0.03608212620019913, -0.0009399204282090068, 0.009013769216835499, 0.018798409029841423, -0.01102208811789751, 0.007884512655436993, 0.02377525344491005, 0.0016296461690217257, 0.004993749782443047, -0.012144583277404308, 0.008966434746980667, 0.0005642058094963431, -0.02700749784708023, -0.03456743434071541, -0.0011622217716649175, 0.019055364653468132, 0.0036785374395549297, 0.018460307270288467, 0.006275152321904898, -0.006809351500123739, 0.0020455103367567062, -0.0019322464941069484, 0.010839514434337616, -0.04917339235544205, 0.0003765598521567881, -0.021422071382403374, 0.014119092375040054, -0.01653989404439926, 0.025614522397518158, 0.0023650156799703836, -0.006937829777598381, 0.0013304268941283226, 0.0038813981227576733, -0.008851480670273304, 0.008486331440508366, 0.013206220231950283, 0.012922215275466442, 0.020204907283186913, -0.003389461198821664, 0.008405188098549843, 0.03535182774066925, -0.0030090976506471634, -0.01158333569765091, -0.011421047151088715, -0.021056922152638435, 0.017892297357320786, 0.0009534444543533027, -0.022287609055638313, -0.012415064498782158, 0.009446538053452969, -0.04257366061210632, 0.022531041875481606, 0.030050406232476234, 0.0032288632355630398, 0.006379963364452124, 0.015593212097883224, -0.017148476094007492, -0.0030057167168706656, -0.001151233445852995, 0.03326912596821785, -0.04049095883965492, 0.01058931928128004, 0.0050275600515306, 0.01012273970991373, -0.030483175069093704, 0.04027457535266876, 0.004953177645802498, -0.020421292632818222, -0.0019018173916265368, 0.049254536628723145, -0.026980450376868248, -0.011610384099185467, 0.015917789191007614, -0.023437151685357094, 0.00175136246252805, -0.0033438175451010466, -0.029725829139351845, 0.0034080566838383675, -0.02032662369310856, 0.007160976529121399, -0.05385270714759827, -0.001518918201327324, 0.009906355291604996, 0.013496986590325832, -0.009919879958033562, 0.014132616110146046, 0.010467602871358395, 0.001006695325486362, -0.02956354059278965, -0.003648108337074518, 0.001431011944077909, 0.011759147979319096, 0.0022331562358886003, 0.0013278911355882883, -0.019447561353445053, 0.02161140739917755, 0.000552372308447957, 0.025709189474582672, -0.0033421271946281195, 0.022247036918997765, -0.02349124848842621, -0.04487274959683418, -0.019434038549661636, 0.0048280805349349976, 0.0007066308171488345, 0.020299576222896576, -0.033431414514780045, -0.027386169880628586, -0.0003452855162322521, -0.028211137279868126, -0.028319329023361206, 0.015349779278039932, 8.785339741734788e-05, -0.0092436783015728, 0.015877217054367065, 0.0065084416419267654, -0.006170340813696384, 0.0018189826514571905, -0.017256667837500572, -0.010954468511044979, -0.02823818475008011, -0.01309126615524292, 0.01494405884295702, -0.008026515133678913, -0.0121581070125103, -0.004919367842376232, -0.009717019274830818, 0.019609849900007248, 4.305503171053715e-05, 0.002951620612293482, -0.026601776480674744, 0.02546575851738453, -0.004432502668350935, -0.00429726205766201, 0.009642637334764004, -0.01253677997738123, 0.011934961192309856, -0.02039424516260624, 0.023396579548716545, 0.0005882955156266689, -0.008729764260351658, -0.020272528752684593, 0.025763286277651787, -0.01740543358027935, -0.002263585338369012, 0.009831973351538181, 0.010636653751134872, 0.009764352813363075, 0.04354739189147949, -0.022666282951831818, 0.014971106313169003, -0.015904264524579048, 0.004026781301945448, -0.0012450565118342638, 0.004202594049274921, -0.0014597504632547498, -0.006038481369614601, -0.004936272744089365, 0.00883119460195303, -0.020421292632818222, 0.02258513867855072, 0.020042620599269867, 0.009568254463374615, 0.030942991375923157, -0.021895412355661392, -0.0010295171523466706, -0.02679111249744892, 0.006944592110812664, -0.02319372072815895, 0.028535714372992516, -0.014862914569675922, 0.027413219213485718, -0.03959837555885315, -0.013801277615129948, 0.0076681277714669704, -0.0005519496626220644, 0.0274402666836977, 0.0012154725845903158, 0.014308429323136806, -0.03521658852696419, -0.010224170051515102, -0.004432502668350935, -0.0023295150604099035, 0.03694766387343407, -0.010278266854584217, -0.029644684866070747, -0.01787877455353737, 0.022098273038864136, 0.0021570834796875715, 0.007904798723757267, -0.03140280768275261, 0.018825456500053406, -0.0034198903013020754, -0.0015628712717443705, 0.006582824047654867, 0.00013788176875095814, -0.01346993912011385, -0.01058931928128004, -0.007478791289031506, 0.01658046618103981, -0.022314658388495445, 0.005923527292907238, 0.021597884595394135, 0.02481660433113575, -0.010494651272892952, 0.03229539468884468, 0.009534444659948349, 0.02312609925866127, -0.0013811420649290085, -0.033972375094890594, 0.0070054498501122, -0.025655094534158707, 0.011218187399208546, -0.013814801350235939, -0.0032812689896672964, -0.017148476094007492, -0.031565096229314804, 0.014889962039887905, 0.022247036918997765, 0.0009703495306894183, 0.026845209300518036, 0.012928977608680725, 0.00888529047369957, 0.01651284657418728, -0.008472807705402374, 0.02050243690609932, 0.01068398728966713, -0.0113466652110219, 0.0005654736887663603, -0.02758903056383133, -0.02867095358669758, 0.008844719268381596, 0.0020590343046933413, 0.01237449236214161, 0.015796072781085968, 0.017716486006975174, 0.011441333219408989, -0.008378139697015285, -0.011874102987349033, -0.004638744052499533, -0.00032605603337287903, 6.66164341964759e-05, -0.032024916261434555, 0.015403876081109047, 0.0401393361389637, -0.0020810109563171864, 0.00043741799890995026, 0.005101941991597414, 0.011603621765971184, -0.02312609925866127, 0.01701323501765728, 0.0103053143247962, 0.01334146037697792, 0.0044020735658705235, 0.00973054300993681, -0.0052709924057126045, 0.014551861211657524, 0.022896191105246544, -0.015268635004758835, 0.0035669642966240644, -0.0011453167535364628, 0.005260849371552467, -0.011272283270955086, 0.015133394859731197, -0.02503298781812191, 0.02542518638074398, 0.011279044672846794, -0.015660831704735756, -0.009365393780171871, 0.009142247959971428, -0.022003604099154472, 0.008418711833655834, 0.00821585115045309, -0.02006966806948185, 0.007634317502379417, 0.008601286448538303, -0.001999866683036089, -0.03253882750868797, -0.00240896875038743, 0.021908937022089958, -0.018798409029841423, 0.009852259419858456, -0.02395106665790081, -0.017608294263482094, -0.015525592491030693, 0.12420473992824554, 0.038245972245931625, -0.004834842402487993, 0.0020184621680527925, 0.014254332520067692, 0.015809597447514534, -0.0010667082387953997, -0.0036176792345941067, 0.0017598150297999382, -0.028941433876752853, -0.0014555242378264666, 0.02139502391219139, -0.015633784234523773, -0.006893876940011978, 0.018243923783302307, 0.02286914363503456, -0.01755419746041298, -0.023356007412075996, -0.014578909613192081, -0.0007818582816980779, -0.021205686032772064, 0.005301421508193016, 0.004473074339330196, 0.008655382320284843, -0.0051323710940778255, -0.009940166026353836, 0.014741198159754276, 0.0019559136126190424, 0.005680094473063946, 0.0024698269553482533, 0.02923896349966526, 0.00217060768045485, -0.0026676158886402845, 0.010176836512982845, -0.013584893196821213, 0.00019810597586911172, 0.008087372407317162, 0.007546411361545324, 0.02208474837243557, 0.00016905044321902096, 0.002599995816126466, 0.006001290399581194, -0.0034655339550226927, -0.03654194250702858, 0.013517272658646107, -0.014349001459777355, -0.007553173694759607, 0.024221546947956085, 0.029861068353056908, -0.02254456654191017, 0.03107823245227337, -0.02067825011909008, -0.021422071382403374, -0.008743288926780224, 0.016120649874210358, 0.019150033593177795, 0.027507886290550232, 0.0016076696338132024, -0.02384287305176258, -0.010257980786263943, -0.022287609055638313, -0.01887955330312252, 0.013219743967056274, -0.023180196061730385, -0.0016355629777535796, -0.02977992407977581, -0.004134973511099815, 0.00032246371847577393, -0.007864226587116718, -0.03608212620019913, -0.016337033361196518, -0.010136264376342297, 0.000955980212893337, 0.019325846806168556, 0.027629602700471878, 0.007634317502379417, 0.00479088956490159, -0.01152923982590437, 0.02405925840139389, 0.005030940752476454, -0.009771115146577358, -0.004686078056693077, 0.019393466413021088, -0.000805525342002511, 0.00019884557696059346, 0.004205974750220776, 0.009845497086644173, -0.002836666302755475, 1.4091938282945193e-05, 0.013753943145275116, -0.021895412355661392, -0.008154992945492268, 0.02035367302596569, -0.014687102288007736, 0.01237449236214161, 0.02427564188838005, 0.018149254843592644, 0.010149788111448288, -0.006379963364452124, 0.020313100889325142, 0.002173988614231348, -0.06150731071829796, 0.0008439843077212572, 0.0008575083338655531, 0.016918567940592766, -0.0029820497147738934, -0.01664808765053749, 0.017432481050491333, -0.024681363254785538, -0.005419757217168808, -0.004047067370265722, -0.007952132262289524, -0.014538337476551533, -0.01543092355132103, 0.011792958714067936, 0.0013194386847317219, -0.010765131562948227, 0.02297733537852764, -0.028860289603471756, 0.006805970333516598, 0.03362075239419937, -0.015336255542933941, 0.02171959914267063, 0.02254456654191017, -0.022639233618974686, 0.02182779274880886, 0.0066301580518484116, -0.046198103576898575, 0.012989835813641548, -0.005768001079559326, -0.023315435275435448, 0.026047291234135628, -0.011157329194247723, -0.013023645617067814, -0.02035367302596569, -0.014267857186496258, -0.02665587328374386, 0.025546902790665627, -0.02399163879454136, -0.021963031962513924, -0.004493360407650471, 0.02815704047679901, 0.01332793664187193, -0.001442845445126295, -0.01262468658387661, -0.022787999361753464, 0.015403876081109047, 0.007810130249708891, -0.005254087503999472, 0.009906355291604996, -0.009108437225222588, 0.0045339325442910194, -0.006383344531059265, -0.008770336396992207, -0.014105568639934063, -0.026534156873822212, -0.041735172271728516, -0.005325088743120432, 0.027102166786789894, 0.02557395026087761, 0.015079298987984657, -0.0016744445310905576, 0.004855128470808268, -0.0038306829519569874, 0.01837916299700737, 0.0284816175699234, 0.006789065431803465, 0.011650956235826015, -0.0206106286495924, 0.013713371008634567, 0.01733781211078167, 0.01823039911687374, 0.012800498865544796, -0.016999712213873863, 0.01773001067340374, 0.033323220908641815, 0.0017767200479283929, -0.0058660502545535564, 0.0036176792345941067, -0.017459528520703316, -0.00883119460195303, -0.017959918826818466, 0.0014242499601095915, -0.014308429323136806, -0.02579033374786377, -0.020867586135864258, 0.02772427164018154, -0.0152821596711874, -0.009054341353476048, -0.028454570099711418, 0.02715626172721386, -0.022314658388495445, 0.014213760383427143, 0.010041596367955208, -0.002884000539779663, -0.012252775952219963, -0.0031409570947289467, -0.00812794454395771, 0.007553173694759607, 0.006944592110812664, -0.0009957071160897613, 0.01610712520778179, 0.012949263677001, 0.004347977228462696, 0.0027318550273776054, 0.04803737252950668, 0.009946927428245544, -0.018974220380187035, -0.008195565082132816, -0.01820335164666176, -0.022639233618974686, -0.002463064854964614, -0.01833859086036682, -0.02668292075395584, 0.010569033212959766, -0.020515961572527885, -0.003360722679644823, 0.010143025778234005, -0.032890453934669495, -0.01855497620999813, 0.006498298607766628, 0.010900371707975864, 0.05423137918114662, 0.028941433876752853, 0.014254332520067692, 0.04297938197851181, 0.01686447113752365, -0.003827301785349846, 0.0358927883207798, 0.006018195301294327, 0.02891438640654087, 0.03097004070878029, 0.02251751720905304, -0.030266789719462395, 0.00940596591681242, -0.017391908913850784, 0.019393466413021088, -0.010372934862971306, -0.021733123809099197, 0.03283635526895523, -0.011657717637717724, 0.03205196186900139, -0.0038949220906943083, -0.010048357769846916, -0.009047579020261765, -0.002809618366882205, -0.011563049629330635, -0.004959939979016781, 0.002660853788256645, -0.02614196017384529, -0.02136797457933426, 0.02729150280356407, -0.008493093773722649, 0.01798696629703045, 0.007411171216517687, 0.008763574995100498, 0.014051471836864948, -0.007100118324160576, -0.00616696011275053, -0.0121581070125103, -0.02032662369310856, 0.03270111605525017, -0.008378139697015285, 0.02592557482421398, -0.008533665910363197, 0.019231177866458893, 0.00695135397836566, 0.014984630979597569, 0.013645751401782036, 0.025898527354002, -0.02024547941982746, 0.02186836488544941, 0.01276668906211853, -0.012022866867482662, 0.032024916261434555, -0.00607905350625515, 0.008229374885559082, -0.027494363486766815, -0.0006280223606154323, -0.022422850131988525, 0.005737571977078915, 0.007539649493992329, -0.024911271408200264, 0.0035534400958567858, -0.002288942923769355, -0.03494610637426376, -0.0070189740508794785, 0.0034046757500618696, 0.0018916743574663997, -0.010616367682814598, -0.01647227443754673, -0.010711035691201687, -0.0221929419785738, 0.01981271058320999, -0.006359677296131849, -0.007424694951623678, -0.0094938725233078, 0.002160464646294713, -0.038786932826042175, 0.019690994173288345, -0.041167162358760834, 0.00016049225814640522, -0.02804884873330593, 0.007810130249708891, -0.019041841849684715, -0.015741975978016853, 0.02633129619061947, -2.324443448742386e-05, -0.014416621066629887, 0.00749907735735178, -0.009507396258413792, -0.01140076108276844, -0.01812220737338066, 0.016093602403998375, 0.011035612784326077, -0.008553951978683472, 0.015092822723090649, 0.006991926115006208, -0.016823899000883102, 0.020989302545785904, -0.018392687663435936, 5.5311189498752356e-05, 0.00807384867221117, -0.019285274669528008, 0.005511044058948755, 0.014984630979597569, 0.021706076338887215, 0.027575507760047913, -0.015457971952855587, -6.122795457486063e-05, 0.006596348248422146, 0.027237406000494957, -0.007918322458863258, -0.023896969854831696, -0.011880864389240742, -0.014024424366652966, -0.015579688362777233, -0.005122228059917688, 0.002177369548007846, -0.03248473256826401, -0.010454079136252403, 0.01582312025129795, 0.0020015572663396597, -0.016877995803952217, -0.014416621066629887, -0.008770336396992207, -0.0040842583402991295, -0.00477398419752717, -0.027670174837112427, -0.020015571266412735, -0.015660831704735756, 0.02834637649357319, -0.0031561716459691525, -0.04046391323208809, -0.0221117977052927, -0.01777058094739914, -0.012705830857157707, 0.012286585755646229, -0.017040284350514412, 0.022071225568652153, 0.027994751930236816, 0.01768943853676319, 0.012759926728904247, 0.020488912239670753, 0.020624153316020966, -0.0048280805349349976, -0.0013177481014281511, -0.009345107711851597, 0.013131838291883469, -0.025763286277651787, 0.03205196186900139, 0.01147514395415783, -0.002199346199631691, 0.0002856952487491071, 0.01148866768926382, -0.002625353168696165, -0.006420535501092672, 0.02104339748620987, 0.003955780062824488, -0.015633784234523773, -0.010244456119835377, -0.0007235358934849501, -0.011245234869420528, -0.005862669087946415, 0.024951843544840813, -0.015701403841376305, -0.02399163879454136, 0.008783861063420773, -0.01429490465670824, -0.0052777547389268875, 0.005974242463707924, 0.021083969622850418, -0.00654563307762146, 0.02132740244269371, -0.008141469210386276, 0.0015349779278039932, 0.00278764171525836, -0.024789556860923767, 0.022855618968605995, 0.010602843016386032, -0.01282078493386507, 0.020340148359537125, 0.02988811768591404, 0.012022866867482662, -0.0003740240936167538, 0.015525592491030693, -0.012732879258692265, 0.0021672265138477087, 0.008249660953879356, -0.004500122740864754, 0.005801810882985592, -0.0274402666836977, 0.007627555634826422, -0.02783246338367462, 0.015579688362777233, -0.012983073480427265, -0.00030872836941853166, -0.004946415778249502, 0.019934426993131638, 0.0024174212012439966, -0.04649563133716583, 0.009933403693139553, -0.005612474400550127, 0.010602843016386032, 0.01823039911687374, -0.006711302325129509, 0.011468381620943546, -0.0009897903073579073, -0.013943280093371868, -0.006200769916176796, -0.01010921597480774, -0.008411949500441551, -0.009534444659948349, 0.018081635236740112, 0.001204484375193715, 0.011326379142701626, 0.21400432288646698, -0.0004568588046822697, 0.0008892053156159818, 0.02902257815003395, -0.0032406968530267477, 0.014078520238399506, 0.03629850968718529, 0.02132740244269371, 0.009534444659948349, -0.012212203815579414, 0.015295683406293392, 0.02251751720905304, -0.011847054585814476, 0.0003860689466819167, -0.0041451165452599525, -0.02542518638074398, -0.02977992407977581, -0.03216015547513962, 0.011272283270955086, 0.004304023925215006, -0.0015670974971726537, 0.013598416931927204, 0.004686078056693077, -0.025898527354002, 0.014876438304781914, -0.01874431222677231, -0.012563828378915787, 0.0057815248146653175, 0.007039260119199753, 0.022179417312145233, -0.013943280093371868, -0.02528994530439377, 0.017851725220680237, 0.006099339574575424, -0.00016260538541246206, -0.0110964709892869, -0.0038408259861171246, -0.0043175481259822845, -0.006278533022850752, 0.009088151156902313, 0.005937051493674517, 0.013679561205208302, -0.03118642419576645, -0.00285864295437932, 0.0007201548432931304, 0.008466046303510666, -0.004821318667382002, -0.019298797473311424, -0.008817670866847038, 0.03099708817899227, -0.032024916261434555, -0.011522477492690086, -0.00692430604249239, 0.02769722416996956, 0.010372934862971306, 0.019731566309928894, 0.01629646122455597, -0.004371644463390112, -0.019623374566435814, -0.011860578320920467, -0.01887955330312252, 0.011901150457561016, -0.017608294263482094, 0.027778368443250656, -0.0003600774216465652, 0.0034435573033988476, -0.0216519795358181, 0.035162489861249924, 0.014200236648321152, 0.0018257447518408298, 0.00793184619396925, -0.02625015191733837, 0.0030344552360475063, 0.02074586972594261, -0.03470267355442047, -0.03151100128889084, 0.022098273038864136, 0.00897319708019495, 0.030807752162218094, 0.002909358125180006, -0.0035331540275365114, 0.005984385497868061, 0.013598416931927204, 0.008188802748918533, 0.008709478192031384, -0.0184873566031456, 0.03186262771487236, 0.0018595547880977392, -0.009520920924842358, 0.003827301785349846, -0.0037191095761954784, -0.026101388037204742, 0.0001235124800587073, 0.0025289945770055056, -0.005639522336423397, 0.017324289306998253, 0.020867586135864258, 0.027142738923430443, 0.008094134740531445, 0.0032406968530267477, -0.02507355995476246, 0.02171959914267063, 0.014254332520067692, 0.023748205974698067, -0.027250930666923523, 0.00940596591681242, 0.025587474927306175, 0.010907134041190147, 0.007972418330609798, 0.0036920616403222084, -0.00973054300993681, -0.025181753560900688, 0.0021317258942872286, -0.00464888708665967, -0.011610384099185467, 0.008675668388605118, 0.011806482449173927, -0.014862914569675922, 0.0029059769585728645, -0.02180074341595173, 0.022165892645716667, -0.023356007412075996, -0.012448874302208424, -0.010961229912936687, 0.008121183142066002, -0.00916929543018341, 0.0073570748791098595, -0.008533665910363197, 0.024329738691449165, -0.02388344518840313, -0.0009145628428086638, -0.011874102987349033, 0.044358834624290466, -0.028968483209609985, 0.005507663358002901, 0.005676713772118092, 0.017134951427578926, -0.0025205418933182955, -0.028211137279868126, 0.012895166873931885, 0.003823920851573348, -0.010454079136252403, 0.03294454887509346, -0.006315724458545446, 0.004692839924246073, -0.019690994173288345, 0.015336255542933941, 0.004970083013176918, -0.031916722655296326, -0.011806482449173927, -0.00967644713819027, -0.009365393780171871, 0.015092822723090649, -0.01332793664187193, 0.03383713588118553, -0.024938320741057396, -0.01887955330312252, -0.013354984112083912, 0.008100897073745728, 0.030347933992743492, -0.021638456732034683, 0.021205686032772064, -0.003746157744899392, -0.03686651960015297, -0.02902257815003395, 0.009541206993162632, -0.17408137023448944, 0.021624932065606117, 0.015268635004758835, 0.0029685257468372583, 0.014416621066629887, -0.0005557533004321158, 0.03426990285515785, 0.001698956941254437, -0.02395106665790081, 0.02063767798244953, 0.015593212097883224, -2.648016561579425e-05, -0.009263964369893074, -0.0025712570641189814, 0.006136531010270119, 0.029942212626338005, -0.018176302313804626, 0.019447561353445053, 0.018974220380187035, -0.004686078056693077, 0.031051184982061386, -0.01224601361900568, 0.008668906055390835, 0.017743533477187157, 0.020948730409145355, -0.0074517433531582355, 0.007614031434059143, 0.0049058436416089535, -0.011765910312533379, 0.002912739058956504, -0.04127535596489906, -0.007614031434059143, 0.025506330654025078, 0.023315435275435448, 0.0164046548306942, 0.004435883369296789, -0.004899081774055958, 0.025722714141011238, -0.002123273443430662, 0.008100897073745728, -0.0061263879761099815, 0.021192163228988647, 0.006366439629346132, 0.005768001079559326, 0.009852259419858456, 0.017702961340546608, 0.018284495919942856, 0.0037901108153164387, 0.018933648243546486, -0.02405925840139389, 0.01683742366731167, -0.047280024737119675, 0.004973463714122772, -0.0037698247469961643, 0.014227285049855709, 0.0105352234095335, 0.024140402674674988, -0.003436795435845852, 0.002640567719936371, -0.02665587328374386, -0.021922459825873375, -0.006136531010270119, 0.008357853628695011, -0.029590588063001633, -0.017459528520703316, -0.00831051915884018, -0.01102208811789751, 0.010839514434337616, -0.0347297228872776, 0.02319372072815895, 0.0006897257990203798, 0.005453567020595074, -0.0065422519110143185, -0.01253677997738123, 0.01773001067340374, 0.0056429035030305386, 0.009845497086644173, 0.010372934862971306, 0.009324821643531322, -0.018500879406929016, -0.020840538665652275, -0.0034537003375589848, -0.020150812342762947, 0.0032711259555071592, 0.00787775032222271, 0.01314536202698946, -0.006582824047654867, 0.003386080265045166, 0.022679805755615234, -0.024221546947956085, 0.004033543635159731, -0.01571492850780487, 0.009764352813363075, -0.016499321907758713, -0.013686323538422585, 0.01963689923286438, -0.009750829078257084, -0.0023650156799703836, 0.014889962039887905, -0.02006966806948185, -0.004713125992566347, -0.02104339748620987, -0.016877995803952217, -0.004162021912634373, -0.0034300333354622126, 0.020583581179380417, 0.011650956235826015, 0.03700175881385803, 0.007999466732144356, -0.017811153084039688, -0.01372013334184885, 0.004249928053468466, 0.017648866400122643, 0.008107658475637436, 0.0041451165452599525, 0.001950841979123652, -0.015877217054367065, -0.01456538587808609, 0.01636408269405365, -0.0012036390835419297, 0.06810703873634338, -0.0026456392370164394, 0.0018443402368575335, -0.023274865001440048, -0.010866561904549599, -0.007323265075683594, -0.07865578681230545, -0.016309985890984535, -0.0032795784063637257, 0.014578909613192081, -0.014213760383427143, 0.03527068346738815, 0.0031054564751684666, 0.0020218431018292904, -0.02182779274880886, 0.014754721894860268, 0.0008524368167854846, -0.019555754959583282, 0.01823039911687374, 0.0026287343353033066, 0.020299576222896576, 0.006342772394418716, -0.009128723293542862, -0.012070201337337494, 0.0062311990186572075, 0.028968483209609985, -0.01705380715429783, 0.020921681076288223, 0.016337033361196518, -0.014470716938376427, 0.015092822723090649, 0.005348755978047848, -0.033647798001766205, 0.029617635533213615, 0.030185645446181297, -0.007992704398930073, 0.027575507760047913, -0.014849389903247356, 0.0358116440474987, -0.00796565692871809, 0.01924470253288746, -0.001874769339337945, -0.02902257815003395, -0.0031426476780325174, 0.008608047850430012, -0.04038276895880699, 0.010210646316409111, -0.013841849751770496, -0.03088889643549919, -0.025709189474582672, -0.02028605155646801, -0.002909358125180006, -0.015701403841376305, -0.0038475878536701202, -0.0064746318385005, -0.022206464782357216, -0.02470841258764267, -0.030699558556079865, -0.017094379290938377, -0.021854840219020844, 0.016377605497837067, -0.0040910206735134125, 0.021908937022089958, 0.015620260499417782, -0.03984180837869644, -0.028211137279868126, -0.004036924336105585, 0.005203372333198786, -0.02539813704788685, 0.008560714311897755, 0.0005096870590932667, -0.015525592491030693, -0.035162489861249924, 0.010190360248088837, 0.017648866400122643, -0.023247815668582916, -0.018947172909975052, 0.010143025778234005, -0.014971106313169003, 0.00910167582333088, -0.06269742548465729, 0.011265520937740803, -0.013077741488814354, 0.00047165071009658277, 0.015566164627671242, -0.03527068346738815, -0.01870374009013176, -0.02212532050907612, 0.015836644917726517, -0.010961229912936687, 0.030915943905711174, 0.011732100509107113, 0.014835866168141365, 0.007370599079877138, 0.006089196540415287, -0.01390270795673132, 0.02514118142426014, 0.009480348788201809, -0.0051323710940778255, 0.0011284116189926863, -0.01599893346428871, 0.00522365840151906, -0.02377525344491005, -0.008844719268381596, -0.03367484733462334, 0.006653825286775827, -0.005227039568126202, -0.00714745232835412, -0.07005450129508972, 0.01593131385743618, -0.00891910120844841, 0.01729723997414112, -0.012462398037314415, -0.02481660433113575, 0.0013042241334915161, -0.019515182822942734, -0.006045243702828884, 0.016012458130717278, -0.0013532487209886312, 0.02449202723801136, 0.011191138997673988, -0.004997130949050188, -0.013699847273528576, -0.006471250671893358, -0.006018195301294327, -0.01935289427638054, 0.03851645067334175, 0.007546411361545324, -0.023829350247979164, 0.008283471688628197, 0.029915165156126022, 0.006785684730857611, -0.013199457898736, 0.021597884595394135, -0.010048357769846916, 0.00850661750882864, 0.011218187399208546, -0.011691528372466564, -0.006413773633539677, -0.011218187399208546, 7.786885544192046e-05, 0.010136264376342297, 0.0015231444267556071, -9.435127140022814e-05, -0.01102208811789751, 0.028860289603471756, 0.008743288926780224, 0.00747202942147851, -0.03654194250702858, -0.04284414276480675, 0.011644193902611732, -0.010812466032803059, 0.002473207889124751, -0.01881193183362484, -0.00484498543664813, -0.004459550604224205, -0.0038340638857334852, 0.014092043973505497, 0.009554730728268623, 0.013361746445298195, 0.014795294031500816, -0.025181753560900688, -0.012523256242275238, -0.013449653051793575, 0.017459528520703316, 0.002422492718324065, -0.018527928739786148, -0.011603621765971184, 0.032024916261434555, 0.007404408883303404, 0.008229374885559082, 0.009149009361863136, 0.015349779278039932, 0.014105568639934063, -0.004625219851732254, 0.012739640660583973, 0.022720377892255783, -0.022179417312145233, -0.021313879638910294, 0.0003835331881418824, 0.02902257815003395, 0.02240932546555996, -0.002349801128730178, 0.0201102402061224, 0.011623907834291458, 0.0015535735292360187, -0.0305643193423748, 0.018933648243546486, 0.02646653540432453, -0.02683168463408947, -0.022449897602200508, 0.005960718262940645, 0.015255111269652843, 0.011143804527819157, 0.01372013334184885, -0.0044020735658705235, -0.012631448917090893, -0.0037089665420353413, -0.028643906116485596, 0.00027111463714390993, -0.003536535194143653, -0.0044291215017437935, -0.00532170757651329, -0.006035100668668747, 0.009899593889713287, 0.016702182590961456, 0.03559526056051254, 0.020083192735910416, -0.017094379290938377, 0.008790622465312481, 0.006538870744407177, -0.01651284657418728, -0.0380566343665123, 0.0016118958592414856, -0.029861068353056908, -0.005213515367358923, 0.0280217994004488, 0.006160197779536247, 0.01152923982590437, -0.00029076673672534525, 0.007438219152390957, 0.013098027557134628, -0.011380475014448166, 0.018622595816850662, 0.018798409029841423, -0.010291790589690208, -0.008242899551987648, 0.018041063100099564, 0.02247694693505764, 0.006958115845918655, 0.006887114606797695, -0.025168228894472122, 0.007992704398930073, -0.008276709355413914, 0.017486577853560448, -0.019150033593177795, 0.023937541991472244, 0.005003892816603184, 0.014349001459777355, -0.03153805062174797, 0.0022669662721455097, -0.016607515513896942, -0.030077453702688217, 0.007816892117261887, -0.014930534176528454, 0.0028941435739398003, -0.02240932546555996, 0.07665423303842545, 0.034405145794153214, -0.015917789191007614, 0.015809597447514534, -0.008709478192031384, 0.024870699271559715, -0.009074627421796322, 0.01718904823064804, -0.011820006184279919, -0.011941722594201565, -0.009054341353476048, 0.002023533685132861, 0.027859512716531754, -0.020867586135864258, -0.02388344518840313, -0.017500100657343864, 0.02071882225573063, -0.004831461701542139, -0.025019465014338493, -0.04276299849152565, -0.0049058436416089535, -0.0015569544630125165, -0.0014386192196980119, 0.0014217142015695572, -0.023153148591518402, -0.0049667018465697765, 0.008567475713789463, -0.004334453027695417, -0.015633784234523773, -0.005872812122106552, 0.0074179330840706825, -0.012597638182342052, -0.02013728767633438, -0.013043931685388088, -0.013206220231950283, 0.004959939979016781, 0.00712040439248085, -0.006285295356065035, 0.028184087947010994, 0.02769722416996956, -0.015579688362777233, 0.006183865014463663, -0.014416621066629887, -0.024032210931181908, 0.0031781482975929976, 0.004885557573288679, -0.022531041875481606, -0.02654767967760563, 0.03967951983213425], name_embedding=None, graph_embedding=None, community_ids=['8'], text_unit_ids=['b1acf6f137198e644d60ab1843b2c63e'], document_ids=None, rank=1, attributes=None)\n" + ] + } + ], + "source": [ "try:\n", - " data[\"entities\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\")\n", - " entity_embeddings = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet\")\n", - " data[\"entities\"] = read_indexer_entities(data[\"entities\"], entity_embeddings, COMMUNITY_LEVEL)\n", + " data[\"entities\"] = pd.read_parquet(\n", + " f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\"\n", + " )\n", + " entity_embeddings = pd.read_parquet(\n", + " f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet\"\n", + " )\n", + " data[\"entities\"] = read_indexer_entities(\n", + " data[\"entities\"], entity_embeddings, COMMUNITY_LEVEL\n", + " )\n", " print(\"Entities table sample:\")\n", " print(data[\"entities\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"ENTITY_TABLE file not found. Setting entities to None.\")\n", - " data[\"entities\"] = None\n", - "\n", + " data[\"entities\"] = None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Relationships table:\n", + "This table represents relationships between entities. Each relationship has a unique ID, a short ID, a source entity, a target entity, a weight, a description, and potentially description embeddings. It also includes text unit IDs, document IDs, and may have additional attributes like rank." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Relationships table sample:\n", + "Relationship(id='43c3390303c6476cb65f584e37c3e81c', short_id='0', source='ALEX MERCER', target='TAYLOR CRUZ', weight=139.0, description=\"Alex Mercer and Taylor Cruz are both agents in the Paranormal Military Squad, working together on various extraterrestrial data and alien signals. Their professional relationship is marked by a balance of curiosity and caution, with Alex Mercer often leading and Taylor Cruz providing a cautious and analytical perspective. Despite occasional conflicts between obedience and investigative zeal, Alex acknowledges Taylor's authority and respects her cautionary advice. \\n\\nTaylor Cruz, who often questions Mercer's commitment, relies on him to keep the team grounded and focused. They work together to ensure the team's efforts remain controlled and cautious, balancing innovative and defensive strategies as well as scientific and military perspectives. Their collaboration involves debating hypotheses and facts, with Cruz's commanding presence complementing Mercer's leadership. Overall, their teamwork within the Paranormal Military Squad is characterized by mutual respect and a shared goal of effectively managing alien communication and data analysis.\", description_embedding=None, text_unit_ids=['0252fd22516cf1fe4c8249dc1d5aa995', '2be045844a1390572a34f61054ca1994', '2c566f4fafe76923d5e2393b28ddfc7e', '3033fdd0e928a52a29b8bb5f4c4ca242', '3ce43735ef073010f94b5c8c59eef5dd', '49b695de87aa38bf72fe97b12a2ccefd', '5b2d21ec6fc171c30bdda343f128f5a6', '6a678172e5a65aa7a3bfd06472a4bc8a', '73011d975a4700a15ab8e3a0df2c50ca', '8667430247e7cd260e19cc87c6e6c3d0', '935164b93d027138525f0a392bb67c18', 'ad48c6cbbdc9a7ea6322eca668433d1d', 'ae3d58f47c77025945b78a1115014d49', 'b1acf6f137198e644d60ab1843b2c63e', 'b330e287a060d3a460431479f6ec248f', 'b586b4a1d69c6dcc177e138c452bcd2a', 'cfd4ea0e691b888c0d765e865ad7e8da', 'd491433ffa1b4c629fe984e7d85364aa', 'db133889acaba9520123346a859a1494'], document_ids=None, attributes={'rank': 53})\n" + ] + } + ], + "source": [ "try:\n", - " data[\"relationships\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['RELATIONSHIP_TABLE']}.parquet\")\n", + " data[\"relationships\"] = pd.read_parquet(\n", + " f\"{INPUT_DIR}/{TABLE_NAMES['RELATIONSHIP_TABLE']}.parquet\"\n", + " )\n", " data[\"relationships\"] = read_indexer_relationships(data[\"relationships\"])\n", " print(\"Relationships table sample:\")\n", " print(data[\"relationships\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"RELATIONSHIP_TABLE file not found. Setting relationships to None.\")\n", - " data[\"relationships\"] = None\n", - "\n", + " data[\"relationships\"] = None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Covariate table:\n", + "This table stores additional variables or attributes that may be associated with entities, relationships, or other elements in the system. Covariates are typically used to provide context or additional information that can be useful for analysis or modeling." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-19 12:10:20,511 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" + ] + } + ], + "source": [ "try:\n", - " data[\"covariates\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['COVARIATE_TABLE']}.parquet\")\n", + " data[\"covariates\"] = pd.read_parquet(\n", + " f\"{INPUT_DIR}/{TABLE_NAMES['COVARIATE_TABLE']}.parquet\"\n", + " )\n", " data[\"covariates\"] = read_indexer_covariates(data[\"covariates\"])\n", " print(\"Covariates table sample:\")\n", " print(data[\"covariates\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"COVARIATE_TABLE file not found. Setting covariates to None.\")\n", - " data[\"covariates\"] = None\n", - "\n", + " data[\"covariates\"] = None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reports table:\n", + "This table contains community reports. Each report has an ID, a short ID, a title, a community ID, a summary, full content, a rank, and potentially embeddings for the summary and full content. It may also include additional attributes." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reports table sample:\n", + "CommunityReport(id='18', short_id='18', title='Paranormal Military Squad and Operation: Dulce', community_id='18', summary=\"The community centers around the Paranormal Military Squad, a clandestine governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce, mediating Earth's contact with alien intelligence. Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, each contributing significantly to the mission. The community's activities are focused on deciphering alien signals, ensuring humanity's safety, and preparing for potential first contact scenarios.\", full_content=\"# Paranormal Military Squad and Operation: Dulce\\n\\nThe community centers around the Paranormal Military Squad, a clandestine governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce, mediating Earth's contact with alien intelligence. Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, each contributing significantly to the mission. The community's activities are focused on deciphering alien signals, ensuring humanity's safety, and preparing for potential first contact scenarios.\\n\\n## Central Role of the Paranormal Military Squad\\n\\nThe Paranormal Military Squad is the central entity in this community, responsible for investigating and engaging with extraterrestrial phenomena. This elite group is tasked with initiating and managing humanity's response to potential extraterrestrial contact, bridging interstellar distances, and engaging in dialogue with alien races. Their duties include deciphering evolving signals, ensuring humanity's safety in intergalactic matters, and preparing for potential first contact scenarios. The squad's operations are primarily based at the Dulce military base, which serves as their command center [Data: Entities (4); Relationships (105, 102, 116, 98, 124, +more)].\\n\\n## Operation: Dulce\\n\\nOperation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Entities (4); Relationships (98, 105, 102, 116, 126, +more)].\\n\\n## Key Figures within the Paranormal Military Squad\\n\\nSeveral key figures play crucial roles within the Paranormal Military Squad. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Entities (35); Relationships (3, 53, 31, 77, 85, +more)].\\n\\n## Deciphering Alien Signals\\n\\nA primary focus of the Paranormal Military Squad is deciphering alien signals. This involves analyzing and decoding extraterrestrial communications to understand their intent and ensure humanity's safety. The squad's efforts in this area are critical for preparing for potential first contact scenarios and establishing effective communication with alien races. The use of advanced communications equipment and the strategic location at the Dulce military base are essential components of this mission [Data: Entities (71, 72); Relationships (125, 126, 134, 108, 114, +more)].\\n\\n## Potential First Contact Scenarios\\n\\nThe Paranormal Military Squad is preparing for potential first contact scenarios with extraterrestrial intelligence. This involves mediating Earth's bid for cosmic relevance through dialogue, ensuring effective communication and negotiation with alien beings. The squad's role in these scenarios is critical, as they represent humanity in these unprecedented encounters. The potential implications of first contact are monumental, making the squad's mission highly significant [Data: Entities (77, 58); Relationships (119, 118, 109, 107, 127, +more)].\\n\\n## Global Implications of the Mission\\n\\nThe activities of the Paranormal Military Squad have significant global implications. Their mission to engage with extraterrestrial intelligence and prepare for potential first contact scenarios could alter the course of human history. The squad's efforts in deciphering alien signals, ensuring humanity's safety, and establishing effective communication with alien races are critical for navigating the complexities of cosmic discovery. The potential for both positive and negative outcomes makes the squad's mission highly impactful [Data: Entities (52, 54, 90); Relationships (110, 111, 140, 123, 135, +more)].\", rank=9.0, summary_embedding=None, full_content_embedding=None, attributes=None)\n" + ] + } + ], + "source": [ "try:\n", - " data[\"reports\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['COMMUNITY_REPORT_TABLE']}.parquet\")\n", + " data[\"reports\"] = pd.read_parquet(\n", + " f\"{INPUT_DIR}/{TABLE_NAMES['COMMUNITY_REPORT_TABLE']}.parquet\"\n", + " )\n", " entity_data = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet\")\n", - " data[\"reports\"] = read_indexer_reports(data[\"reports\"], entity_data, COMMUNITY_LEVEL)\n", + " data[\"reports\"] = read_indexer_reports(\n", + " data[\"reports\"], entity_data, COMMUNITY_LEVEL\n", + " )\n", " print(\"Reports table sample:\")\n", " print(data[\"reports\"][0])\n", "except FileNotFoundError:\n", " logger.warning(\"COMMUNITY_REPORT_TABLE file not found. Setting reports to None.\")\n", - " data[\"reports\"] = None\n", - "\n", + " data[\"reports\"] = None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Text units table:\n", + "This table stores text units, which are likely segments of text from documents. Each text unit has an ID, a short ID, the actual text content, and potentially text embeddings. It also includes entity IDs, relationship IDs, covariate IDs, the number of tokens, document IDs, and may have additional attributes." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Text units table sample:\n", + "TextUnit(id='5b2d21ec6fc171c30bdda343f128f5a6', short_id='0', text='# Operation: Dulce\\n\\n## Chapter 1\\n\\nThe thrumming of monitors cast a stark contrast to the rigid silence enveloping the group. Agent Alex Mercer, unfailingly determined on paper, seemed dwarfed by the enormity of the sterile briefing room where Paranormal Military Squad\\'s elite convened. With dulled eyes, he scanned the projectors outlining their impending odyssey into Operation: Dulce.\\n\\n“I assume, Agent Mercer, you’re not having second thoughts?” It was Taylor Cruz’s voice, laced with an edge that demanded attention.\\n\\nAlex flickered a strained smile, still thumbing his folder\\'s corner. \"Of course not, Agent Cruz. Just trying to soak in all the details.\" The compliance in his tone was unsettling, even to himself.\\n\\nJordan Hayes, perched on the opposite side of the table, narrowed their eyes but offered a supportive nod. \"Details are imperative. We’ll need your clear-headedness down there, Mercer.\"\\n\\nA comfortable silence, the kind that threaded between veterans of shared secrets, lingered briefly before Sam Rivera, never one to submit to quiet, added, \"I’ve combed through the last transmission logs. If anyone can make sense of the anomalies, it’s going to be the two of you.\"\\n\\nTaylor snorted dismissively. “Focus, people. We have protocols for a reason. Speculation is counter-productive.” The words \\'counter-productive\\' seemed to hang in the air, a tacit reprimand directed at Alex.\\n\\nFeeling the weight of his compliance conflicting with his natural inclination to leave no stone unturned, Alex straightened in his seat. \"I agree, Agent Cruz. Protocol is paramount,\" he said, meeting Taylor\\'s steely gaze. It was an affirmation, but beneath it lay layers of unspoken complexities that would undoubtedly unwind with time.\\n\\nAlex\\'s submission, though seemingly complete, didn\\'t escape Jordan, who tilted their head ever so slightly, their eyes revealing a spark of understanding. They knew well enough the struggle of aligning personal convictions with overarching missions. As everyone began to collect their binders and prepare for departure, a quiet resolve took form within Alex, galvanized by the groundwork laid by their interactions. He may have spoken in compliance, but his determination had merely taken a subtler form — one that wouldn\\'t surrender so easily to the forthcoming shadows.\\n\\n\\\\*\\n\\nDr. Jordan Hayes shuffled a stack of papers, their eyes revealing a tinge of skepticism at Taylor Cruz\\'s authoritarian performance. _Protocols_, Jordan thought, _are just the framework, the true challenges we\\'re about to face lie well beyond the boundaries of any protocol._ They cleared their throat before speaking, tone cautious yet firm, \"Let\\'s remember, the unknown variables exceed the known. We should remain adaptive.\"\\n\\nA murmur of agreement echoed from Sam Rivera, who leaned forward, lacing their fingers together as if weaving a digital framework in the air before them, \"Exactly, adaptability could be the key to interpreting the signal distortions and system malfunctions. We shouldn\\'t discount the… erratic.\"\\n\\nTheir words hung like an electric charge in the room, challenging Taylor\\'s position with an inherent truth. Cruz’s jaw tightened almost imperceptibly, but the agent masked it with a small nod, conceding to the omnipresent threat of the unpredictable. \\n\\nAlex glanced at Jordan, who never looked back, their gaze fixed instead on a distant point, as if envisioning the immense dark corridors they were soon to navigate in Dulce. Jordan was not one to embrace fantastical theories, but the air of cautious calculation betrayed a mind bracing for confrontation with the inexplicable, an internal battle between the evidence of their research and the calculating skepticism that kept them alive in their field.\\n\\nThe meeting adjourned with no further comments, the team members quietly retreading the paths to their personal preparations. Alex, trailing slightly behind, observed the others. _The cautious reserve Jordan wears like armor doesn\\'t fool me_, he thought, _their analytical mind sees the patterns I do. And that\\'s worth more than protocol. That\\'s the connection we need to survive this._\\n\\nAs the agents dispersed into the labyrinth of the facility, lost in their thoughts and preparations, the base\\'s halogen lights flickered, a brief and unnoticed harbingers of the darkness to come.\\n\\n\\\\*\\n\\nA deserted corridor inside the facility stretched before Taylor Cruz, each footstep rhythmic and precise. Cruz, ambitious and meticulous, eyed the troops passing by with a sardonic tilt of the lips. Obedience—it was as much a tool as any weapon in the arsenal, and Cruz wielded it masterfully. To them, it was another step toward unfettered power within the dark bowels of the military complex.\\n\\nInside a secluded equipment bay, Cruz began checking over gear with mechanical efficiency. They traced fingers over the sleek surface of an encrypted radio transmitter. \"If protocols are maintained,\" said Cruz aloud, rehearsing the speech for their subordinates, \"not only will we re-establish a line of communication with Dulce, but we shall also illuminate the darkest secrets it conceals.\"\\n\\nAgent Hayes appeared in the doorway, arms crossed and a knowing glint in their eyes. \"You do understand,\" Jordan began, the words measured and probing, \"that once we\\'re in the depths, rank gives way to survival instincts. It\\'s not about commands—it\\'s empowerment through trust.\"\\n\\nThe sentiment snagged on Cruz\\'s armor of confidence, probing at the insecurities festering beneath. Taylor offered a brief nod, perhaps too curt, but enough to acknowledge Jordan\\'s point without yielding ground. \"Trust,\" Cruz mused, \"or the illusion thereof, is just as potent.\"\\n\\nSilence claimed the space between them, steeped in the reality of the unknown dangers lurking in the shadows of the mission. Cruz diligently returned to the equipment, the act a clear dismissal.\\n\\nNot much later, Cruz stood alone', text_embedding=None, entity_ids=['b45241d70f0e43fca764df95b2b81f77', '4119fd06010c494caa07f439b333f4c5', 'd3835bf3dda84ead99deadbeac5d0d7d', '077d2820ae1845bcbb1803379a3d1eae', '3671ea0dd4e84c1a9b02c5ab2c8f4bac', '19a7f254a5d64566ab5cc15472df02de', 'e7ffaee9d31d4d3c96e04f911d0a8f9e'], relationship_ids=['43c3390303c6476cb65f584e37c3e81c', 'fa14b16c17e3417dba5a4b473ea5b18d', '7cc3356d38de4328a51a5cbcb187dac3', 'bef16fb5fd7344cca5e295b13ef3e0cd', 'bb9e01bc171d4326a29afda59ece8d17', '1f1545308e9347af91fd03b94aadc21f', '6ea81acaf232485e94fff638e03336e1', 'd136b08d586d488f9e4188b524c85a29', 'cccfa151fedc4b218a8d96adc7dceabe', '86505bca739d4bccaaa1a8e0f3baffdc', '1af9faf341e14a5bbf4ddc9080e8dc0b', '353d91abc68648639d65a549e59b5cf3', '14555b518e954637b83aa762dc03164e', 'b1f6164116d44fe8b8f135d7f65b9e58', 'a0047221896d418d849847d422fa4bb8'], covariate_ids=None, n_tokens=1200, document_ids=['958fdd043f17ade63cb13570b59df295'], attributes=None)\n", + "Data loading completed\n" + ] + } + ], + "source": [ "try:\n", - " data[\"text_units\"] = pd.read_parquet(f\"{INPUT_DIR}/{TABLE_NAMES['TEXT_UNIT_TABLE']}.parquet\")\n", + " data[\"text_units\"] = pd.read_parquet(\n", + " f\"{INPUT_DIR}/{TABLE_NAMES['TEXT_UNIT_TABLE']}.parquet\"\n", + " )\n", " data[\"text_units\"] = read_indexer_text_units(data[\"text_units\"])\n", " print(\"Text units table sample:\")\n", " print(data[\"text_units\"][0])\n", @@ -250,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "metadata": { "id": "kiYpzj7-gdC4" }, @@ -259,10 +368,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-11 16:28:21,824 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-11 16:28:21,827 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-11 16:28:21,873 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-11 16:28:21,874 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + "2024-09-19 12:10:20,566 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-19 12:10:20,568 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-19 12:10:20,609 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-19 12:10:20,611 - __main__ - INFO - CouchbaseVectorStore setup completed\n" ] } ], @@ -271,19 +380,22 @@ "\n", "try:\n", " couchbase_vector_store = CouchbaseVectorStore(\n", - " collection_name=\"entity_description_embeddings\",\n", + " collection_name=COUCHBASE_COLLECTION_NAME,\n", " bucket_name=COUCHBASE_BUCKET_NAME,\n", " scope_name=COUCHBASE_SCOPE_NAME,\n", " index_name=COUCHBASE_VECTOR_INDEX_NAME,\n", " )\n", + "\n", + " auth = PasswordAuthenticator(str(COUCHBASE_USERNAME), str(COUCHBASE_PASSWORD))\n", + " cluster_options = ClusterOptions(auth)\n", + "\n", " couchbase_vector_store.connect(\n", " connection_string=COUCHBASE_CONNECTION_STRING,\n", - " username=COUCHBASE_USERNAME,\n", - " password=COUCHBASE_PASSWORD,\n", + " cluster_options=cluster_options,\n", " )\n", " logger.info(\"CouchbaseVectorStore setup completed\")\n", - "except Exception as e:\n", - " logger.error(f\"Error setting up CouchbaseVectorStore: {str(e)}\")\n", + "except Exception:\n", + " logger.exception(\"Error setting up CouchbaseVectorStore\")\n", " raise" ] }, @@ -303,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": { "id": "japySJrUgdOG" }, @@ -312,8 +424,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-11 16:28:21,911 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-11 16:28:22,536 - __main__ - INFO - LLM and embedding models setup completed\n" + "2024-09-19 12:10:20,630 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-19 12:10:21,260 - __main__ - INFO - LLM and embedding models setup completed\n" ] } ], @@ -340,8 +452,8 @@ " )\n", "\n", " logger.info(\"LLM and embedding models setup completed\")\n", - "except Exception as e:\n", - " logger.error(f\"Error setting up models: {str(e)}\")\n", + "except Exception:\n", + " logger.exception(\"Error setting up models\")\n", " raise" ] }, @@ -360,7 +472,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": { "id": "C1wV0RqrgdVl" }, @@ -369,29 +481,36 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-11 16:28:22,550 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-11 16:28:22,553 - graphrag.vector_stores.couchbasedb - INFO - Loading 96 documents into vector storage\n", - "2024-09-11 16:28:22,992 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded 96 out of 96 documents\n", - "2024-09-11 16:28:22,997 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + "2024-09-19 12:10:21,274 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-19 12:10:21,276 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", + "2024-09-19 12:10:21,501 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded all 92 documents\n", + "2024-09-19 12:10:21,504 - __main__ - INFO - Entity semantic embeddings stored successfully\n" ] } ], "source": [ - "logger.info(f\"Storing entity embeddings\")\n", + "logger.info(\"Storing entity embeddings\")\n", "\n", "try:\n", - " entities_list = list(data[\"entities\"].values()) if isinstance(data[\"entities\"], dict) else data[\"entities\"]\n", + " if not isinstance(data[\"entities\"], list):\n", + " raise TypeError(\"data['entities'] must be a list\")\n", "\n", " store_entity_semantic_embeddings(\n", - " entities=entities_list, vectorstore=couchbase_vector_store\n", + " entities=data[\"entities\"], vectorstore=couchbase_vector_store\n", " )\n", " logger.info(\"Entity semantic embeddings stored successfully\")\n", - "except AttributeError as e:\n", - " logger.error(f\"Error storing entity semantic embeddings: {str(e)}\")\n", - " logger.error(\"Ensure all entities have an 'id' attribute\")\n", + "except AttributeError:\n", + " logger.exception(\n", + " \"Error storing entity semantic embeddings. Ensure all entities have an 'id' attribute\"\n", + " )\n", " raise\n", - "except Exception as e:\n", - " logger.error(f\"Error storing entity semantic embeddings: {str(e)}\")\n", + "except TypeError:\n", + " logger.exception(\n", + " \"Error storing entity semantic embeddings. Ensure data['entities'] is a list\"\n", + " )\n", + " raise\n", + "except Exception:\n", + " logger.exception(\"Error storing entity semantic embeddings\")\n", " raise" ] }, @@ -469,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": { "id": "8ZiML072gddQ" }, @@ -478,8 +597,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-11 16:28:23,046 - __main__ - INFO - Creating search engine\n", - "2024-09-11 16:28:23,052 - __main__ - INFO - Search engine created\n" + "2024-09-19 12:10:21,527 - __main__ - INFO - Creating search engine\n", + "2024-09-19 12:10:21,535 - __main__ - INFO - Search engine created\n" ] } ], @@ -544,7 +663,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": { "id": "1SvUSrIbgdkh" }, @@ -553,15 +672,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-11 16:28:23,093 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-11 16:28:23,096 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-11 16:28:23,914 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-11 16:28:24,107 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-11 16:28:24,115 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-11 16:28:24,122 - graphrag.query.context_builder.community_context - WARNING - Warning: No community records added when building community context.\n", - "2024-09-11 16:28:24,212 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726052303.0959587. QUERY: Give me a summary about the story\n", - "2024-09-11 16:28:25,232 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-11 16:28:34,545 - __main__ - INFO - Query completed successfully\n" + "2024-09-19 12:10:21,568 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-19 12:10:21,572 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-19 12:10:22,137 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-19 12:10:22,144 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-19 12:10:22,152 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-19 12:10:22,279 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726728021.5726213. QUERY: Give me a summary about the story\n", + "2024-09-19 12:10:23,179 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-19 12:10:34,053 - __main__ - INFO - Query completed successfully\n" ] }, { @@ -569,45 +687,41 @@ "output_type": "stream", "text": [ "Question: 'Give me a summary about the story'\n", - "Answer: ## Summary of the Story\n", - "\n", - "### Introduction to the Mission\n", - "\n", - "The narrative revolves around a mission undertaken by the Paranormal Military Squad at the Dulce military base. The mission, known as Operation: Dulce, is a high-stakes endeavor involving the investigation and potential first contact with extraterrestrial intelligence. The team, led by key figures such as Alex, Taylor Cruz, and Dr. Jordan Hayes, navigates the complexities and dangers of the base, which is filled with advanced technology and hidden secrets [Data: Entities (21, 47, 50, 54, 157, 193)].\n", + "Answer: # Summary of the Story\n", "\n", - "### Key Characters and Their Roles\n", + "## Introduction to the Paranormal Military Squad\n", "\n", - "**Alex** is a central figure in the mission, displaying leadership and a mix of respect, mentorship, and skepticism. He works closely with other team members, including Dr. Jordan Hayes and Sam Rivera, to decode and respond to the alien signal [Data: Entities (47); Relationships (117, 88, 56, 155, 196)].\n", + "The narrative centers around the Paranormal Military Squad, a secretive governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", "\n", - "**Dr. Jordan Hayes** is a scientist studying alien technology retrieved from a crash site. Jordan uses the metaphor of a \"cosmic ballet\" to describe the intricate process of deciphering alien signals, highlighting the scientific and philosophical implications of their work [Data: Entities (44, 54, 88); Relationships (64)].\n", + "## Key Figures and Their Roles\n", "\n", - "**Taylor Cruz** is another key member of the team, providing strategic insights and maintaining control over the mission's operations. Cruz's leadership is marked by a blend of authority and vulnerability, as they navigate the challenges posed by the unknown [Data: Entities (27, 32, 46); Relationships (31, 43, 148)].\n", + "Several key figures play crucial roles within the Paranormal Military Squad. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 38, 94)].\n", "\n", - "**Sam Rivera** is a technology expert who plays a crucial role in interpreting the alien signals and bridging communication systems. Sam's expertise and youthful energy are vital to the team's efforts [Data: Entities (23, 68, 73); Relationships (70, 90)].\n", + "## Operation: Dulce\n", "\n", - "### The Cosmic Play and Human Involvement\n", + "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (142, 143, 144, 194, 196)].\n", "\n", - "The story portrays humanity as unwitting actors in a larger cosmic narrative, referred to as the \"cosmic play.\" Earth serves as the stage for this grand drama, with the human race involved in efforts of cosmic discovery and interstellar diplomacy [Data: Entities (55, 57, 81); Relationships (197, 200, 108)].\n", + "## Deciphering Alien Signals\n", "\n", - "### The Interstellar Pas de Deux\n", + "A primary focus of the Paranormal Military Squad is deciphering alien signals. This involves analyzing and decoding extraterrestrial communications to understand their intent and ensure humanity's safety. The squad's efforts in this area are critical for preparing for potential first contact scenarios and establishing effective communication with alien races. The use of advanced communications equipment and the strategic location at the Dulce military base are essential components of this mission [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (125, 126, 134, 108, 114, +more)].\n", "\n", - "A significant aspect of the mission is the \"interstellar pas de deux,\" a dance-like interaction between the Paranormal Military Squad and the unknown extraterrestrial intelligence. This interaction is marked by attempts at communication and understanding, with the potential for significant advancements in human knowledge and interspecies diplomacy [Data: Entities (90, 70, 71); Relationships (122, 65, 22)].\n", + "## Potential First Contact Scenarios\n", "\n", - "### The Cosmic Threshold\n", + "The Paranormal Military Squad is preparing for potential first contact scenarios with extraterrestrial intelligence. This involves mediating Earth's bid for cosmic relevance through dialogue, ensuring effective communication and negotiation with alien beings. The squad's role in these scenarios is critical, as they represent humanity in these unprecedented encounters. The potential implications of first contact are monumental, making the squad's mission highly significant [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (119, 118, 109, 107, 127, +more)].\n", "\n", - "The team reaches a critical moment known as the \"cosmic threshold,\" representing the potential first contact with an alien intelligence. This milestone is seen as a monumental achievement for humanity, with the team poised to make history [Data: Entities (81, 62); Relationships (114, 102, 211)].\n", + "## Global Implications of the Mission\n", "\n", - "### Conclusion\n", + "The activities of the Paranormal Military Squad have significant global implications. Their mission to engage with extraterrestrial intelligence and prepare for potential first contact scenarios could alter the course of human history. The squad's efforts in deciphering alien signals, ensuring humanity's safety, and establishing effective communication with alien races are critical for navigating the complexities of cosmic discovery. The potential for both positive and negative outcomes makes the squad's mission highly impactful [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (110, 111, 140, 123, 135, +more)].\n", "\n", - "The story of Operation: Dulce is a blend of scientific exploration, philosophical inquiry, and the human quest for understanding. The Paranormal Military Squad's mission at the Dulce base encapsulates the tension between the known and the unknown, the earthly and the cosmic, as they navigate the complexities of interstellar communication and the potential for a new era of human history [Data: Entities (91, 79, 50); Relationships (121, 205, 208)].\n", + "## Conclusion\n", "\n", - "This summary captures the essence of the narrative, highlighting the key characters, their roles, and the overarching themes of cosmic discovery and human involvement in a larger, interstellar context.\n" + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a gripping tale of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's efforts in decoding alien signals, preparing for first contact, and navigating the potential global implications of their mission highlight the profound impact of their work on the future of humanity. The narrative underscores the importance of strategic leadership, technical expertise, and the relentless pursuit of knowledge in the face of the unknown.\n" ] } ], "source": [ "question = \"Give me a summary about the story\"\n", - "logger.info(f\"Running query: '{question}'\")\n", + "logger.info(\"Running query: '%s'\", question)\n", "\n", "try:\n", " result = await search_engine.asearch(question)\n", @@ -615,8 +729,8 @@ " print(f\"Answer: {result.response}\")\n", " logger.info(\"Query completed successfully\")\n", "except Exception as e:\n", - " logger.error(f\"An error occurred while processing the query: {str(e)}\")\n", - " print(f\"An error occurred while processing the query: {str(e)}\")" + " logger.exception(\"An error occurred while processing the query\")\n", + " print(f\"An error occurred while processing the query: {(e)}\")" ] }, { diff --git a/examples_notebooks/community_contrib/couchbase/__init__.py b/examples_notebooks/community_contrib/couchbase/__init__.py new file mode 100644 index 0000000000..691e007a87 --- /dev/null +++ b/examples_notebooks/community_contrib/couchbase/__init__.py @@ -0,0 +1,10 @@ +""" +Couchbase Vector Store Demo for GraphRAG. + +This package contains demonstration code for using Couchbase as a vector store +with GraphRAG, including data loading, vector store setup, and query execution. +""" + +from .couchbasedb_demo import main + +__all__ = ["main"] \ No newline at end of file diff --git a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py index 7c8b2cd669..44c67f9634 100644 --- a/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py +++ b/examples_notebooks/community_contrib/couchbase/couchbasedb_demo.py @@ -15,6 +15,8 @@ import tiktoken from dotenv import load_dotenv +from couchbase.auth import PasswordAuthenticator +from couchbase.options import ClusterOptions from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey from graphrag.query.indexer_adapters import ( read_indexer_covariates, @@ -42,11 +44,16 @@ load_dotenv() INPUT_DIR = os.getenv("INPUT_DIR") -COUCHBASE_CONNECTION_STRING = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") +COUCHBASE_CONNECTION_STRING = os.getenv( + "COUCHBASE_CONNECTION_STRING", "couchbase://localhost" +) COUCHBASE_USERNAME = os.getenv("COUCHBASE_USERNAME", "Administrator") COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "password") COUCHBASE_BUCKET_NAME = os.getenv("COUCHBASE_BUCKET_NAME", "graphrag-demo") COUCHBASE_SCOPE_NAME = os.getenv("COUCHBASE_SCOPE_NAME", "shared") +COUCHBASE_COLLECTION_NAME = os.getenv( + "COUCHBASE_COLLECTION_NAME", "entity_description_embeddings" +) COUCHBASE_VECTOR_INDEX_NAME = os.getenv("COUCHBASE_VECTOR_INDEX_NAME", "graphrag_index") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") LLM_MODEL = os.getenv("LLM_MODEL", "gpt-4o") @@ -76,18 +83,32 @@ def load_table(table_name: str, read_function: Callable, *args) -> Any: table_data = pd.read_parquet( f"{INPUT_DIR}/{TABLE_NAMES[table_name]}.parquet" ) - return read_function(table_data, *args) + result = read_function(table_data, *args) except FileNotFoundError: logger.warning( "%(table_name)s file not found. Setting %(table_name_lower)s to None.", - {"table_name": table_name, "table_name_lower": table_name.lower()} + {"table_name": table_name, "table_name_lower": table_name.lower()}, ) - return None - - data["entities"] = load_table("ENTITY_TABLE", read_indexer_entities, pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet"), COMMUNITY_LEVEL) + result = None + except Exception: + logger.exception("Error loading %s", table_name) + result = None + return result + + data["entities"] = load_table( + "ENTITY_TABLE", + read_indexer_entities, + pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_EMBEDDING_TABLE']}.parquet"), + COMMUNITY_LEVEL, + ) data["relationships"] = load_table("RELATIONSHIP_TABLE", read_indexer_relationships) data["covariates"] = load_table("COVARIATE_TABLE", read_indexer_covariates) - data["reports"] = load_table("COMMUNITY_REPORT_TABLE", read_indexer_reports, pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet"), COMMUNITY_LEVEL) + data["reports"] = load_table( + "COMMUNITY_REPORT_TABLE", + read_indexer_reports, + pd.read_parquet(f"{INPUT_DIR}/{TABLE_NAMES['ENTITY_TABLE']}.parquet"), + COMMUNITY_LEVEL, + ) data["text_units"] = load_table("TEXT_UNIT_TABLE", read_indexer_text_units) logger.info("Data loading completed") @@ -99,21 +120,23 @@ def setup_vector_store() -> CouchbaseVectorStore: logger.info("Setting up CouchbaseVectorStore") try: description_embedding_store = CouchbaseVectorStore( - collection_name="entity_description_embeddings", + collection_name=COUCHBASE_COLLECTION_NAME, bucket_name=COUCHBASE_BUCKET_NAME, scope_name=COUCHBASE_SCOPE_NAME, index_name=COUCHBASE_VECTOR_INDEX_NAME, ) + + auth = PasswordAuthenticator(COUCHBASE_USERNAME, COUCHBASE_PASSWORD) + cluster_options = ClusterOptions(auth) + description_embedding_store.connect( connection_string=COUCHBASE_CONNECTION_STRING, - username=COUCHBASE_USERNAME, - password=COUCHBASE_PASSWORD, + cluster_options=cluster_options, ) logger.info("CouchbaseVectorStore setup completed") except Exception: - logger.exception("Error setting up CouchbaseVectorStore:") + logger.exception("Error setting up CouchbaseVectorStore") raise - return description_embedding_store @@ -140,8 +163,8 @@ def setup_models() -> dict[str, Any]: ) logger.info("LLM and embedding models setup completed") - except Exception as e: - logger.exception("Error setting up models: %s", str(e)) + except Exception: + logger.exception("Error setting up models") raise return { @@ -151,28 +174,20 @@ def setup_models() -> dict[str, Any]: } -def store_embeddings( - entities: dict[str, Any] | list[Any], vector_store: CouchbaseVectorStore -) -> None: +def store_embeddings(entities: list[Any], vector_store: CouchbaseVectorStore) -> None: """Store entity semantic embeddings in Couchbase.""" logger.info("Storing entity embeddings") try: - if isinstance(entities, dict): - entities_list = list(entities.values()) - elif isinstance(entities, list): - entities_list = entities - - store_entity_semantic_embeddings( - entities=entities_list, vectorstore=vector_store - ) + store_entity_semantic_embeddings(entities=entities, vectorstore=vector_store) logger.info("Entity semantic embeddings stored successfully") - except AttributeError as e: - logger.exception("Error storing entity semantic embeddings: %s", str(e)) - logger.error("Ensure all entities have an 'id' attribute") + except AttributeError: + logger.exception( + "Error storing entity semantic embeddings. Ensure all entities have an 'id' attribute" + ) raise - except Exception as e: - logger.exception("Error storing entity semantic embeddings: %s", str(e)) + except Exception: + logger.exception("Error storing entity semantic embeddings") raise @@ -181,47 +196,51 @@ def create_search_engine( ) -> LocalSearch: """Create and configure the search engine.""" logger.info("Creating search engine") - context_builder = LocalSearchMixedContext( - community_reports=data["reports"], - text_units=data["text_units"], - entities=data["entities"], - relationships=data["relationships"], - covariates=data["covariates"], - entity_text_embeddings=vector_store, - embedding_vectorstore_key=EntityVectorStoreKey.ID, - text_embedder=models["text_embedder"], - token_encoder=models["token_encoder"], - ) - - local_context_params = { - "text_unit_prop": 0.5, - "community_prop": 0.1, - "conversation_history_max_turns": 5, - "conversation_history_user_turns_only": True, - "top_k_mapped_entities": 10, - "top_k_relationships": 10, - "include_entity_rank": True, - "include_relationship_weight": True, - "include_community_rank": False, - "return_candidate_context": False, - "embedding_vectorstore_key": EntityVectorStoreKey.ID, - "max_tokens": 12_000, - } - - llm_params = { - "max_tokens": 2_000, - "temperature": 0.0, - } + try: + context_builder = LocalSearchMixedContext( + community_reports=data["reports"], + text_units=data["text_units"], + entities=data["entities"], + relationships=data["relationships"], + covariates=data["covariates"], + entity_text_embeddings=vector_store, + embedding_vectorstore_key=EntityVectorStoreKey.ID, + text_embedder=models["text_embedder"], + token_encoder=models["token_encoder"], + ) - search_engine = LocalSearch( - llm=models["llm"], - context_builder=context_builder, - token_encoder=models["token_encoder"], - llm_params=llm_params, - context_builder_params=local_context_params, - response_type="multiple paragraphs", - ) - logger.info("Search engine created") + local_context_params = { + "text_unit_prop": 0.5, + "community_prop": 0.1, + "conversation_history_max_turns": 5, + "conversation_history_user_turns_only": True, + "top_k_mapped_entities": 10, + "top_k_relationships": 10, + "include_entity_rank": True, + "include_relationship_weight": True, + "include_community_rank": False, + "return_candidate_context": False, + "embedding_vectorstore_key": EntityVectorStoreKey.ID, + "max_tokens": 12_000, + } + + llm_params = { + "max_tokens": 2_000, + "temperature": 0.0, + } + + search_engine = LocalSearch( + llm=models["llm"], + context_builder=context_builder, + token_encoder=models["token_encoder"], + llm_params=llm_params, + context_builder_params=local_context_params, + response_type="multiple paragraphs", + ) + logger.info("Search engine created") + except Exception: + logger.exception("Error creating search engine") + raise return search_engine @@ -230,34 +249,44 @@ async def run_query(search_engine: LocalSearch, question: str) -> None: try: logger.info("Running query: %s", question) result = await search_engine.asearch(question) - print(f"Question: {question}") - print(f"Answer: {result.response}") + logger.info("Question: %s", question) + logger.info("Answer: %s", result.response) logger.info("Query completed successfully") - except Exception as e: - logger.exception("An error occurred while processing the query: %s", str(e)) + except Exception: + logger.exception("An error occurred while processing the query") async def main() -> None: """Orchestrate the demo.""" try: + # Start the Couchbase demo logger.info("Starting Couchbase demo") + + # Load data from parquet files data = load_data() + + # Set up the Couchbase vector store vector_store = setup_vector_store() + + # Set up the language models models = setup_models() + # Store entity embeddings if entities exist if data["entities"]: store_embeddings(data["entities"], vector_store) else: logger.warning("No entities found to store in Couchbase") + # Create the search engine search_engine = create_search_engine(data, models, vector_store) + # Run a sample query question = "Give me a summary about the story" await run_query(search_engine, question) logger.info("Couchbase demo completed") - except Exception as e: - logger.exception("An error occurred: %s", str(e)) + except Exception: + logger.exception("An error occurred in the main function") if __name__ == "__main__": diff --git a/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json b/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json index 2ee82e8572..b9d11c4589 100644 --- a/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json +++ b/examples_notebooks/community_contrib/couchbase/graphrag_demo_index.json @@ -1,6 +1,6 @@ { "type": "fulltext-index", - "name": "grapghrag_index", + "name": "graphrag_index", "uuid": "1797bd6bd434cdd2", "sourceType": "gocbcore", "sourceName": "graphrag-demo", diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index 798522eb54..ff9d19ca07 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -4,9 +4,8 @@ import logging from typing import Any -from couchbase.auth import PasswordAuthenticator from couchbase.cluster import Cluster -from couchbase.options import ClusterOptions, SearchOptions +from couchbase.options import SearchOptions from couchbase.search import SearchRequest from couchbase.vector_search import VectorQuery, VectorSearch @@ -45,36 +44,37 @@ def __init__( self.embedding_key = embedding_key self.scoped_index = scoped_index self.vector_size = kwargs.get("vector_size", DEFAULT_VECTOR_SIZE) + self._cluster = None logger.debug( "Initialized CouchbaseVectorStore with collection: %s, bucket: %s, scope: %s, index: %s", - collection_name, bucket_name, scope_name, index_name + collection_name, + bucket_name, + scope_name, + index_name, ) def connect(self, **kwargs: Any) -> None: """Connect to the Couchbase vector store.""" connection_string = kwargs.get("connection_string") - username = kwargs.get("username") - password = kwargs.get("password") - cluster_options = kwargs.get("cluster_options", {}) + cluster_options = kwargs.get("cluster_options") - if not isinstance(username, str) or not isinstance(password, str): - error_msg = "Username and password must be strings" - logger.error(error_msg) - raise TypeError(error_msg) if not isinstance(connection_string, str): error_msg = "Connection string must be a string" logger.error(error_msg) raise TypeError(error_msg) - logger.info("Connecting to Couchbase at %s", connection_string) - auth = PasswordAuthenticator(username, password) - options = ClusterOptions(auth, **cluster_options) - cluster = Cluster(connection_string, options) - self.db_connection = cluster - self.bucket = cluster.bucket(self.bucket_name) - self.scope = self.bucket.scope(self.scope_name) - self.document_collection = self.scope.collection(self.collection_name) - logger.info("Successfully connected to Couchbase") + try: + logger.info("Connecting to Couchbase at %s", connection_string) + self._cluster = Cluster(connection_string, cluster_options) + self.db_connection = self._cluster + self.bucket = self._cluster.bucket(self.bucket_name) + self.scope = self.bucket.scope(self.scope_name) + self.document_collection = self.scope.collection(self.collection_name) + logger.info("Successfully connected to Couchbase") + except Exception as e: + error_msg = f"Failed to connect to Couchbase: {e}" + logger.exception(error_msg) + raise ConnectionError(error_msg) from e def load_documents(self, documents: list[VectorStoreDocument]) -> None: """Load documents into vector storage.""" @@ -91,7 +91,7 @@ def load_documents(self, documents: list[VectorStoreDocument]) -> None: if batch: try: result = self.document_collection.upsert_multi(batch) - + # Assuming the result has an 'all_ok' attribute if hasattr(result, "all_ok"): if result.all_ok: @@ -99,15 +99,20 @@ def load_documents(self, documents: list[VectorStoreDocument]) -> None: else: logger.warning("Some documents failed to load") else: - logger.info("Unable to determine success status of document loading") - + logger.info( + "Unable to determine success status of document loading" + ) + # If there's a way to access individual results, log them if hasattr(result, "__iter__"): for key, value in result: - logger.info("Document %s: %s", key, "Success" if value.success else "Failed") - - except Exception as e: - logger.exception("Error occurred while loading documents: %s", str(e)) + logger.info( + "Document %s: %s", + key, + "Success" if value.success else "Failed", + ) + except Exception: + logger.exception("Error occurred while loading documents") else: logger.warning("No valid documents to load") @@ -139,7 +144,7 @@ def similarity_search_by_vector( ) fields = kwargs.get("fields", ["*"]) - + if self.scoped_index: search_iter = self.scope.search( self.index_name, From 8cf8fede1db35129199cefca1847b473b5d3cb8c Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Thu, 19 Sep 2024 12:28:27 +0530 Subject: [PATCH 09/25] feat: Update GraphRAG notebook with Couchbase setup instructions --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index bf80577c32..e521b6ebe3 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -7,7 +7,21 @@ }, "source": [ "# Tutorial on GraphRAG Local Search with Couchbase Vector Store\n", - "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying structured data. This is useful when you need to search through structured data using natural language queries, leveraging both machine learning and a database." + "\n", + "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying structured data. \n", + "This is useful when you need to search through structured data using natural language queries, leveraging both machine learning and a database.This approach is useful for searching structured data using natural language queries, leveraging both machine learning and a database.\n", + "\n", + "## Setting up Couchbase\n", + "\n", + "Before running this notebook, set up the following in Couchbase:\n", + "\n", + "1. Create a bucket named \"graphrag-demo\" (or as specified in COUCHBASE_BUCKET_NAME)\n", + "2. Within the bucket, create a scope named \"shared\" (or as specified in COUCHBASE_SCOPE_NAME)\n", + "3. Within the scope, create a collection named \"entity_description_embeddings\" (or as specified in COUCHBASE_COLLECTION_NAME)\n", + "\n", + "These settings should match the environment variables defined in your .env file or the default values in the code.\n", + "\n", + "4. In the Couchbase Full Text Search (FTS) index section, create a new index by importing the `graphrag_demo_index.json` file. This file contains the necessary configuration for the vector search index.\n" ] }, { From 30bbab9575560a79106f0178b6ba34a5d2d333b9 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Thu, 19 Sep 2024 12:44:18 +0530 Subject: [PATCH 10/25] feat: Update Couchbase connection options in test_couchbasedb.py --- tests/unit/vector_stores/test_couchbasedb.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/unit/vector_stores/test_couchbasedb.py b/tests/unit/vector_stores/test_couchbasedb.py index d17a703432..db22be4ccd 100644 --- a/tests/unit/vector_stores/test_couchbasedb.py +++ b/tests/unit/vector_stores/test_couchbasedb.py @@ -3,6 +3,8 @@ import time import unittest +from couchbase.auth import PasswordAuthenticator +from couchbase.options import ClusterOptions from dotenv import load_dotenv from graphrag.vector_stores.base import VectorStoreDocument, VectorStoreSearchResult @@ -29,10 +31,12 @@ def setUpClass(cls): index_name=INDEX_NAME, vector_size=VECTOR_SIZE ) + auth = PasswordAuthenticator(COUCHBASE_USERNAME, COUCHBASE_PASSWORD) + cluster_options = ClusterOptions(auth) + cls.vector_store.connect( connection_string=COUCHBASE_CONNECTION_STRING, - username=COUCHBASE_USERNAME, - password=COUCHBASE_PASSWORD + cluster_options=cluster_options ) @classmethod From 1ae19f67e0373cf591b219640b23397107f9489f Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Thu, 19 Sep 2024 12:44:50 +0530 Subject: [PATCH 11/25] feat: Update default Couchbase credentials in test_couchbasedb.py --- tests/unit/vector_stores/test_couchbasedb.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/vector_stores/test_couchbasedb.py b/tests/unit/vector_stores/test_couchbasedb.py index db22be4ccd..6e4543fa41 100644 --- a/tests/unit/vector_stores/test_couchbasedb.py +++ b/tests/unit/vector_stores/test_couchbasedb.py @@ -13,8 +13,8 @@ load_dotenv() COUCHBASE_CONNECTION_STRING = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") -COUCHBASE_USERNAME = os.getenv("COUCHBASE_USERNAME", "") -COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "") +COUCHBASE_USERNAME = os.getenv("COUCHBASE_USERNAME", "Administrator") +COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "password") BUCKET_NAME = os.getenv("COUCHBASE_BUCKET_NAME", "graphrag-demo") SCOPE_NAME = os.getenv("COUCHBASE_SCOPE_NAME", "shared") COLLECTION_NAME = os.getenv("COUCHBASE_COLLECTION_NAME", "entity_description_embeddings") From a1d216aaa31846148d14295b61c461b7d2b0f49c Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Thu, 19 Sep 2024 14:31:07 +0530 Subject: [PATCH 12/25] edited documentation and removed filter by id and corresponding tests --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 148 ++++++++++-------- .../community_contrib/couchbase/__init__.py | 10 -- graphrag/vector_stores/couchbasedb.py | 10 +- tests/unit/vector_stores/test_couchbasedb.py | 44 ++++-- 4 files changed, 119 insertions(+), 93 deletions(-) delete mode 100644 examples_notebooks/community_contrib/couchbase/__init__.py diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index e521b6ebe3..24b4c679f7 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -24,6 +24,32 @@ "4. In the Couchbase Full Text Search (FTS) index section, create a new index by importing the `graphrag_demo_index.json` file. This file contains the necessary configuration for the vector search index.\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Local and Global Search in Graph RAG Systems\n", + "\n", + "Local and global search are two approaches used in Graph RAG (Retrieval-Augmented Generation) systems:\n", + "\n", + "### Local Search\n", + "This method retrieves information from a subset of the graph that is closely connected to the current context or query. It focuses on exploring the immediate neighborhood of relevant nodes.\n", + "\n", + "### Global Search\n", + "This approach searches the entire graph or a large portion of it to find relevant information, regardless of how directly connected it is to the current context.\n", + "\n", + "## Couchbase as a Vector Store for Local Search\n", + "\n", + "Couchbase can be used as a vector store to support local search in Graph RAG systems. Its capabilities include:\n", + "\n", + "- **Vector Storage**: Couchbase can store vector embeddings alongside document data.\n", + "- **Vector Search**: It supports similarity search on vector fields using algorithms like cosine similarity.\n", + "- **Indexing**: Couchbase offers indexing options to optimize vector searches.\n", + "- **Scalability**: As a distributed database, it can handle large amounts of vector data.\n", + "\n", + "To implement local search, you would store node embeddings in Couchbase and use its vector search capabilities to find similar nodes efficiently within a local context.\n" + ] + }, { "cell_type": "markdown", "metadata": { @@ -31,15 +57,9 @@ }, "source": [ "# Importing Necessary Libraries\n", - "In this section, we import all the essential Python libraries required to perform various tasks, such as loading data, interacting with Couchbase, and using OpenAI models for generating text and embeddings.\n", - "\n", - "The libraries used include:\n", "\n", - "asyncio: For running asynchronous tasks.\n", - "logging: For managing logs that help in debugging and monitoring the workflow.\n", - "pandas: For data manipulation and reading from data files.\n", - "tiktoken: For tokenizing text, which is essential for preparing text before passing it to a language model.\n", - "graphrag.query and vector_stores: These are custom libraries that handle entity extraction, searching, and vector storage." + "In this section, we import all the essential Python libraries required to perform various tasks, \n", + "such as loading data, interacting with Couchbase, and using OpenAI models for generating text and embeddings.\n" ] }, { @@ -55,10 +75,10 @@ "\n", "import pandas as pd\n", "import tiktoken\n", - "from dotenv import load_dotenv\n", - "\n", "from couchbase.auth import PasswordAuthenticator\n", "from couchbase.options import ClusterOptions\n", + "from dotenv import load_dotenv\n", + "\n", "from graphrag.query.context_builder.entity_extraction import EntityVectorStoreKey\n", "from graphrag.query.indexer_adapters import (\n", " read_indexer_covariates,\n", @@ -130,7 +150,7 @@ }, "source": [ "# Loading Data from Parquet Files\n", - "In this part, we load data from Parquet files into a dictionary. Each file corresponds to a particular table in the dataset, and we define functions that will handle the loading and processing of each table.\n", + "In this part, we load data from Parquet files into a dictionary.We define functions that will handle the loading and processing of each paraquet.\n", "\n", "read_indexer_entities, read_indexer_relationships, etc., are custom functions responsible for reading specific parts of the data, such as entities and relationships.\n", "\n", @@ -146,7 +166,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:20,405 - __main__ - INFO - Loading data from parquet files\n" + "2024-09-19 14:29:47,847 - __main__ - INFO - Loading data from parquet files\n" ] } ], @@ -177,8 +197,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Entities table:\n", - "This table stores information about various entities in the system. Each entity has a unique ID, a short ID, a title, a type (e.g., PERSON), a description, and embeddings of the description. It may also include name embeddings, graph embeddings, community IDs, text unit IDs, document IDs, a rank, and additional attributes." + "## Read Entities:" ] }, { @@ -187,11 +206,10 @@ "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "Entities table sample:\n", - "Entity(id='bc0e3f075a4c4ebbb7c7b152b65a5625', short_id='16', title='AGENTS', type='PERSON', description='Agents Alex Mercer, Jordan Hayes, Taylor Cruz, and Sam Rivera are the team members proceeding into Dulce base', description_embedding=[0.0020066287834197283, -0.026493584737181664, -0.01942051388323307, -0.03475676849484444, -0.02514118142426014, 0.05112085118889809, -0.0065084416419267654, -0.006623396184295416, 0.004919367842376232, -0.03559526056051254, 0.022395802661776543, 0.037596818059682846, -0.01751362532377243, -0.0053048026748001575, 0.01192143652588129, -0.012746402993798256, 0.0003514135896693915, -0.03619031608104706, -0.0123880160972476, -0.01390270795673132, 0.0030564318876713514, -0.013429366983473301, 0.01271259319037199, -0.023585917428135872, -0.00046700183884240687, -0.021949509158730507, 0.012502970173954964, -0.024356786161661148, 0.02913077175617218, 0.0017665770137682557, 0.00477398419752717, 0.0003277465293649584, -0.0033877708483487368, -0.009257202036678791, -0.00796565692871809, -0.007255644537508488, -0.014917010441422462, -0.01766238920390606, 0.0009728852892294526, -0.010846275836229324, 0.029157819226384163, -0.006177103146910667, -0.00038797076558694243, -0.040004096925258636, -0.022274086251854897, 0.002971906680613756, -0.02093520574271679, 0.00554823549464345, -0.02999630942940712, 0.013158885762095451, 0.020881110802292824, 0.019231177866458893, -0.00968997087329626, -0.02783246338367462, 0.010061881504952908, -0.013557844795286655, -0.007918322458863258, 0.0019440799951553345, -0.002713259542360902, -0.03099708817899227, -0.010136264376342297, -0.013463176786899567, -0.015295683406293392, 0.020529484376311302, -0.005876193288713694, 0.012881643138825893, -0.00695135397836566, 0.00877709873020649, 0.0005299731274135411, 0.0025695667136460543, -0.00561923673376441, 0.003472296055406332, 0.019690994173288345, -0.030672511085867882, 0.03032088652253151, -0.019014792516827583, -0.019298797473311424, -0.014687102288007736, 0.005595569498836994, 0.021624932065606117, 0.01855497620999813, 0.0013946661492809653, -0.03032088652253151, 0.027169786393642426, 0.02618253231048584, 0.002812999300658703, 0.00616696011275053, 0.007559935562312603, -0.03097004070878029, -0.0113466652110219, 0.011082946322858334, 0.021422071382403374, 0.02538461424410343, 0.029509443789720535, -0.04197860509157181, -0.0003313388442620635, -0.01629646122455597, 0.041194211691617966, -0.01658046618103981, -0.02672349289059639, -0.00033556512789800763, -0.003428342752158642, -0.020664725452661514, -0.009189581498503685, -0.007776319980621338, -0.006592967081815004, -0.016066553071141243, 0.0007040950586088002, 0.020624153316020966, -0.0014783460646867752, -0.02804884873330593, 0.006991926115006208, 0.006383344531059265, -0.04273594915866852, -0.013442890718579292, -0.015728453174233437, 0.0036920616403222084, -0.00333536509424448, -0.0021824410650879145, -0.02791360765695572, 0.013794515281915665, 0.03291749954223633, 0.013564607128500938, -0.002077629789710045, 0.021232735365629196, -0.011806482449173927, 0.02999630942940712, -0.01740543358027935, 0.006538870744407177, -0.0020911539904773235, 0.017324289306998253, 0.0009661232470534742, 0.011448095552623272, 0.008783861063420773, 0.007181262597441673, 0.009798163548111916, -0.010724559426307678, 0.030266789719462395, 0.002909358125180006, 0.01271259319037199, 0.016093602403998375, 0.012861357070505619, -0.011874102987349033, -0.002775808097794652, 0.010602843016386032, 0.00954796839505434, 0.013070980086922646, -0.021516740322113037, 0.006234580185264349, 0.019907379522919655, 0.020597105845808983, -0.02923896349966526, 0.012360967695713043, -0.009189581498503685, 0.01305745542049408, 0.004824699368327856, -0.01039322093129158, 0.006478012539446354, -0.007837178185582161, -0.004273594822734594, 0.007864226587116718, -0.008756812661886215, 0.014822342433035374, -0.02180074341595173, 0.021056922152638435, 0.027088642120361328, 0.007397647015750408, -0.023829350247979164, -0.021530263125896454, -0.004449407570064068, 0.006738350261002779, 0.014497765339910984, -0.014105568639934063, 0.002736926544457674, -0.0189877450466156, 0.0017429100116714835, 0.0012526637874543667, -0.018676692619919777, -0.009534444659948349, -0.006900638807564974, 0.017351336777210236, -0.005183086264878511, -0.0005046155420131981, 0.0052168965339660645, -0.004608314950019121, -0.0016921948408707976, -0.001999866683036089, -0.013354984112083912, -0.008168516680598259, 0.0009306226274929941, 0.009879307821393013, 0.009196343831717968, 0.026344820857048035, -0.0077289859764277935, -0.6417965888977051, -0.04725297912955284, 0.009378918446600437, -0.0030665749218314886, 0.009345107711851597, 0.02538461424410343, 0.011887626722455025, -0.010609605349600315, -0.00872300285845995, 0.002826523268595338, -0.01161714643239975, 0.025262897834181786, -0.011143804527819157, -0.01287488080561161, 0.003965923096984625, -0.016850948333740234, 0.0016905043739825487, -0.0077289859764277935, 0.012841071002185345, 0.0056158555671572685, -0.029806973412632942, 0.007140690460801125, 0.014470716938376427, -0.012110773473978043, 0.03443219140172005, -0.0017412195447832346, 0.023396579548716545, -5.805826003779657e-05, -0.013118313625454903, -0.006917543709278107, -0.01712142862379551, 0.024180974811315536, -0.0022449898533523083, -0.022328181192278862, 0.04241137206554413, -0.0010109215509146452, -0.012807261198759079, 0.017527149990200996, -0.019474610686302185, 0.03608212620019913, -0.0009399204282090068, 0.009013769216835499, 0.018798409029841423, -0.01102208811789751, 0.007884512655436993, 0.02377525344491005, 0.0016296461690217257, 0.004993749782443047, -0.012144583277404308, 0.008966434746980667, 0.0005642058094963431, -0.02700749784708023, -0.03456743434071541, -0.0011622217716649175, 0.019055364653468132, 0.0036785374395549297, 0.018460307270288467, 0.006275152321904898, -0.006809351500123739, 0.0020455103367567062, -0.0019322464941069484, 0.010839514434337616, -0.04917339235544205, 0.0003765598521567881, -0.021422071382403374, 0.014119092375040054, -0.01653989404439926, 0.025614522397518158, 0.0023650156799703836, -0.006937829777598381, 0.0013304268941283226, 0.0038813981227576733, -0.008851480670273304, 0.008486331440508366, 0.013206220231950283, 0.012922215275466442, 0.020204907283186913, -0.003389461198821664, 0.008405188098549843, 0.03535182774066925, -0.0030090976506471634, -0.01158333569765091, -0.011421047151088715, -0.021056922152638435, 0.017892297357320786, 0.0009534444543533027, -0.022287609055638313, -0.012415064498782158, 0.009446538053452969, -0.04257366061210632, 0.022531041875481606, 0.030050406232476234, 0.0032288632355630398, 0.006379963364452124, 0.015593212097883224, -0.017148476094007492, -0.0030057167168706656, -0.001151233445852995, 0.03326912596821785, -0.04049095883965492, 0.01058931928128004, 0.0050275600515306, 0.01012273970991373, -0.030483175069093704, 0.04027457535266876, 0.004953177645802498, -0.020421292632818222, -0.0019018173916265368, 0.049254536628723145, -0.026980450376868248, -0.011610384099185467, 0.015917789191007614, -0.023437151685357094, 0.00175136246252805, -0.0033438175451010466, -0.029725829139351845, 0.0034080566838383675, -0.02032662369310856, 0.007160976529121399, -0.05385270714759827, -0.001518918201327324, 0.009906355291604996, 0.013496986590325832, -0.009919879958033562, 0.014132616110146046, 0.010467602871358395, 0.001006695325486362, -0.02956354059278965, -0.003648108337074518, 0.001431011944077909, 0.011759147979319096, 0.0022331562358886003, 0.0013278911355882883, -0.019447561353445053, 0.02161140739917755, 0.000552372308447957, 0.025709189474582672, -0.0033421271946281195, 0.022247036918997765, -0.02349124848842621, -0.04487274959683418, -0.019434038549661636, 0.0048280805349349976, 0.0007066308171488345, 0.020299576222896576, -0.033431414514780045, -0.027386169880628586, -0.0003452855162322521, -0.028211137279868126, -0.028319329023361206, 0.015349779278039932, 8.785339741734788e-05, -0.0092436783015728, 0.015877217054367065, 0.0065084416419267654, -0.006170340813696384, 0.0018189826514571905, -0.017256667837500572, -0.010954468511044979, -0.02823818475008011, -0.01309126615524292, 0.01494405884295702, -0.008026515133678913, -0.0121581070125103, -0.004919367842376232, -0.009717019274830818, 0.019609849900007248, 4.305503171053715e-05, 0.002951620612293482, -0.026601776480674744, 0.02546575851738453, -0.004432502668350935, -0.00429726205766201, 0.009642637334764004, -0.01253677997738123, 0.011934961192309856, -0.02039424516260624, 0.023396579548716545, 0.0005882955156266689, -0.008729764260351658, -0.020272528752684593, 0.025763286277651787, -0.01740543358027935, -0.002263585338369012, 0.009831973351538181, 0.010636653751134872, 0.009764352813363075, 0.04354739189147949, -0.022666282951831818, 0.014971106313169003, -0.015904264524579048, 0.004026781301945448, -0.0012450565118342638, 0.004202594049274921, -0.0014597504632547498, -0.006038481369614601, -0.004936272744089365, 0.00883119460195303, -0.020421292632818222, 0.02258513867855072, 0.020042620599269867, 0.009568254463374615, 0.030942991375923157, -0.021895412355661392, -0.0010295171523466706, -0.02679111249744892, 0.006944592110812664, -0.02319372072815895, 0.028535714372992516, -0.014862914569675922, 0.027413219213485718, -0.03959837555885315, -0.013801277615129948, 0.0076681277714669704, -0.0005519496626220644, 0.0274402666836977, 0.0012154725845903158, 0.014308429323136806, -0.03521658852696419, -0.010224170051515102, -0.004432502668350935, -0.0023295150604099035, 0.03694766387343407, -0.010278266854584217, -0.029644684866070747, -0.01787877455353737, 0.022098273038864136, 0.0021570834796875715, 0.007904798723757267, -0.03140280768275261, 0.018825456500053406, -0.0034198903013020754, -0.0015628712717443705, 0.006582824047654867, 0.00013788176875095814, -0.01346993912011385, -0.01058931928128004, -0.007478791289031506, 0.01658046618103981, -0.022314658388495445, 0.005923527292907238, 0.021597884595394135, 0.02481660433113575, -0.010494651272892952, 0.03229539468884468, 0.009534444659948349, 0.02312609925866127, -0.0013811420649290085, -0.033972375094890594, 0.0070054498501122, -0.025655094534158707, 0.011218187399208546, -0.013814801350235939, -0.0032812689896672964, -0.017148476094007492, -0.031565096229314804, 0.014889962039887905, 0.022247036918997765, 0.0009703495306894183, 0.026845209300518036, 0.012928977608680725, 0.00888529047369957, 0.01651284657418728, -0.008472807705402374, 0.02050243690609932, 0.01068398728966713, -0.0113466652110219, 0.0005654736887663603, -0.02758903056383133, -0.02867095358669758, 0.008844719268381596, 0.0020590343046933413, 0.01237449236214161, 0.015796072781085968, 0.017716486006975174, 0.011441333219408989, -0.008378139697015285, -0.011874102987349033, -0.004638744052499533, -0.00032605603337287903, 6.66164341964759e-05, -0.032024916261434555, 0.015403876081109047, 0.0401393361389637, -0.0020810109563171864, 0.00043741799890995026, 0.005101941991597414, 0.011603621765971184, -0.02312609925866127, 0.01701323501765728, 0.0103053143247962, 0.01334146037697792, 0.0044020735658705235, 0.00973054300993681, -0.0052709924057126045, 0.014551861211657524, 0.022896191105246544, -0.015268635004758835, 0.0035669642966240644, -0.0011453167535364628, 0.005260849371552467, -0.011272283270955086, 0.015133394859731197, -0.02503298781812191, 0.02542518638074398, 0.011279044672846794, -0.015660831704735756, -0.009365393780171871, 0.009142247959971428, -0.022003604099154472, 0.008418711833655834, 0.00821585115045309, -0.02006966806948185, 0.007634317502379417, 0.008601286448538303, -0.001999866683036089, -0.03253882750868797, -0.00240896875038743, 0.021908937022089958, -0.018798409029841423, 0.009852259419858456, -0.02395106665790081, -0.017608294263482094, -0.015525592491030693, 0.12420473992824554, 0.038245972245931625, -0.004834842402487993, 0.0020184621680527925, 0.014254332520067692, 0.015809597447514534, -0.0010667082387953997, -0.0036176792345941067, 0.0017598150297999382, -0.028941433876752853, -0.0014555242378264666, 0.02139502391219139, -0.015633784234523773, -0.006893876940011978, 0.018243923783302307, 0.02286914363503456, -0.01755419746041298, -0.023356007412075996, -0.014578909613192081, -0.0007818582816980779, -0.021205686032772064, 0.005301421508193016, 0.004473074339330196, 0.008655382320284843, -0.0051323710940778255, -0.009940166026353836, 0.014741198159754276, 0.0019559136126190424, 0.005680094473063946, 0.0024698269553482533, 0.02923896349966526, 0.00217060768045485, -0.0026676158886402845, 0.010176836512982845, -0.013584893196821213, 0.00019810597586911172, 0.008087372407317162, 0.007546411361545324, 0.02208474837243557, 0.00016905044321902096, 0.002599995816126466, 0.006001290399581194, -0.0034655339550226927, -0.03654194250702858, 0.013517272658646107, -0.014349001459777355, -0.007553173694759607, 0.024221546947956085, 0.029861068353056908, -0.02254456654191017, 0.03107823245227337, -0.02067825011909008, -0.021422071382403374, -0.008743288926780224, 0.016120649874210358, 0.019150033593177795, 0.027507886290550232, 0.0016076696338132024, -0.02384287305176258, -0.010257980786263943, -0.022287609055638313, -0.01887955330312252, 0.013219743967056274, -0.023180196061730385, -0.0016355629777535796, -0.02977992407977581, -0.004134973511099815, 0.00032246371847577393, -0.007864226587116718, -0.03608212620019913, -0.016337033361196518, -0.010136264376342297, 0.000955980212893337, 0.019325846806168556, 0.027629602700471878, 0.007634317502379417, 0.00479088956490159, -0.01152923982590437, 0.02405925840139389, 0.005030940752476454, -0.009771115146577358, -0.004686078056693077, 0.019393466413021088, -0.000805525342002511, 0.00019884557696059346, 0.004205974750220776, 0.009845497086644173, -0.002836666302755475, 1.4091938282945193e-05, 0.013753943145275116, -0.021895412355661392, -0.008154992945492268, 0.02035367302596569, -0.014687102288007736, 0.01237449236214161, 0.02427564188838005, 0.018149254843592644, 0.010149788111448288, -0.006379963364452124, 0.020313100889325142, 0.002173988614231348, -0.06150731071829796, 0.0008439843077212572, 0.0008575083338655531, 0.016918567940592766, -0.0029820497147738934, -0.01664808765053749, 0.017432481050491333, -0.024681363254785538, -0.005419757217168808, -0.004047067370265722, -0.007952132262289524, -0.014538337476551533, -0.01543092355132103, 0.011792958714067936, 0.0013194386847317219, -0.010765131562948227, 0.02297733537852764, -0.028860289603471756, 0.006805970333516598, 0.03362075239419937, -0.015336255542933941, 0.02171959914267063, 0.02254456654191017, -0.022639233618974686, 0.02182779274880886, 0.0066301580518484116, -0.046198103576898575, 0.012989835813641548, -0.005768001079559326, -0.023315435275435448, 0.026047291234135628, -0.011157329194247723, -0.013023645617067814, -0.02035367302596569, -0.014267857186496258, -0.02665587328374386, 0.025546902790665627, -0.02399163879454136, -0.021963031962513924, -0.004493360407650471, 0.02815704047679901, 0.01332793664187193, -0.001442845445126295, -0.01262468658387661, -0.022787999361753464, 0.015403876081109047, 0.007810130249708891, -0.005254087503999472, 0.009906355291604996, -0.009108437225222588, 0.0045339325442910194, -0.006383344531059265, -0.008770336396992207, -0.014105568639934063, -0.026534156873822212, -0.041735172271728516, -0.005325088743120432, 0.027102166786789894, 0.02557395026087761, 0.015079298987984657, -0.0016744445310905576, 0.004855128470808268, -0.0038306829519569874, 0.01837916299700737, 0.0284816175699234, 0.006789065431803465, 0.011650956235826015, -0.0206106286495924, 0.013713371008634567, 0.01733781211078167, 0.01823039911687374, 0.012800498865544796, -0.016999712213873863, 0.01773001067340374, 0.033323220908641815, 0.0017767200479283929, -0.0058660502545535564, 0.0036176792345941067, -0.017459528520703316, -0.00883119460195303, -0.017959918826818466, 0.0014242499601095915, -0.014308429323136806, -0.02579033374786377, -0.020867586135864258, 0.02772427164018154, -0.0152821596711874, -0.009054341353476048, -0.028454570099711418, 0.02715626172721386, -0.022314658388495445, 0.014213760383427143, 0.010041596367955208, -0.002884000539779663, -0.012252775952219963, -0.0031409570947289467, -0.00812794454395771, 0.007553173694759607, 0.006944592110812664, -0.0009957071160897613, 0.01610712520778179, 0.012949263677001, 0.004347977228462696, 0.0027318550273776054, 0.04803737252950668, 0.009946927428245544, -0.018974220380187035, -0.008195565082132816, -0.01820335164666176, -0.022639233618974686, -0.002463064854964614, -0.01833859086036682, -0.02668292075395584, 0.010569033212959766, -0.020515961572527885, -0.003360722679644823, 0.010143025778234005, -0.032890453934669495, -0.01855497620999813, 0.006498298607766628, 0.010900371707975864, 0.05423137918114662, 0.028941433876752853, 0.014254332520067692, 0.04297938197851181, 0.01686447113752365, -0.003827301785349846, 0.0358927883207798, 0.006018195301294327, 0.02891438640654087, 0.03097004070878029, 0.02251751720905304, -0.030266789719462395, 0.00940596591681242, -0.017391908913850784, 0.019393466413021088, -0.010372934862971306, -0.021733123809099197, 0.03283635526895523, -0.011657717637717724, 0.03205196186900139, -0.0038949220906943083, -0.010048357769846916, -0.009047579020261765, -0.002809618366882205, -0.011563049629330635, -0.004959939979016781, 0.002660853788256645, -0.02614196017384529, -0.02136797457933426, 0.02729150280356407, -0.008493093773722649, 0.01798696629703045, 0.007411171216517687, 0.008763574995100498, 0.014051471836864948, -0.007100118324160576, -0.00616696011275053, -0.0121581070125103, -0.02032662369310856, 0.03270111605525017, -0.008378139697015285, 0.02592557482421398, -0.008533665910363197, 0.019231177866458893, 0.00695135397836566, 0.014984630979597569, 0.013645751401782036, 0.025898527354002, -0.02024547941982746, 0.02186836488544941, 0.01276668906211853, -0.012022866867482662, 0.032024916261434555, -0.00607905350625515, 0.008229374885559082, -0.027494363486766815, -0.0006280223606154323, -0.022422850131988525, 0.005737571977078915, 0.007539649493992329, -0.024911271408200264, 0.0035534400958567858, -0.002288942923769355, -0.03494610637426376, -0.0070189740508794785, 0.0034046757500618696, 0.0018916743574663997, -0.010616367682814598, -0.01647227443754673, -0.010711035691201687, -0.0221929419785738, 0.01981271058320999, -0.006359677296131849, -0.007424694951623678, -0.0094938725233078, 0.002160464646294713, -0.038786932826042175, 0.019690994173288345, -0.041167162358760834, 0.00016049225814640522, -0.02804884873330593, 0.007810130249708891, -0.019041841849684715, -0.015741975978016853, 0.02633129619061947, -2.324443448742386e-05, -0.014416621066629887, 0.00749907735735178, -0.009507396258413792, -0.01140076108276844, -0.01812220737338066, 0.016093602403998375, 0.011035612784326077, -0.008553951978683472, 0.015092822723090649, 0.006991926115006208, -0.016823899000883102, 0.020989302545785904, -0.018392687663435936, 5.5311189498752356e-05, 0.00807384867221117, -0.019285274669528008, 0.005511044058948755, 0.014984630979597569, 0.021706076338887215, 0.027575507760047913, -0.015457971952855587, -6.122795457486063e-05, 0.006596348248422146, 0.027237406000494957, -0.007918322458863258, -0.023896969854831696, -0.011880864389240742, -0.014024424366652966, -0.015579688362777233, -0.005122228059917688, 0.002177369548007846, -0.03248473256826401, -0.010454079136252403, 0.01582312025129795, 0.0020015572663396597, -0.016877995803952217, -0.014416621066629887, -0.008770336396992207, -0.0040842583402991295, -0.00477398419752717, -0.027670174837112427, -0.020015571266412735, -0.015660831704735756, 0.02834637649357319, -0.0031561716459691525, -0.04046391323208809, -0.0221117977052927, -0.01777058094739914, -0.012705830857157707, 0.012286585755646229, -0.017040284350514412, 0.022071225568652153, 0.027994751930236816, 0.01768943853676319, 0.012759926728904247, 0.020488912239670753, 0.020624153316020966, -0.0048280805349349976, -0.0013177481014281511, -0.009345107711851597, 0.013131838291883469, -0.025763286277651787, 0.03205196186900139, 0.01147514395415783, -0.002199346199631691, 0.0002856952487491071, 0.01148866768926382, -0.002625353168696165, -0.006420535501092672, 0.02104339748620987, 0.003955780062824488, -0.015633784234523773, -0.010244456119835377, -0.0007235358934849501, -0.011245234869420528, -0.005862669087946415, 0.024951843544840813, -0.015701403841376305, -0.02399163879454136, 0.008783861063420773, -0.01429490465670824, -0.0052777547389268875, 0.005974242463707924, 0.021083969622850418, -0.00654563307762146, 0.02132740244269371, -0.008141469210386276, 0.0015349779278039932, 0.00278764171525836, -0.024789556860923767, 0.022855618968605995, 0.010602843016386032, -0.01282078493386507, 0.020340148359537125, 0.02988811768591404, 0.012022866867482662, -0.0003740240936167538, 0.015525592491030693, -0.012732879258692265, 0.0021672265138477087, 0.008249660953879356, -0.004500122740864754, 0.005801810882985592, -0.0274402666836977, 0.007627555634826422, -0.02783246338367462, 0.015579688362777233, -0.012983073480427265, -0.00030872836941853166, -0.004946415778249502, 0.019934426993131638, 0.0024174212012439966, -0.04649563133716583, 0.009933403693139553, -0.005612474400550127, 0.010602843016386032, 0.01823039911687374, -0.006711302325129509, 0.011468381620943546, -0.0009897903073579073, -0.013943280093371868, -0.006200769916176796, -0.01010921597480774, -0.008411949500441551, -0.009534444659948349, 0.018081635236740112, 0.001204484375193715, 0.011326379142701626, 0.21400432288646698, -0.0004568588046822697, 0.0008892053156159818, 0.02902257815003395, -0.0032406968530267477, 0.014078520238399506, 0.03629850968718529, 0.02132740244269371, 0.009534444659948349, -0.012212203815579414, 0.015295683406293392, 0.02251751720905304, -0.011847054585814476, 0.0003860689466819167, -0.0041451165452599525, -0.02542518638074398, -0.02977992407977581, -0.03216015547513962, 0.011272283270955086, 0.004304023925215006, -0.0015670974971726537, 0.013598416931927204, 0.004686078056693077, -0.025898527354002, 0.014876438304781914, -0.01874431222677231, -0.012563828378915787, 0.0057815248146653175, 0.007039260119199753, 0.022179417312145233, -0.013943280093371868, -0.02528994530439377, 0.017851725220680237, 0.006099339574575424, -0.00016260538541246206, -0.0110964709892869, -0.0038408259861171246, -0.0043175481259822845, -0.006278533022850752, 0.009088151156902313, 0.005937051493674517, 0.013679561205208302, -0.03118642419576645, -0.00285864295437932, 0.0007201548432931304, 0.008466046303510666, -0.004821318667382002, -0.019298797473311424, -0.008817670866847038, 0.03099708817899227, -0.032024916261434555, -0.011522477492690086, -0.00692430604249239, 0.02769722416996956, 0.010372934862971306, 0.019731566309928894, 0.01629646122455597, -0.004371644463390112, -0.019623374566435814, -0.011860578320920467, -0.01887955330312252, 0.011901150457561016, -0.017608294263482094, 0.027778368443250656, -0.0003600774216465652, 0.0034435573033988476, -0.0216519795358181, 0.035162489861249924, 0.014200236648321152, 0.0018257447518408298, 0.00793184619396925, -0.02625015191733837, 0.0030344552360475063, 0.02074586972594261, -0.03470267355442047, -0.03151100128889084, 0.022098273038864136, 0.00897319708019495, 0.030807752162218094, 0.002909358125180006, -0.0035331540275365114, 0.005984385497868061, 0.013598416931927204, 0.008188802748918533, 0.008709478192031384, -0.0184873566031456, 0.03186262771487236, 0.0018595547880977392, -0.009520920924842358, 0.003827301785349846, -0.0037191095761954784, -0.026101388037204742, 0.0001235124800587073, 0.0025289945770055056, -0.005639522336423397, 0.017324289306998253, 0.020867586135864258, 0.027142738923430443, 0.008094134740531445, 0.0032406968530267477, -0.02507355995476246, 0.02171959914267063, 0.014254332520067692, 0.023748205974698067, -0.027250930666923523, 0.00940596591681242, 0.025587474927306175, 0.010907134041190147, 0.007972418330609798, 0.0036920616403222084, -0.00973054300993681, -0.025181753560900688, 0.0021317258942872286, -0.00464888708665967, -0.011610384099185467, 0.008675668388605118, 0.011806482449173927, -0.014862914569675922, 0.0029059769585728645, -0.02180074341595173, 0.022165892645716667, -0.023356007412075996, -0.012448874302208424, -0.010961229912936687, 0.008121183142066002, -0.00916929543018341, 0.0073570748791098595, -0.008533665910363197, 0.024329738691449165, -0.02388344518840313, -0.0009145628428086638, -0.011874102987349033, 0.044358834624290466, -0.028968483209609985, 0.005507663358002901, 0.005676713772118092, 0.017134951427578926, -0.0025205418933182955, -0.028211137279868126, 0.012895166873931885, 0.003823920851573348, -0.010454079136252403, 0.03294454887509346, -0.006315724458545446, 0.004692839924246073, -0.019690994173288345, 0.015336255542933941, 0.004970083013176918, -0.031916722655296326, -0.011806482449173927, -0.00967644713819027, -0.009365393780171871, 0.015092822723090649, -0.01332793664187193, 0.03383713588118553, -0.024938320741057396, -0.01887955330312252, -0.013354984112083912, 0.008100897073745728, 0.030347933992743492, -0.021638456732034683, 0.021205686032772064, -0.003746157744899392, -0.03686651960015297, -0.02902257815003395, 0.009541206993162632, -0.17408137023448944, 0.021624932065606117, 0.015268635004758835, 0.0029685257468372583, 0.014416621066629887, -0.0005557533004321158, 0.03426990285515785, 0.001698956941254437, -0.02395106665790081, 0.02063767798244953, 0.015593212097883224, -2.648016561579425e-05, -0.009263964369893074, -0.0025712570641189814, 0.006136531010270119, 0.029942212626338005, -0.018176302313804626, 0.019447561353445053, 0.018974220380187035, -0.004686078056693077, 0.031051184982061386, -0.01224601361900568, 0.008668906055390835, 0.017743533477187157, 0.020948730409145355, -0.0074517433531582355, 0.007614031434059143, 0.0049058436416089535, -0.011765910312533379, 0.002912739058956504, -0.04127535596489906, -0.007614031434059143, 0.025506330654025078, 0.023315435275435448, 0.0164046548306942, 0.004435883369296789, -0.004899081774055958, 0.025722714141011238, -0.002123273443430662, 0.008100897073745728, -0.0061263879761099815, 0.021192163228988647, 0.006366439629346132, 0.005768001079559326, 0.009852259419858456, 0.017702961340546608, 0.018284495919942856, 0.0037901108153164387, 0.018933648243546486, -0.02405925840139389, 0.01683742366731167, -0.047280024737119675, 0.004973463714122772, -0.0037698247469961643, 0.014227285049855709, 0.0105352234095335, 0.024140402674674988, -0.003436795435845852, 0.002640567719936371, -0.02665587328374386, -0.021922459825873375, -0.006136531010270119, 0.008357853628695011, -0.029590588063001633, -0.017459528520703316, -0.00831051915884018, -0.01102208811789751, 0.010839514434337616, -0.0347297228872776, 0.02319372072815895, 0.0006897257990203798, 0.005453567020595074, -0.0065422519110143185, -0.01253677997738123, 0.01773001067340374, 0.0056429035030305386, 0.009845497086644173, 0.010372934862971306, 0.009324821643531322, -0.018500879406929016, -0.020840538665652275, -0.0034537003375589848, -0.020150812342762947, 0.0032711259555071592, 0.00787775032222271, 0.01314536202698946, -0.006582824047654867, 0.003386080265045166, 0.022679805755615234, -0.024221546947956085, 0.004033543635159731, -0.01571492850780487, 0.009764352813363075, -0.016499321907758713, -0.013686323538422585, 0.01963689923286438, -0.009750829078257084, -0.0023650156799703836, 0.014889962039887905, -0.02006966806948185, -0.004713125992566347, -0.02104339748620987, -0.016877995803952217, -0.004162021912634373, -0.0034300333354622126, 0.020583581179380417, 0.011650956235826015, 0.03700175881385803, 0.007999466732144356, -0.017811153084039688, -0.01372013334184885, 0.004249928053468466, 0.017648866400122643, 0.008107658475637436, 0.0041451165452599525, 0.001950841979123652, -0.015877217054367065, -0.01456538587808609, 0.01636408269405365, -0.0012036390835419297, 0.06810703873634338, -0.0026456392370164394, 0.0018443402368575335, -0.023274865001440048, -0.010866561904549599, -0.007323265075683594, -0.07865578681230545, -0.016309985890984535, -0.0032795784063637257, 0.014578909613192081, -0.014213760383427143, 0.03527068346738815, 0.0031054564751684666, 0.0020218431018292904, -0.02182779274880886, 0.014754721894860268, 0.0008524368167854846, -0.019555754959583282, 0.01823039911687374, 0.0026287343353033066, 0.020299576222896576, 0.006342772394418716, -0.009128723293542862, -0.012070201337337494, 0.0062311990186572075, 0.028968483209609985, -0.01705380715429783, 0.020921681076288223, 0.016337033361196518, -0.014470716938376427, 0.015092822723090649, 0.005348755978047848, -0.033647798001766205, 0.029617635533213615, 0.030185645446181297, -0.007992704398930073, 0.027575507760047913, -0.014849389903247356, 0.0358116440474987, -0.00796565692871809, 0.01924470253288746, -0.001874769339337945, -0.02902257815003395, -0.0031426476780325174, 0.008608047850430012, -0.04038276895880699, 0.010210646316409111, -0.013841849751770496, -0.03088889643549919, -0.025709189474582672, -0.02028605155646801, -0.002909358125180006, -0.015701403841376305, -0.0038475878536701202, -0.0064746318385005, -0.022206464782357216, -0.02470841258764267, -0.030699558556079865, -0.017094379290938377, -0.021854840219020844, 0.016377605497837067, -0.0040910206735134125, 0.021908937022089958, 0.015620260499417782, -0.03984180837869644, -0.028211137279868126, -0.004036924336105585, 0.005203372333198786, -0.02539813704788685, 0.008560714311897755, 0.0005096870590932667, -0.015525592491030693, -0.035162489861249924, 0.010190360248088837, 0.017648866400122643, -0.023247815668582916, -0.018947172909975052, 0.010143025778234005, -0.014971106313169003, 0.00910167582333088, -0.06269742548465729, 0.011265520937740803, -0.013077741488814354, 0.00047165071009658277, 0.015566164627671242, -0.03527068346738815, -0.01870374009013176, -0.02212532050907612, 0.015836644917726517, -0.010961229912936687, 0.030915943905711174, 0.011732100509107113, 0.014835866168141365, 0.007370599079877138, 0.006089196540415287, -0.01390270795673132, 0.02514118142426014, 0.009480348788201809, -0.0051323710940778255, 0.0011284116189926863, -0.01599893346428871, 0.00522365840151906, -0.02377525344491005, -0.008844719268381596, -0.03367484733462334, 0.006653825286775827, -0.005227039568126202, -0.00714745232835412, -0.07005450129508972, 0.01593131385743618, -0.00891910120844841, 0.01729723997414112, -0.012462398037314415, -0.02481660433113575, 0.0013042241334915161, -0.019515182822942734, -0.006045243702828884, 0.016012458130717278, -0.0013532487209886312, 0.02449202723801136, 0.011191138997673988, -0.004997130949050188, -0.013699847273528576, -0.006471250671893358, -0.006018195301294327, -0.01935289427638054, 0.03851645067334175, 0.007546411361545324, -0.023829350247979164, 0.008283471688628197, 0.029915165156126022, 0.006785684730857611, -0.013199457898736, 0.021597884595394135, -0.010048357769846916, 0.00850661750882864, 0.011218187399208546, -0.011691528372466564, -0.006413773633539677, -0.011218187399208546, 7.786885544192046e-05, 0.010136264376342297, 0.0015231444267556071, -9.435127140022814e-05, -0.01102208811789751, 0.028860289603471756, 0.008743288926780224, 0.00747202942147851, -0.03654194250702858, -0.04284414276480675, 0.011644193902611732, -0.010812466032803059, 0.002473207889124751, -0.01881193183362484, -0.00484498543664813, -0.004459550604224205, -0.0038340638857334852, 0.014092043973505497, 0.009554730728268623, 0.013361746445298195, 0.014795294031500816, -0.025181753560900688, -0.012523256242275238, -0.013449653051793575, 0.017459528520703316, 0.002422492718324065, -0.018527928739786148, -0.011603621765971184, 0.032024916261434555, 0.007404408883303404, 0.008229374885559082, 0.009149009361863136, 0.015349779278039932, 0.014105568639934063, -0.004625219851732254, 0.012739640660583973, 0.022720377892255783, -0.022179417312145233, -0.021313879638910294, 0.0003835331881418824, 0.02902257815003395, 0.02240932546555996, -0.002349801128730178, 0.0201102402061224, 0.011623907834291458, 0.0015535735292360187, -0.0305643193423748, 0.018933648243546486, 0.02646653540432453, -0.02683168463408947, -0.022449897602200508, 0.005960718262940645, 0.015255111269652843, 0.011143804527819157, 0.01372013334184885, -0.0044020735658705235, -0.012631448917090893, -0.0037089665420353413, -0.028643906116485596, 0.00027111463714390993, -0.003536535194143653, -0.0044291215017437935, -0.00532170757651329, -0.006035100668668747, 0.009899593889713287, 0.016702182590961456, 0.03559526056051254, 0.020083192735910416, -0.017094379290938377, 0.008790622465312481, 0.006538870744407177, -0.01651284657418728, -0.0380566343665123, 0.0016118958592414856, -0.029861068353056908, -0.005213515367358923, 0.0280217994004488, 0.006160197779536247, 0.01152923982590437, -0.00029076673672534525, 0.007438219152390957, 0.013098027557134628, -0.011380475014448166, 0.018622595816850662, 0.018798409029841423, -0.010291790589690208, -0.008242899551987648, 0.018041063100099564, 0.02247694693505764, 0.006958115845918655, 0.006887114606797695, -0.025168228894472122, 0.007992704398930073, -0.008276709355413914, 0.017486577853560448, -0.019150033593177795, 0.023937541991472244, 0.005003892816603184, 0.014349001459777355, -0.03153805062174797, 0.0022669662721455097, -0.016607515513896942, -0.030077453702688217, 0.007816892117261887, -0.014930534176528454, 0.0028941435739398003, -0.02240932546555996, 0.07665423303842545, 0.034405145794153214, -0.015917789191007614, 0.015809597447514534, -0.008709478192031384, 0.024870699271559715, -0.009074627421796322, 0.01718904823064804, -0.011820006184279919, -0.011941722594201565, -0.009054341353476048, 0.002023533685132861, 0.027859512716531754, -0.020867586135864258, -0.02388344518840313, -0.017500100657343864, 0.02071882225573063, -0.004831461701542139, -0.025019465014338493, -0.04276299849152565, -0.0049058436416089535, -0.0015569544630125165, -0.0014386192196980119, 0.0014217142015695572, -0.023153148591518402, -0.0049667018465697765, 0.008567475713789463, -0.004334453027695417, -0.015633784234523773, -0.005872812122106552, 0.0074179330840706825, -0.012597638182342052, -0.02013728767633438, -0.013043931685388088, -0.013206220231950283, 0.004959939979016781, 0.00712040439248085, -0.006285295356065035, 0.028184087947010994, 0.02769722416996956, -0.015579688362777233, 0.006183865014463663, -0.014416621066629887, -0.024032210931181908, 0.0031781482975929976, 0.004885557573288679, -0.022531041875481606, -0.02654767967760563, 0.03967951983213425], name_embedding=None, graph_embedding=None, community_ids=['8'], text_unit_ids=['b1acf6f137198e644d60ab1843b2c63e'], document_ids=None, rank=1, attributes=None)\n" + "2024-09-19 14:29:47,975 - __main__ - INFO - Entities table loaded successfully\n" ] } ], @@ -206,8 +224,7 @@ " data[\"entities\"] = read_indexer_entities(\n", " data[\"entities\"], entity_embeddings, COMMUNITY_LEVEL\n", " )\n", - " print(\"Entities table sample:\")\n", - " print(data[\"entities\"][0])\n", + " logger.info(\"Entities table loaded successfully\")\n", "except FileNotFoundError:\n", " logger.warning(\"ENTITY_TABLE file not found. Setting entities to None.\")\n", " data[\"entities\"] = None" @@ -217,8 +234,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Relationships table:\n", - "This table represents relationships between entities. Each relationship has a unique ID, a short ID, a source entity, a target entity, a weight, a description, and potentially description embeddings. It also includes text unit IDs, document IDs, and may have additional attributes like rank." + "## Read Relationships:" ] }, { @@ -227,11 +243,10 @@ "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "Relationships table sample:\n", - "Relationship(id='43c3390303c6476cb65f584e37c3e81c', short_id='0', source='ALEX MERCER', target='TAYLOR CRUZ', weight=139.0, description=\"Alex Mercer and Taylor Cruz are both agents in the Paranormal Military Squad, working together on various extraterrestrial data and alien signals. Their professional relationship is marked by a balance of curiosity and caution, with Alex Mercer often leading and Taylor Cruz providing a cautious and analytical perspective. Despite occasional conflicts between obedience and investigative zeal, Alex acknowledges Taylor's authority and respects her cautionary advice. \\n\\nTaylor Cruz, who often questions Mercer's commitment, relies on him to keep the team grounded and focused. They work together to ensure the team's efforts remain controlled and cautious, balancing innovative and defensive strategies as well as scientific and military perspectives. Their collaboration involves debating hypotheses and facts, with Cruz's commanding presence complementing Mercer's leadership. Overall, their teamwork within the Paranormal Military Squad is characterized by mutual respect and a shared goal of effectively managing alien communication and data analysis.\", description_embedding=None, text_unit_ids=['0252fd22516cf1fe4c8249dc1d5aa995', '2be045844a1390572a34f61054ca1994', '2c566f4fafe76923d5e2393b28ddfc7e', '3033fdd0e928a52a29b8bb5f4c4ca242', '3ce43735ef073010f94b5c8c59eef5dd', '49b695de87aa38bf72fe97b12a2ccefd', '5b2d21ec6fc171c30bdda343f128f5a6', '6a678172e5a65aa7a3bfd06472a4bc8a', '73011d975a4700a15ab8e3a0df2c50ca', '8667430247e7cd260e19cc87c6e6c3d0', '935164b93d027138525f0a392bb67c18', 'ad48c6cbbdc9a7ea6322eca668433d1d', 'ae3d58f47c77025945b78a1115014d49', 'b1acf6f137198e644d60ab1843b2c63e', 'b330e287a060d3a460431479f6ec248f', 'b586b4a1d69c6dcc177e138c452bcd2a', 'cfd4ea0e691b888c0d765e865ad7e8da', 'd491433ffa1b4c629fe984e7d85364aa', 'db133889acaba9520123346a859a1494'], document_ids=None, attributes={'rank': 53})\n" + "2024-09-19 14:29:48,017 - __main__ - INFO - Relationships table loaded successfully\n" ] } ], @@ -241,8 +256,7 @@ " f\"{INPUT_DIR}/{TABLE_NAMES['RELATIONSHIP_TABLE']}.parquet\"\n", " )\n", " data[\"relationships\"] = read_indexer_relationships(data[\"relationships\"])\n", - " print(\"Relationships table sample:\")\n", - " print(data[\"relationships\"][0])\n", + " logger.info(\"Relationships table loaded successfully\")\n", "except FileNotFoundError:\n", " logger.warning(\"RELATIONSHIP_TABLE file not found. Setting relationships to None.\")\n", " data[\"relationships\"] = None" @@ -252,8 +266,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Covariate table:\n", - "This table stores additional variables or attributes that may be associated with entities, relationships, or other elements in the system. Covariates are typically used to provide context or additional information that can be useful for analysis or modeling." + "## Read Covariates:\n" ] }, { @@ -265,7 +278,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:20,511 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" + "2024-09-19 14:29:48,030 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" ] } ], @@ -275,8 +288,7 @@ " f\"{INPUT_DIR}/{TABLE_NAMES['COVARIATE_TABLE']}.parquet\"\n", " )\n", " data[\"covariates\"] = read_indexer_covariates(data[\"covariates\"])\n", - " print(\"Covariates table sample:\")\n", - " print(data[\"covariates\"][0])\n", + " logger.info(\"Covariates table loaded successfully\")\n", "except FileNotFoundError:\n", " logger.warning(\"COVARIATE_TABLE file not found. Setting covariates to None.\")\n", " data[\"covariates\"] = None" @@ -286,8 +298,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Reports table:\n", - "This table contains community reports. Each report has an ID, a short ID, a title, a community ID, a summary, full content, a rank, and potentially embeddings for the summary and full content. It may also include additional attributes." + "## Read Reports:" ] }, { @@ -296,11 +307,10 @@ "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "Reports table sample:\n", - "CommunityReport(id='18', short_id='18', title='Paranormal Military Squad and Operation: Dulce', community_id='18', summary=\"The community centers around the Paranormal Military Squad, a clandestine governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce, mediating Earth's contact with alien intelligence. Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, each contributing significantly to the mission. The community's activities are focused on deciphering alien signals, ensuring humanity's safety, and preparing for potential first contact scenarios.\", full_content=\"# Paranormal Military Squad and Operation: Dulce\\n\\nThe community centers around the Paranormal Military Squad, a clandestine governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce, mediating Earth's contact with alien intelligence. Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, each contributing significantly to the mission. The community's activities are focused on deciphering alien signals, ensuring humanity's safety, and preparing for potential first contact scenarios.\\n\\n## Central Role of the Paranormal Military Squad\\n\\nThe Paranormal Military Squad is the central entity in this community, responsible for investigating and engaging with extraterrestrial phenomena. This elite group is tasked with initiating and managing humanity's response to potential extraterrestrial contact, bridging interstellar distances, and engaging in dialogue with alien races. Their duties include deciphering evolving signals, ensuring humanity's safety in intergalactic matters, and preparing for potential first contact scenarios. The squad's operations are primarily based at the Dulce military base, which serves as their command center [Data: Entities (4); Relationships (105, 102, 116, 98, 124, +more)].\\n\\n## Operation: Dulce\\n\\nOperation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Entities (4); Relationships (98, 105, 102, 116, 126, +more)].\\n\\n## Key Figures within the Paranormal Military Squad\\n\\nSeveral key figures play crucial roles within the Paranormal Military Squad. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Entities (35); Relationships (3, 53, 31, 77, 85, +more)].\\n\\n## Deciphering Alien Signals\\n\\nA primary focus of the Paranormal Military Squad is deciphering alien signals. This involves analyzing and decoding extraterrestrial communications to understand their intent and ensure humanity's safety. The squad's efforts in this area are critical for preparing for potential first contact scenarios and establishing effective communication with alien races. The use of advanced communications equipment and the strategic location at the Dulce military base are essential components of this mission [Data: Entities (71, 72); Relationships (125, 126, 134, 108, 114, +more)].\\n\\n## Potential First Contact Scenarios\\n\\nThe Paranormal Military Squad is preparing for potential first contact scenarios with extraterrestrial intelligence. This involves mediating Earth's bid for cosmic relevance through dialogue, ensuring effective communication and negotiation with alien beings. The squad's role in these scenarios is critical, as they represent humanity in these unprecedented encounters. The potential implications of first contact are monumental, making the squad's mission highly significant [Data: Entities (77, 58); Relationships (119, 118, 109, 107, 127, +more)].\\n\\n## Global Implications of the Mission\\n\\nThe activities of the Paranormal Military Squad have significant global implications. Their mission to engage with extraterrestrial intelligence and prepare for potential first contact scenarios could alter the course of human history. The squad's efforts in deciphering alien signals, ensuring humanity's safety, and establishing effective communication with alien races are critical for navigating the complexities of cosmic discovery. The potential for both positive and negative outcomes makes the squad's mission highly impactful [Data: Entities (52, 54, 90); Relationships (110, 111, 140, 123, 135, +more)].\", rank=9.0, summary_embedding=None, full_content_embedding=None, attributes=None)\n" + "2024-09-19 14:29:48,075 - __main__ - INFO - Reports table loaded successfully\n" ] } ], @@ -313,8 +323,7 @@ " data[\"reports\"] = read_indexer_reports(\n", " data[\"reports\"], entity_data, COMMUNITY_LEVEL\n", " )\n", - " print(\"Reports table sample:\")\n", - " print(data[\"reports\"][0])\n", + " logger.info(\"Reports table loaded successfully\")\n", "except FileNotFoundError:\n", " logger.warning(\"COMMUNITY_REPORT_TABLE file not found. Setting reports to None.\")\n", " data[\"reports\"] = None" @@ -324,8 +333,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Text units table:\n", - "This table stores text units, which are likely segments of text from documents. Each text unit has an ID, a short ID, the actual text content, and potentially text embeddings. It also includes entity IDs, relationship IDs, covariate IDs, the number of tokens, document IDs, and may have additional attributes." + "## Read Text units:\n" ] }, { @@ -333,12 +341,17 @@ "execution_count": 8, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-19 14:29:48,100 - __main__ - INFO - Text units table loaded successfully\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "Text units table sample:\n", - "TextUnit(id='5b2d21ec6fc171c30bdda343f128f5a6', short_id='0', text='# Operation: Dulce\\n\\n## Chapter 1\\n\\nThe thrumming of monitors cast a stark contrast to the rigid silence enveloping the group. Agent Alex Mercer, unfailingly determined on paper, seemed dwarfed by the enormity of the sterile briefing room where Paranormal Military Squad\\'s elite convened. With dulled eyes, he scanned the projectors outlining their impending odyssey into Operation: Dulce.\\n\\n“I assume, Agent Mercer, you’re not having second thoughts?” It was Taylor Cruz’s voice, laced with an edge that demanded attention.\\n\\nAlex flickered a strained smile, still thumbing his folder\\'s corner. \"Of course not, Agent Cruz. Just trying to soak in all the details.\" The compliance in his tone was unsettling, even to himself.\\n\\nJordan Hayes, perched on the opposite side of the table, narrowed their eyes but offered a supportive nod. \"Details are imperative. We’ll need your clear-headedness down there, Mercer.\"\\n\\nA comfortable silence, the kind that threaded between veterans of shared secrets, lingered briefly before Sam Rivera, never one to submit to quiet, added, \"I’ve combed through the last transmission logs. If anyone can make sense of the anomalies, it’s going to be the two of you.\"\\n\\nTaylor snorted dismissively. “Focus, people. We have protocols for a reason. Speculation is counter-productive.” The words \\'counter-productive\\' seemed to hang in the air, a tacit reprimand directed at Alex.\\n\\nFeeling the weight of his compliance conflicting with his natural inclination to leave no stone unturned, Alex straightened in his seat. \"I agree, Agent Cruz. Protocol is paramount,\" he said, meeting Taylor\\'s steely gaze. It was an affirmation, but beneath it lay layers of unspoken complexities that would undoubtedly unwind with time.\\n\\nAlex\\'s submission, though seemingly complete, didn\\'t escape Jordan, who tilted their head ever so slightly, their eyes revealing a spark of understanding. They knew well enough the struggle of aligning personal convictions with overarching missions. As everyone began to collect their binders and prepare for departure, a quiet resolve took form within Alex, galvanized by the groundwork laid by their interactions. He may have spoken in compliance, but his determination had merely taken a subtler form — one that wouldn\\'t surrender so easily to the forthcoming shadows.\\n\\n\\\\*\\n\\nDr. Jordan Hayes shuffled a stack of papers, their eyes revealing a tinge of skepticism at Taylor Cruz\\'s authoritarian performance. _Protocols_, Jordan thought, _are just the framework, the true challenges we\\'re about to face lie well beyond the boundaries of any protocol._ They cleared their throat before speaking, tone cautious yet firm, \"Let\\'s remember, the unknown variables exceed the known. We should remain adaptive.\"\\n\\nA murmur of agreement echoed from Sam Rivera, who leaned forward, lacing their fingers together as if weaving a digital framework in the air before them, \"Exactly, adaptability could be the key to interpreting the signal distortions and system malfunctions. We shouldn\\'t discount the… erratic.\"\\n\\nTheir words hung like an electric charge in the room, challenging Taylor\\'s position with an inherent truth. Cruz’s jaw tightened almost imperceptibly, but the agent masked it with a small nod, conceding to the omnipresent threat of the unpredictable. \\n\\nAlex glanced at Jordan, who never looked back, their gaze fixed instead on a distant point, as if envisioning the immense dark corridors they were soon to navigate in Dulce. Jordan was not one to embrace fantastical theories, but the air of cautious calculation betrayed a mind bracing for confrontation with the inexplicable, an internal battle between the evidence of their research and the calculating skepticism that kept them alive in their field.\\n\\nThe meeting adjourned with no further comments, the team members quietly retreading the paths to their personal preparations. Alex, trailing slightly behind, observed the others. _The cautious reserve Jordan wears like armor doesn\\'t fool me_, he thought, _their analytical mind sees the patterns I do. And that\\'s worth more than protocol. That\\'s the connection we need to survive this._\\n\\nAs the agents dispersed into the labyrinth of the facility, lost in their thoughts and preparations, the base\\'s halogen lights flickered, a brief and unnoticed harbingers of the darkness to come.\\n\\n\\\\*\\n\\nA deserted corridor inside the facility stretched before Taylor Cruz, each footstep rhythmic and precise. Cruz, ambitious and meticulous, eyed the troops passing by with a sardonic tilt of the lips. Obedience—it was as much a tool as any weapon in the arsenal, and Cruz wielded it masterfully. To them, it was another step toward unfettered power within the dark bowels of the military complex.\\n\\nInside a secluded equipment bay, Cruz began checking over gear with mechanical efficiency. They traced fingers over the sleek surface of an encrypted radio transmitter. \"If protocols are maintained,\" said Cruz aloud, rehearsing the speech for their subordinates, \"not only will we re-establish a line of communication with Dulce, but we shall also illuminate the darkest secrets it conceals.\"\\n\\nAgent Hayes appeared in the doorway, arms crossed and a knowing glint in their eyes. \"You do understand,\" Jordan began, the words measured and probing, \"that once we\\'re in the depths, rank gives way to survival instincts. It\\'s not about commands—it\\'s empowerment through trust.\"\\n\\nThe sentiment snagged on Cruz\\'s armor of confidence, probing at the insecurities festering beneath. Taylor offered a brief nod, perhaps too curt, but enough to acknowledge Jordan\\'s point without yielding ground. \"Trust,\" Cruz mused, \"or the illusion thereof, is just as potent.\"\\n\\nSilence claimed the space between them, steeped in the reality of the unknown dangers lurking in the shadows of the mission. Cruz diligently returned to the equipment, the act a clear dismissal.\\n\\nNot much later, Cruz stood alone', text_embedding=None, entity_ids=['b45241d70f0e43fca764df95b2b81f77', '4119fd06010c494caa07f439b333f4c5', 'd3835bf3dda84ead99deadbeac5d0d7d', '077d2820ae1845bcbb1803379a3d1eae', '3671ea0dd4e84c1a9b02c5ab2c8f4bac', '19a7f254a5d64566ab5cc15472df02de', 'e7ffaee9d31d4d3c96e04f911d0a8f9e'], relationship_ids=['43c3390303c6476cb65f584e37c3e81c', 'fa14b16c17e3417dba5a4b473ea5b18d', '7cc3356d38de4328a51a5cbcb187dac3', 'bef16fb5fd7344cca5e295b13ef3e0cd', 'bb9e01bc171d4326a29afda59ece8d17', '1f1545308e9347af91fd03b94aadc21f', '6ea81acaf232485e94fff638e03336e1', 'd136b08d586d488f9e4188b524c85a29', 'cccfa151fedc4b218a8d96adc7dceabe', '86505bca739d4bccaaa1a8e0f3baffdc', '1af9faf341e14a5bbf4ddc9080e8dc0b', '353d91abc68648639d65a549e59b5cf3', '14555b518e954637b83aa762dc03164e', 'b1f6164116d44fe8b8f135d7f65b9e58', 'a0047221896d418d849847d422fa4bb8'], covariate_ids=None, n_tokens=1200, document_ids=['958fdd043f17ade63cb13570b59df295'], attributes=None)\n", "Data loading completed\n" ] } @@ -349,8 +362,7 @@ " f\"{INPUT_DIR}/{TABLE_NAMES['TEXT_UNIT_TABLE']}.parquet\"\n", " )\n", " data[\"text_units\"] = read_indexer_text_units(data[\"text_units\"])\n", - " print(\"Text units table sample:\")\n", - " print(data[\"text_units\"][0])\n", + " logger.info(\"Text units table loaded successfully\")\n", "except FileNotFoundError:\n", " logger.warning(\"TEXT_UNIT_TABLE file not found. Setting text_units to None.\")\n", " data[\"text_units\"] = None\n", @@ -382,10 +394,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:20,566 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-19 12:10:20,568 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-19 12:10:20,609 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-19 12:10:20,611 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + "2024-09-19 14:29:48,119 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-19 14:29:48,125 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-19 14:29:48,173 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-19 14:29:48,174 - __main__ - INFO - CouchbaseVectorStore setup completed\n" ] } ], @@ -438,8 +450,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:20,630 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-19 12:10:21,260 - __main__ - INFO - LLM and embedding models setup completed\n" + "2024-09-19 14:29:48,193 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-19 14:29:49,059 - __main__ - INFO - LLM and embedding models setup completed\n" ] } ], @@ -495,10 +507,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:21,274 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-19 12:10:21,276 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", - "2024-09-19 12:10:21,501 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded all 92 documents\n", - "2024-09-19 12:10:21,504 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + "2024-09-19 14:29:49,074 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-19 14:29:49,079 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", + "2024-09-19 14:29:49,300 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded all 92 documents\n", + "2024-09-19 14:29:49,303 - __main__ - INFO - Entity semantic embeddings stored successfully\n" ] } ], @@ -611,8 +623,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:21,527 - __main__ - INFO - Creating search engine\n", - "2024-09-19 12:10:21,535 - __main__ - INFO - Search engine created\n" + "2024-09-19 14:29:49,333 - __main__ - INFO - Creating search engine\n", + "2024-09-19 14:29:49,342 - __main__ - INFO - Search engine created\n" ] } ], @@ -686,14 +698,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 12:10:21,568 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-19 12:10:21,572 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-19 12:10:22,137 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-19 12:10:22,144 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-19 12:10:22,152 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-19 12:10:22,279 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726728021.5726213. QUERY: Give me a summary about the story\n", - "2024-09-19 12:10:23,179 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-19 12:10:34,053 - __main__ - INFO - Query completed successfully\n" + "2024-09-19 14:29:49,375 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-19 14:29:49,379 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-19 14:29:50,171 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-19 14:29:50,182 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-19 14:29:50,196 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-19 14:29:50,392 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726736389.3795912. QUERY: Give me a summary about the story\n", + "2024-09-19 14:29:51,353 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-19 14:30:01,762 - __main__ - INFO - Query completed successfully\n" ] }, { @@ -705,15 +717,15 @@ "\n", "## Introduction to the Paranormal Military Squad\n", "\n", - "The narrative centers around the Paranormal Military Squad, a secretive governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", + "The story revolves around the Paranormal Military Squad, a secretive governmental faction dedicated to investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", "\n", "## Key Figures and Their Roles\n", "\n", - "Several key figures play crucial roles within the Paranormal Military Squad. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 38, 94)].\n", + "The squad comprises several key figures, each playing a crucial role in the mission. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, emphasizing diligence and strategic planning. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 35); Relationships (3, 53, 31, 77, 85, +more)].\n", "\n", "## Operation: Dulce\n", "\n", - "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (142, 143, 144, 194, 196)].\n", + "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad. It involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (98, 105, 102, 116, 126, +more)].\n", "\n", "## Deciphering Alien Signals\n", "\n", @@ -729,7 +741,7 @@ "\n", "## Conclusion\n", "\n", - "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a gripping tale of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's efforts in decoding alien signals, preparing for first contact, and navigating the potential global implications of their mission highlight the profound impact of their work on the future of humanity. The narrative underscores the importance of strategic leadership, technical expertise, and the relentless pursuit of knowledge in the face of the unknown.\n" + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. Through the efforts of key figures like Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, the squad navigates the complexities of alien communication, preparing for potential first contact scenarios that could redefine humanity's place in the cosmos. The mission's global implications underscore the profound significance of their work, as they stand on the precipice of a new era in human history.\n" ] } ], diff --git a/examples_notebooks/community_contrib/couchbase/__init__.py b/examples_notebooks/community_contrib/couchbase/__init__.py deleted file mode 100644 index 691e007a87..0000000000 --- a/examples_notebooks/community_contrib/couchbase/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -""" -Couchbase Vector Store Demo for GraphRAG. - -This package contains demonstration code for using Couchbase as a vector store -with GraphRAG, including data loading, vector store setup, and query execution. -""" - -from .couchbasedb_demo import main - -__all__ = ["main"] \ No newline at end of file diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index ff9d19ca07..47b4ebf975 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -179,9 +179,13 @@ def similarity_search_by_vector( def filter_by_id(self, include_ids: list[str] | list[int]) -> Any: """Build a query filter to filter documents by id.""" - id_filter = ",".join([f"{id!s}" for id in include_ids]) - logger.debug("Created filter by ID: %s", id_filter) - return f"search.in(id, '{id_filter}', ',')" + # id_filter = ",".join([f"{id!s}" for id in include_ids]) + # logger.debug("Created filter by ID: %s", id_filter) + # return f"search.in(id, '{id_filter}', ',')" + + raise NotImplementedError( + "filter_by_id method is not implemented for CouchbaseVectorStore" + ) def _format_metadata(self, row_fields: dict[str, Any]) -> dict[str, Any]: """Format the metadata from the Couchbase Search API. diff --git a/tests/unit/vector_stores/test_couchbasedb.py b/tests/unit/vector_stores/test_couchbasedb.py index 6e4543fa41..a0b4aa2d80 100644 --- a/tests/unit/vector_stores/test_couchbasedb.py +++ b/tests/unit/vector_stores/test_couchbasedb.py @@ -12,15 +12,20 @@ load_dotenv() -COUCHBASE_CONNECTION_STRING = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost") +COUCHBASE_CONNECTION_STRING = os.getenv( + "COUCHBASE_CONNECTION_STRING", "couchbase://localhost" +) COUCHBASE_USERNAME = os.getenv("COUCHBASE_USERNAME", "Administrator") COUCHBASE_PASSWORD = os.getenv("COUCHBASE_PASSWORD", "password") BUCKET_NAME = os.getenv("COUCHBASE_BUCKET_NAME", "graphrag-demo") SCOPE_NAME = os.getenv("COUCHBASE_SCOPE_NAME", "shared") -COLLECTION_NAME = os.getenv("COUCHBASE_COLLECTION_NAME", "entity_description_embeddings") +COLLECTION_NAME = os.getenv( + "COUCHBASE_COLLECTION_NAME", "entity_description_embeddings" +) INDEX_NAME = os.getenv("COUCHBASE_INDEX_NAME", "graphrag_index") VECTOR_SIZE = int(os.getenv("VECTOR_SIZE", 1536)) + class TestCouchbaseVectorStore(unittest.TestCase): @classmethod def setUpClass(cls): @@ -29,14 +34,14 @@ def setUpClass(cls): bucket_name=BUCKET_NAME, scope_name=SCOPE_NAME, index_name=INDEX_NAME, - vector_size=VECTOR_SIZE + vector_size=VECTOR_SIZE, ) auth = PasswordAuthenticator(COUCHBASE_USERNAME, COUCHBASE_PASSWORD) cluster_options = ClusterOptions(auth) cls.vector_store.connect( connection_string=COUCHBASE_CONNECTION_STRING, - cluster_options=cluster_options + cluster_options=cluster_options, ) @classmethod @@ -47,8 +52,18 @@ def tearDownClass(cls): def test_load_documents(self): documents = [ - VectorStoreDocument(id="1", text="Test 1", vector=[0.1] * VECTOR_SIZE, attributes={"attr": "value1"}), - VectorStoreDocument(id="2", text="Test 2", vector=[0.2] * VECTOR_SIZE, attributes={"attr": "value2"}) + VectorStoreDocument( + id="1", + text="Test 1", + vector=[0.1] * VECTOR_SIZE, + attributes={"attr": "value1"}, + ), + VectorStoreDocument( + id="2", + text="Test 2", + vector=[0.2] * VECTOR_SIZE, + attributes={"attr": "value2"}, + ), ] self.vector_store.load_documents(documents) @@ -68,7 +83,9 @@ def test_similarity_search_by_vector(self): # Add a sleep to allow time for indexing time.sleep(2) - results = self.vector_store.similarity_search_by_vector([0.1] * VECTOR_SIZE, k=2) + results = self.vector_store.similarity_search_by_vector( + [0.1] * VECTOR_SIZE, k=2 + ) assert len(results) == 2 assert isinstance(results[0], VectorStoreSearchResult) assert isinstance(results[0].document, VectorStoreDocument) @@ -84,14 +101,17 @@ def mock_text_embedder(text): # Add a sleep to allow time for indexing time.sleep(2) - results = self.vector_store.similarity_search_by_text("test query", mock_text_embedder, k=2) + results = self.vector_store.similarity_search_by_text( + "test query", mock_text_embedder, k=2 + ) assert len(results) == 2 assert isinstance(results[0], VectorStoreSearchResult) assert isinstance(results[0].document, VectorStoreDocument) - def test_filter_by_id(self): - filter_query = self.vector_store.filter_by_id(["1", "2", "3"]) - assert filter_query == "search.in(id, '1,2,3', ',')" + # def test_filter_by_id(self): + # filter_query = self.vector_store.filter_by_id(["1", "2", "3"]) + # assert filter_query == "search.in(id, '1,2,3', ',')" + if __name__ == "__main__": - unittest.main() \ No newline at end of file + unittest.main() From 7b7f664facac31821df2ce1c5a4ca952bb554fe6 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Thu, 19 Sep 2024 14:44:40 +0530 Subject: [PATCH 13/25] feat: Refactor CouchbaseVectorStore document loading --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 151 ++++++++++++++---- graphrag/vector_stores/couchbasedb.py | 45 +++--- 2 files changed, 142 insertions(+), 54 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 24b4c679f7..9f42233d04 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -166,7 +166,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:47,847 - __main__ - INFO - Loading data from parquet files\n" + "2024-09-19 14:43:46,593 - __main__ - INFO - Loading data from parquet files\n" ] } ], @@ -209,7 +209,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:47,975 - __main__ - INFO - Entities table loaded successfully\n" + "2024-09-19 14:43:46,698 - __main__ - INFO - Entities table loaded successfully\n" ] } ], @@ -246,7 +246,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:48,017 - __main__ - INFO - Relationships table loaded successfully\n" + "2024-09-19 14:43:46,775 - __main__ - INFO - Relationships table loaded successfully\n" ] } ], @@ -278,7 +278,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:48,030 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" + "2024-09-19 14:43:46,802 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" ] } ], @@ -310,7 +310,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:48,075 - __main__ - INFO - Reports table loaded successfully\n" + "2024-09-19 14:43:46,885 - __main__ - INFO - Reports table loaded successfully\n" ] } ], @@ -345,7 +345,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:48,100 - __main__ - INFO - Text units table loaded successfully\n" + "2024-09-19 14:43:46,930 - __main__ - INFO - Text units table loaded successfully\n" ] }, { @@ -394,10 +394,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:48,119 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-19 14:29:48,125 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-19 14:29:48,173 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-19 14:29:48,174 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + "2024-09-19 14:43:46,952 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-19 14:43:46,955 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-19 14:43:47,008 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-19 14:43:47,010 - __main__ - INFO - CouchbaseVectorStore setup completed\n" ] } ], @@ -450,8 +450,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:48,193 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-19 14:29:49,059 - __main__ - INFO - LLM and embedding models setup completed\n" + "2024-09-19 14:43:47,026 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-19 14:43:47,564 - __main__ - INFO - LLM and embedding models setup completed\n" ] } ], @@ -507,10 +507,101 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:49,074 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-19 14:29:49,079 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", - "2024-09-19 14:29:49,300 - graphrag.vector_stores.couchbasedb - INFO - Successfully loaded all 92 documents\n", - "2024-09-19 14:29:49,303 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + "2024-09-19 14:43:47,576 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-19 14:43:47,579 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", + "2024-09-19 14:43:47,736 - graphrag.vector_stores.couchbasedb - INFO - Document d64ed762ea924caa95c8d06f072a9a96 loaded successfully\n", + "2024-09-19 14:43:47,739 - graphrag.vector_stores.couchbasedb - INFO - Document bc0e3f075a4c4ebbb7c7b152b65a5625 loaded successfully\n", + "2024-09-19 14:43:47,741 - graphrag.vector_stores.couchbasedb - INFO - Document 3d0dcbc8971b415ea18065edc4d8c8ef loaded successfully\n", + "2024-09-19 14:43:47,743 - graphrag.vector_stores.couchbasedb - INFO - Document 53af055f068244d0ac861b2e89376495 loaded successfully\n", + "2024-09-19 14:43:47,748 - graphrag.vector_stores.couchbasedb - INFO - Document b45241d70f0e43fca764df95b2b81f77 loaded successfully\n", + "2024-09-19 14:43:47,750 - graphrag.vector_stores.couchbasedb - INFO - Document e22d1d1cd8d14f12b81828d940f40d70 loaded successfully\n", + "2024-09-19 14:43:47,751 - graphrag.vector_stores.couchbasedb - INFO - Document 8d141c0b80f74b79a05eed7fe161fe49 loaded successfully\n", + "2024-09-19 14:43:47,753 - graphrag.vector_stores.couchbasedb - INFO - Document babe97e1d9784cffa1c85abc1e588126 loaded successfully\n", + "2024-09-19 14:43:47,754 - graphrag.vector_stores.couchbasedb - INFO - Document bf4e255cdac94ccc83a56435a5e4b075 loaded successfully\n", + "2024-09-19 14:43:47,755 - graphrag.vector_stores.couchbasedb - INFO - Document e69dc259edb944ea9ea41264b9fcfe59 loaded successfully\n", + "2024-09-19 14:43:47,758 - graphrag.vector_stores.couchbasedb - INFO - Document 6fae5ee1a831468aa585a1ea09095998 loaded successfully\n", + "2024-09-19 14:43:47,760 - graphrag.vector_stores.couchbasedb - INFO - Document 3138f39f2bcd43a69e0697cd3b05bc4d loaded successfully\n", + "2024-09-19 14:43:47,761 - graphrag.vector_stores.couchbasedb - INFO - Document c9b8ce91fc2945b4907fe35519339cac loaded successfully\n", + "2024-09-19 14:43:47,763 - graphrag.vector_stores.couchbasedb - INFO - Document c9632a35146940c2a86167c7726d35e9 loaded successfully\n", + "2024-09-19 14:43:47,765 - graphrag.vector_stores.couchbasedb - INFO - Document d91a266f766b4737a06b0fda588ba40b loaded successfully\n", + "2024-09-19 14:43:47,767 - graphrag.vector_stores.couchbasedb - INFO - Document 56d0e5ebe79e4814bd1463cf6ca21394 loaded successfully\n", + "2024-09-19 14:43:47,767 - graphrag.vector_stores.couchbasedb - INFO - Document 6b02373137fd438ba96af28f735cdbdb loaded successfully\n", + "2024-09-19 14:43:47,768 - graphrag.vector_stores.couchbasedb - INFO - Document 1eb829d0ace042089f0746f78729696c loaded successfully\n", + "2024-09-19 14:43:47,768 - graphrag.vector_stores.couchbasedb - INFO - Document 958beecdb5bb4060948415ffd75d2b03 loaded successfully\n", + "2024-09-19 14:43:47,769 - graphrag.vector_stores.couchbasedb - INFO - Document 9ab48505fb1b487babd0d1f6d3a3f980 loaded successfully\n", + "2024-09-19 14:43:47,769 - graphrag.vector_stores.couchbasedb - INFO - Document 3b6cd96a27304614850709aba1c9598b loaded successfully\n", + "2024-09-19 14:43:47,769 - graphrag.vector_stores.couchbasedb - INFO - Document f1c6eed066f24cbdb376b910fce29ed4 loaded successfully\n", + "2024-09-19 14:43:47,770 - graphrag.vector_stores.couchbasedb - INFO - Document 3ce7c210a21b4deebad7cc9308148d86 loaded successfully\n", + "2024-09-19 14:43:47,770 - graphrag.vector_stores.couchbasedb - INFO - Document c6d1e4f56c2843e89cf0b91c10bb6de2 loaded successfully\n", + "2024-09-19 14:43:47,771 - graphrag.vector_stores.couchbasedb - INFO - Document 1033a18c45aa4584b2aef6ab96890351 loaded successfully\n", + "2024-09-19 14:43:47,772 - graphrag.vector_stores.couchbasedb - INFO - Document ed6d2eee9d7b4f5db466b1f6404d31cc loaded successfully\n", + "2024-09-19 14:43:47,772 - graphrag.vector_stores.couchbasedb - INFO - Document d2b629c0396f4180a03e16ddf3818589 loaded successfully\n", + "2024-09-19 14:43:47,773 - graphrag.vector_stores.couchbasedb - INFO - Document f7e11b0e297a44a896dc67928368f600 loaded successfully\n", + "2024-09-19 14:43:47,773 - graphrag.vector_stores.couchbasedb - INFO - Document fc01e9baa80e417c9206f941bb279407 loaded successfully\n", + "2024-09-19 14:43:47,773 - graphrag.vector_stores.couchbasedb - INFO - Document 9646481f66ce4fd2b08c2eddda42fc82 loaded successfully\n", + "2024-09-19 14:43:47,774 - graphrag.vector_stores.couchbasedb - INFO - Document 85c79fd84f5e4f918471c386852204c5 loaded successfully\n", + "2024-09-19 14:43:47,774 - graphrag.vector_stores.couchbasedb - INFO - Document de9e343f2e334d88a8ac7f8813a915e5 loaded successfully\n", + "2024-09-19 14:43:47,775 - graphrag.vector_stores.couchbasedb - INFO - Document 04dbbb2283b845baaeac0eaf0c34c9da loaded successfully\n", + "2024-09-19 14:43:47,775 - graphrag.vector_stores.couchbasedb - INFO - Document e7ffaee9d31d4d3c96e04f911d0a8f9e loaded successfully\n", + "2024-09-19 14:43:47,775 - graphrag.vector_stores.couchbasedb - INFO - Document e1fd0e904a53409aada44442f23a51cb loaded successfully\n", + "2024-09-19 14:43:47,778 - graphrag.vector_stores.couchbasedb - INFO - Document 1c109cfdc370463eb6d537e5b7b382fb loaded successfully\n", + "2024-09-19 14:43:47,780 - graphrag.vector_stores.couchbasedb - INFO - Document de988724cfdf45cebfba3b13c43ceede loaded successfully\n", + "2024-09-19 14:43:47,781 - graphrag.vector_stores.couchbasedb - INFO - Document 273daeec8cad41e6b3e450447db58ee7 loaded successfully\n", + "2024-09-19 14:43:47,782 - graphrag.vector_stores.couchbasedb - INFO - Document e2f5735c7d714423a2c4f61ca2644626 loaded successfully\n", + "2024-09-19 14:43:47,785 - graphrag.vector_stores.couchbasedb - INFO - Document 404309e89a5241d6bff42c05a45df206 loaded successfully\n", + "2024-09-19 14:43:47,790 - graphrag.vector_stores.couchbasedb - INFO - Document 015e7b58d1a14b44beab3bbc9f912c18 loaded successfully\n", + "2024-09-19 14:43:47,795 - graphrag.vector_stores.couchbasedb - INFO - Document 23527cd679ff4d5a988d52e7cd056078 loaded successfully\n", + "2024-09-19 14:43:47,800 - graphrag.vector_stores.couchbasedb - INFO - Document 148fffeb994541b2b4b6dcefda7001a8 loaded successfully\n", + "2024-09-19 14:43:47,801 - graphrag.vector_stores.couchbasedb - INFO - Document 2670deebfa3f4d69bb82c28ab250a209 loaded successfully\n", + "2024-09-19 14:43:47,802 - graphrag.vector_stores.couchbasedb - INFO - Document 1943f245ee4243bdbfbd2fd619ae824a loaded successfully\n", + "2024-09-19 14:43:47,802 - graphrag.vector_stores.couchbasedb - INFO - Document ef32c4b208d041cc856f6837915dc1b0 loaded successfully\n", + "2024-09-19 14:43:47,803 - graphrag.vector_stores.couchbasedb - INFO - Document 17ed1d92075643579a712cc6c29e8ddb loaded successfully\n", + "2024-09-19 14:43:47,803 - graphrag.vector_stores.couchbasedb - INFO - Document c160b9cb27d6408ba6ab20214a2f3f81 loaded successfully\n", + "2024-09-19 14:43:47,804 - graphrag.vector_stores.couchbasedb - INFO - Document 94a964c6992945ebb3833dfdfdc8d655 loaded successfully\n", + "2024-09-19 14:43:47,804 - graphrag.vector_stores.couchbasedb - INFO - Document 89c08e793298442686292454a1abff31 loaded successfully\n", + "2024-09-19 14:43:47,805 - graphrag.vector_stores.couchbasedb - INFO - Document d54956b79dd147f894b67a8b97dcbef0 loaded successfully\n", + "2024-09-19 14:43:47,806 - graphrag.vector_stores.couchbasedb - INFO - Document 26f88ab3e2e04c33a459ad6270ade565 loaded successfully\n", + "2024-09-19 14:43:47,806 - graphrag.vector_stores.couchbasedb - INFO - Document 48c0c4d72da74ff5bb926fa0c856d1a7 loaded successfully\n", + "2024-09-19 14:43:47,808 - graphrag.vector_stores.couchbasedb - INFO - Document 0467928aa65e4a4fba62bdb1467e3a54 loaded successfully\n", + "2024-09-19 14:43:47,808 - graphrag.vector_stores.couchbasedb - INFO - Document b7702b90c7f24190b864e8c6e64612a5 loaded successfully\n", + "2024-09-19 14:43:47,809 - graphrag.vector_stores.couchbasedb - INFO - Document b999ed77e19e4f85b7f1ae79af5c002a loaded successfully\n", + "2024-09-19 14:43:47,809 - graphrag.vector_stores.couchbasedb - INFO - Document 7c49f2710e8b4d3b8dc9310834406ea5 loaded successfully\n", + "2024-09-19 14:43:47,809 - graphrag.vector_stores.couchbasedb - INFO - Document c03ab3ce8cb74ad2a03b94723bfab3c7 loaded successfully\n", + "2024-09-19 14:43:47,810 - graphrag.vector_stores.couchbasedb - INFO - Document 0adb2d9941f34ef7b2f7743cc6225844 loaded successfully\n", + "2024-09-19 14:43:47,816 - graphrag.vector_stores.couchbasedb - INFO - Document 32e6ccab20d94029811127dbbe424c64 loaded successfully\n", + "2024-09-19 14:43:47,817 - graphrag.vector_stores.couchbasedb - INFO - Document 27f9fbe6ad8c4a8b9acee0d3596ed57c loaded successfully\n", + "2024-09-19 14:43:47,819 - graphrag.vector_stores.couchbasedb - INFO - Document d3835bf3dda84ead99deadbeac5d0d7d loaded successfully\n", + "2024-09-19 14:43:47,822 - graphrag.vector_stores.couchbasedb - INFO - Document 3b040bcc19f14e04880ae52881a89c1c loaded successfully\n", + "2024-09-19 14:43:47,823 - graphrag.vector_stores.couchbasedb - INFO - Document de6fa24480894518ab3cbcb66f739266 loaded successfully\n", + "2024-09-19 14:43:47,823 - graphrag.vector_stores.couchbasedb - INFO - Document 3d6b216c14354332b1bf1927ba168986 loaded successfully\n", + "2024-09-19 14:43:47,825 - graphrag.vector_stores.couchbasedb - INFO - Document e657b5121ff8456b9a610cfaead8e0cb loaded successfully\n", + "2024-09-19 14:43:47,826 - graphrag.vector_stores.couchbasedb - INFO - Document 96aad7cb4b7d40e9b7e13b94a67af206 loaded successfully\n", + "2024-09-19 14:43:47,827 - graphrag.vector_stores.couchbasedb - INFO - Document dde131ab575d44dbb55289a6972be18f loaded successfully\n", + "2024-09-19 14:43:47,827 - graphrag.vector_stores.couchbasedb - INFO - Document 147c038aef3e4422acbbc5f7938c4ab8 loaded successfully\n", + "2024-09-19 14:43:47,828 - graphrag.vector_stores.couchbasedb - INFO - Document b785a9025069417f94950ad231bb1441 loaded successfully\n", + "2024-09-19 14:43:47,828 - graphrag.vector_stores.couchbasedb - INFO - Document fbeef791d19b413a9c93c6608286ab63 loaded successfully\n", + "2024-09-19 14:43:47,828 - graphrag.vector_stores.couchbasedb - INFO - Document b462b94ce47a4b8c8fffa33f7242acec loaded successfully\n", + "2024-09-19 14:43:47,829 - graphrag.vector_stores.couchbasedb - INFO - Document 19a7f254a5d64566ab5cc15472df02de loaded successfully\n", + "2024-09-19 14:43:47,829 - graphrag.vector_stores.couchbasedb - INFO - Document 3671ea0dd4e84c1a9b02c5ab2c8f4bac loaded successfully\n", + "2024-09-19 14:43:47,829 - graphrag.vector_stores.couchbasedb - INFO - Document 83a6cb03df6b41d8ad6ee5f6fef5f024 loaded successfully\n", + "2024-09-19 14:43:47,830 - graphrag.vector_stores.couchbasedb - INFO - Document deece7e64b2a4628850d4bb6e394a9c3 loaded successfully\n", + "2024-09-19 14:43:47,830 - graphrag.vector_stores.couchbasedb - INFO - Document 4f3c97517f794ebfb49c4c6315f9cf23 loaded successfully\n", + "2024-09-19 14:43:47,830 - graphrag.vector_stores.couchbasedb - INFO - Document 68105770b523412388424d984e711917 loaded successfully\n", + "2024-09-19 14:43:47,832 - graphrag.vector_stores.couchbasedb - INFO - Document 077d2820ae1845bcbb1803379a3d1eae loaded successfully\n", + "2024-09-19 14:43:47,835 - graphrag.vector_stores.couchbasedb - INFO - Document adf4ee3fbe9b4d0381044838c4f889c8 loaded successfully\n", + "2024-09-19 14:43:47,837 - graphrag.vector_stores.couchbasedb - INFO - Document 07b2425216bd4f0aa4e079827cb48ef5 loaded successfully\n", + "2024-09-19 14:43:47,841 - graphrag.vector_stores.couchbasedb - INFO - Document eae4259b19a741ab9f9f6af18c4a0470 loaded successfully\n", + "2024-09-19 14:43:47,843 - graphrag.vector_stores.couchbasedb - INFO - Document fa3c4204421c48609e52c8de2da4c654 loaded successfully\n", + "2024-09-19 14:43:47,845 - graphrag.vector_stores.couchbasedb - INFO - Document 4a67211867e5464ba45126315a122a8a loaded successfully\n", + "2024-09-19 14:43:47,846 - graphrag.vector_stores.couchbasedb - INFO - Document 1fd3fa8bb5a2408790042ab9573779ee loaded successfully\n", + "2024-09-19 14:43:47,848 - graphrag.vector_stores.couchbasedb - INFO - Document 4119fd06010c494caa07f439b333f4c5 loaded successfully\n", + "2024-09-19 14:43:47,850 - graphrag.vector_stores.couchbasedb - INFO - Document 254770028d7a4fa9877da4ba0ad5ad21 loaded successfully\n", + "2024-09-19 14:43:47,851 - graphrag.vector_stores.couchbasedb - INFO - Document 1745a2485a9443bab76587ad650e9be0 loaded successfully\n", + "2024-09-19 14:43:47,851 - graphrag.vector_stores.couchbasedb - INFO - Document 36a4fcd8efc144e6b8af9a1c7ab8b2ce loaded successfully\n", + "2024-09-19 14:43:47,852 - graphrag.vector_stores.couchbasedb - INFO - Document 6102fc6619ed422ebc42588bfa97355d loaded successfully\n", + "2024-09-19 14:43:47,852 - graphrag.vector_stores.couchbasedb - INFO - Document 32ee140946e5461f9275db664dc541a5 loaded successfully\n", + "2024-09-19 14:43:47,854 - graphrag.vector_stores.couchbasedb - INFO - Document e2bf260115514fb3b252fd879fb3e7be loaded successfully\n", + "2024-09-19 14:43:47,855 - __main__ - INFO - Entity semantic embeddings stored successfully\n" ] } ], @@ -623,8 +714,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:49,333 - __main__ - INFO - Creating search engine\n", - "2024-09-19 14:29:49,342 - __main__ - INFO - Search engine created\n" + "2024-09-19 14:43:47,876 - __main__ - INFO - Creating search engine\n", + "2024-09-19 14:43:47,879 - __main__ - INFO - Search engine created\n" ] } ], @@ -698,14 +789,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:29:49,375 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-19 14:29:49,379 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-19 14:29:50,171 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-19 14:29:50,182 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-19 14:29:50,196 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-19 14:29:50,392 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726736389.3795912. QUERY: Give me a summary about the story\n", - "2024-09-19 14:29:51,353 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-19 14:30:01,762 - __main__ - INFO - Query completed successfully\n" + "2024-09-19 14:43:47,907 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-19 14:43:47,912 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-19 14:43:48,528 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-19 14:43:48,653 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-19 14:43:48,661 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-19 14:43:48,764 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726737227.9126618. QUERY: Give me a summary about the story\n", + "2024-09-19 14:43:49,856 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-19 14:43:59,275 - __main__ - INFO - Query completed successfully\n" ] }, { @@ -717,15 +808,15 @@ "\n", "## Introduction to the Paranormal Military Squad\n", "\n", - "The story revolves around the Paranormal Military Squad, a secretive governmental faction dedicated to investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", + "The story revolves around the Paranormal Military Squad, a secretive governmental faction dedicated to investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The squad's mission is to mediate Earth's contact with alien intelligence, decipher alien signals, ensure humanity's safety, and prepare for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", "\n", "## Key Figures and Their Roles\n", "\n", - "The squad comprises several key figures, each playing a crucial role in the mission. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, emphasizing diligence and strategic planning. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 35); Relationships (3, 53, 31, 77, 85, +more)].\n", + "The Paranormal Military Squad includes several key figures who play crucial roles in the mission. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent. Taylor Cruz oversees the team's efforts, emphasizing diligence and strategic planning. Sam Rivera brings technical expertise, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 35); Relationships (3, 53, 31, 77, 85, +more)].\n", "\n", "## Operation: Dulce\n", "\n", - "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad. It involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (98, 105, 102, 116, 126, +more)].\n", + "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad. It involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with advanced technology specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (98, 105, 102, 116, 126, +more)].\n", "\n", "## Deciphering Alien Signals\n", "\n", @@ -741,7 +832,7 @@ "\n", "## Conclusion\n", "\n", - "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. Through the efforts of key figures like Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, the squad navigates the complexities of alien communication, preparing for potential first contact scenarios that could redefine humanity's place in the cosmos. The mission's global implications underscore the profound significance of their work, as they stand on the precipice of a new era in human history.\n" + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. Through the efforts of key figures like Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, the squad navigates the complexities of alien communication and prepares for the monumental event of first contact. Their mission holds profound implications for the future of humanity, making it a pivotal chapter in the cosmic play [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (40, 52, 59, 65, 68, +more)].\n" ] } ], diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index 47b4ebf975..001dab3075 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -29,8 +29,8 @@ def __init__( self, collection_name: str, bucket_name: str, - scope_name: str, - index_name: str, + scope_name: str = "_default", + index_name: str = "graphrag_index", text_key: str = "text", embedding_key: str = "embedding", scoped_index: bool = True, @@ -68,7 +68,12 @@ def connect(self, **kwargs: Any) -> None: self._cluster = Cluster(connection_string, cluster_options) self.db_connection = self._cluster self.bucket = self._cluster.bucket(self.bucket_name) - self.scope = self.bucket.scope(self.scope_name) + + if self.scoped_index and self.scope_name: + self.scope = self.bucket.scope(self.scope_name) + else: + self.scope = self.bucket.default_scope() + self.document_collection = self.scope.collection(self.collection_name) logger.info("Successfully connected to Couchbase") except Exception as e: @@ -92,27 +97,19 @@ def load_documents(self, documents: list[VectorStoreDocument]) -> None: try: result = self.document_collection.upsert_multi(batch) - # Assuming the result has an 'all_ok' attribute - if hasattr(result, "all_ok"): - if result.all_ok: - logger.info("Successfully loaded all %d documents", len(batch)) - else: - logger.warning("Some documents failed to load") - else: - logger.info( - "Unable to determine success status of document loading" - ) - - # If there's a way to access individual results, log them - if hasattr(result, "__iter__"): - for key, value in result: - logger.info( - "Document %s: %s", - key, - "Success" if value.success else "Failed", - ) - except Exception: - logger.exception("Error occurred while loading documents") + if hasattr(result, "results"): + for doc_id, result_item in result.results.items(): + if result_item.success: + logger.info("Document %s loaded successfully", doc_id) + else: + logger.error( + "Failed to load document %s: %s", + doc_id, + result_item.err, + ) + + except Exception as e: + logger.exception("Error occurred while loading documents: %s", e) else: logger.warning("No valid documents to load") From da1cf77092c81156be8158d6acc19d918d24fed2 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 12:42:58 +0530 Subject: [PATCH 14/25] updated documentation of graph RAG with Couchbase vector store --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 264 +++++++++--------- 1 file changed, 128 insertions(+), 136 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 9f42233d04..37d5dd8fc6 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -6,10 +6,8 @@ "id": "fbw833Y2gckr" }, "source": [ - "# Tutorial on GraphRAG Local Search with Couchbase Vector Store\n", - "\n", - "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying structured data. \n", - "This is useful when you need to search through structured data using natural language queries, leveraging both machine learning and a database.This approach is useful for searching structured data using natural language queries, leveraging both machine learning and a database.\n", + "# Tutorial on RAG (Retrieval-Augmented Generation) Local Search with Couchbase Vector Store\n", + "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying textual data.\n", "\n", "## Setting up Couchbase\n", "\n", @@ -33,10 +31,10 @@ "Local and global search are two approaches used in Graph RAG (Retrieval-Augmented Generation) systems:\n", "\n", "### Local Search\n", - "This method retrieves information from a subset of the graph that is closely connected to the current context or query. It focuses on exploring the immediate neighborhood of relevant nodes.\n", + "Local Search for reasoning about specific entities by fanning-out to their neighbors and associated concepts.\n", "\n", "### Global Search\n", - "This approach searches the entire graph or a large portion of it to find relevant information, regardless of how directly connected it is to the current context.\n", + "Global Search for reasoning about holistic questions about the corpus by leveraging the community summaries.\n", "\n", "## Couchbase as a Vector Store for Local Search\n", "\n", @@ -149,12 +147,8 @@ "id": "VlnoR17Tgc7b" }, "source": [ - "# Loading Data from Parquet Files\n", - "In this part, we load data from Parquet files into a dictionary.We define functions that will handle the loading and processing of each paraquet.\n", - "\n", - "read_indexer_entities, read_indexer_relationships, etc., are custom functions responsible for reading specific parts of the data, such as entities and relationships.\n", - "\n", - "We use pandas to load the data from the files, and if a file is not found, we log a warning and continue." + "## Load text units and graph data tables as context for local search\n", + "In this part, we load data from Parquet files into a dictionary.We define functions that will handle the loading and processing of each paraquet." ] }, { @@ -166,7 +160,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,593 - __main__ - INFO - Loading data from parquet files\n" + "2024-09-20 12:41:13,146 - __main__ - INFO - Loading data from parquet files\n" ] } ], @@ -209,7 +203,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,698 - __main__ - INFO - Entities table loaded successfully\n" + "2024-09-20 12:41:13,269 - __main__ - INFO - Entities table loaded successfully\n" ] } ], @@ -246,7 +240,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,775 - __main__ - INFO - Relationships table loaded successfully\n" + "2024-09-20 12:41:13,309 - __main__ - INFO - Relationships table loaded successfully\n" ] } ], @@ -278,7 +272,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,802 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" + "2024-09-20 12:41:13,326 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" ] } ], @@ -310,7 +304,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,885 - __main__ - INFO - Reports table loaded successfully\n" + "2024-09-20 12:41:13,397 - __main__ - INFO - Reports table loaded successfully\n" ] } ], @@ -345,7 +339,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,930 - __main__ - INFO - Text units table loaded successfully\n" + "2024-09-20 12:41:13,474 - __main__ - INFO - Text units table loaded successfully\n" ] }, { @@ -394,10 +388,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:46,952 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-19 14:43:46,955 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-19 14:43:47,008 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-19 14:43:47,010 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + "2024-09-20 12:41:13,536 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-20 12:41:13,538 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-20 12:41:13,594 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-20 12:41:13,596 - __main__ - INFO - CouchbaseVectorStore setup completed\n" ] } ], @@ -450,8 +444,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:47,026 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-19 14:43:47,564 - __main__ - INFO - LLM and embedding models setup completed\n" + "2024-09-20 12:41:13,624 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-20 12:41:17,417 - __main__ - INFO - LLM and embedding models setup completed\n" ] } ], @@ -507,101 +501,101 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:47,576 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-19 14:43:47,579 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", - "2024-09-19 14:43:47,736 - graphrag.vector_stores.couchbasedb - INFO - Document d64ed762ea924caa95c8d06f072a9a96 loaded successfully\n", - "2024-09-19 14:43:47,739 - graphrag.vector_stores.couchbasedb - INFO - Document bc0e3f075a4c4ebbb7c7b152b65a5625 loaded successfully\n", - "2024-09-19 14:43:47,741 - graphrag.vector_stores.couchbasedb - INFO - Document 3d0dcbc8971b415ea18065edc4d8c8ef loaded successfully\n", - "2024-09-19 14:43:47,743 - graphrag.vector_stores.couchbasedb - INFO - Document 53af055f068244d0ac861b2e89376495 loaded successfully\n", - "2024-09-19 14:43:47,748 - graphrag.vector_stores.couchbasedb - INFO - Document b45241d70f0e43fca764df95b2b81f77 loaded successfully\n", - "2024-09-19 14:43:47,750 - graphrag.vector_stores.couchbasedb - INFO - Document e22d1d1cd8d14f12b81828d940f40d70 loaded successfully\n", - "2024-09-19 14:43:47,751 - graphrag.vector_stores.couchbasedb - INFO - Document 8d141c0b80f74b79a05eed7fe161fe49 loaded successfully\n", - "2024-09-19 14:43:47,753 - graphrag.vector_stores.couchbasedb - INFO - Document babe97e1d9784cffa1c85abc1e588126 loaded successfully\n", - "2024-09-19 14:43:47,754 - graphrag.vector_stores.couchbasedb - INFO - Document bf4e255cdac94ccc83a56435a5e4b075 loaded successfully\n", - "2024-09-19 14:43:47,755 - graphrag.vector_stores.couchbasedb - INFO - Document e69dc259edb944ea9ea41264b9fcfe59 loaded successfully\n", - "2024-09-19 14:43:47,758 - graphrag.vector_stores.couchbasedb - INFO - Document 6fae5ee1a831468aa585a1ea09095998 loaded successfully\n", - "2024-09-19 14:43:47,760 - graphrag.vector_stores.couchbasedb - INFO - Document 3138f39f2bcd43a69e0697cd3b05bc4d loaded successfully\n", - "2024-09-19 14:43:47,761 - graphrag.vector_stores.couchbasedb - INFO - Document c9b8ce91fc2945b4907fe35519339cac loaded successfully\n", - "2024-09-19 14:43:47,763 - graphrag.vector_stores.couchbasedb - INFO - Document c9632a35146940c2a86167c7726d35e9 loaded successfully\n", - "2024-09-19 14:43:47,765 - graphrag.vector_stores.couchbasedb - INFO - Document d91a266f766b4737a06b0fda588ba40b loaded successfully\n", - "2024-09-19 14:43:47,767 - graphrag.vector_stores.couchbasedb - INFO - Document 56d0e5ebe79e4814bd1463cf6ca21394 loaded successfully\n", - "2024-09-19 14:43:47,767 - graphrag.vector_stores.couchbasedb - INFO - Document 6b02373137fd438ba96af28f735cdbdb loaded successfully\n", - "2024-09-19 14:43:47,768 - graphrag.vector_stores.couchbasedb - INFO - Document 1eb829d0ace042089f0746f78729696c loaded successfully\n", - "2024-09-19 14:43:47,768 - graphrag.vector_stores.couchbasedb - INFO - Document 958beecdb5bb4060948415ffd75d2b03 loaded successfully\n", - "2024-09-19 14:43:47,769 - graphrag.vector_stores.couchbasedb - INFO - Document 9ab48505fb1b487babd0d1f6d3a3f980 loaded successfully\n", - "2024-09-19 14:43:47,769 - graphrag.vector_stores.couchbasedb - INFO - Document 3b6cd96a27304614850709aba1c9598b loaded successfully\n", - "2024-09-19 14:43:47,769 - graphrag.vector_stores.couchbasedb - INFO - Document f1c6eed066f24cbdb376b910fce29ed4 loaded successfully\n", - "2024-09-19 14:43:47,770 - graphrag.vector_stores.couchbasedb - INFO - Document 3ce7c210a21b4deebad7cc9308148d86 loaded successfully\n", - "2024-09-19 14:43:47,770 - graphrag.vector_stores.couchbasedb - INFO - Document c6d1e4f56c2843e89cf0b91c10bb6de2 loaded successfully\n", - "2024-09-19 14:43:47,771 - graphrag.vector_stores.couchbasedb - INFO - Document 1033a18c45aa4584b2aef6ab96890351 loaded successfully\n", - "2024-09-19 14:43:47,772 - graphrag.vector_stores.couchbasedb - INFO - Document ed6d2eee9d7b4f5db466b1f6404d31cc loaded successfully\n", - "2024-09-19 14:43:47,772 - graphrag.vector_stores.couchbasedb - INFO - Document d2b629c0396f4180a03e16ddf3818589 loaded successfully\n", - "2024-09-19 14:43:47,773 - graphrag.vector_stores.couchbasedb - INFO - Document f7e11b0e297a44a896dc67928368f600 loaded successfully\n", - "2024-09-19 14:43:47,773 - graphrag.vector_stores.couchbasedb - INFO - Document fc01e9baa80e417c9206f941bb279407 loaded successfully\n", - "2024-09-19 14:43:47,773 - graphrag.vector_stores.couchbasedb - INFO - Document 9646481f66ce4fd2b08c2eddda42fc82 loaded successfully\n", - "2024-09-19 14:43:47,774 - graphrag.vector_stores.couchbasedb - INFO - Document 85c79fd84f5e4f918471c386852204c5 loaded successfully\n", - "2024-09-19 14:43:47,774 - graphrag.vector_stores.couchbasedb - INFO - Document de9e343f2e334d88a8ac7f8813a915e5 loaded successfully\n", - "2024-09-19 14:43:47,775 - graphrag.vector_stores.couchbasedb - INFO - Document 04dbbb2283b845baaeac0eaf0c34c9da loaded successfully\n", - "2024-09-19 14:43:47,775 - graphrag.vector_stores.couchbasedb - INFO - Document e7ffaee9d31d4d3c96e04f911d0a8f9e loaded successfully\n", - "2024-09-19 14:43:47,775 - graphrag.vector_stores.couchbasedb - INFO - Document e1fd0e904a53409aada44442f23a51cb loaded successfully\n", - "2024-09-19 14:43:47,778 - graphrag.vector_stores.couchbasedb - INFO - Document 1c109cfdc370463eb6d537e5b7b382fb loaded successfully\n", - "2024-09-19 14:43:47,780 - graphrag.vector_stores.couchbasedb - INFO - Document de988724cfdf45cebfba3b13c43ceede loaded successfully\n", - "2024-09-19 14:43:47,781 - graphrag.vector_stores.couchbasedb - INFO - Document 273daeec8cad41e6b3e450447db58ee7 loaded successfully\n", - "2024-09-19 14:43:47,782 - graphrag.vector_stores.couchbasedb - INFO - Document e2f5735c7d714423a2c4f61ca2644626 loaded successfully\n", - "2024-09-19 14:43:47,785 - graphrag.vector_stores.couchbasedb - INFO - Document 404309e89a5241d6bff42c05a45df206 loaded successfully\n", - "2024-09-19 14:43:47,790 - graphrag.vector_stores.couchbasedb - INFO - Document 015e7b58d1a14b44beab3bbc9f912c18 loaded successfully\n", - "2024-09-19 14:43:47,795 - graphrag.vector_stores.couchbasedb - INFO - Document 23527cd679ff4d5a988d52e7cd056078 loaded successfully\n", - "2024-09-19 14:43:47,800 - graphrag.vector_stores.couchbasedb - INFO - Document 148fffeb994541b2b4b6dcefda7001a8 loaded successfully\n", - "2024-09-19 14:43:47,801 - graphrag.vector_stores.couchbasedb - INFO - Document 2670deebfa3f4d69bb82c28ab250a209 loaded successfully\n", - "2024-09-19 14:43:47,802 - graphrag.vector_stores.couchbasedb - INFO - Document 1943f245ee4243bdbfbd2fd619ae824a loaded successfully\n", - "2024-09-19 14:43:47,802 - graphrag.vector_stores.couchbasedb - INFO - Document ef32c4b208d041cc856f6837915dc1b0 loaded successfully\n", - "2024-09-19 14:43:47,803 - graphrag.vector_stores.couchbasedb - INFO - Document 17ed1d92075643579a712cc6c29e8ddb loaded successfully\n", - "2024-09-19 14:43:47,803 - graphrag.vector_stores.couchbasedb - INFO - Document c160b9cb27d6408ba6ab20214a2f3f81 loaded successfully\n", - "2024-09-19 14:43:47,804 - graphrag.vector_stores.couchbasedb - INFO - Document 94a964c6992945ebb3833dfdfdc8d655 loaded successfully\n", - "2024-09-19 14:43:47,804 - graphrag.vector_stores.couchbasedb - INFO - Document 89c08e793298442686292454a1abff31 loaded successfully\n", - "2024-09-19 14:43:47,805 - graphrag.vector_stores.couchbasedb - INFO - Document d54956b79dd147f894b67a8b97dcbef0 loaded successfully\n", - "2024-09-19 14:43:47,806 - graphrag.vector_stores.couchbasedb - INFO - Document 26f88ab3e2e04c33a459ad6270ade565 loaded successfully\n", - "2024-09-19 14:43:47,806 - graphrag.vector_stores.couchbasedb - INFO - Document 48c0c4d72da74ff5bb926fa0c856d1a7 loaded successfully\n", - "2024-09-19 14:43:47,808 - graphrag.vector_stores.couchbasedb - INFO - Document 0467928aa65e4a4fba62bdb1467e3a54 loaded successfully\n", - "2024-09-19 14:43:47,808 - graphrag.vector_stores.couchbasedb - INFO - Document b7702b90c7f24190b864e8c6e64612a5 loaded successfully\n", - "2024-09-19 14:43:47,809 - graphrag.vector_stores.couchbasedb - INFO - Document b999ed77e19e4f85b7f1ae79af5c002a loaded successfully\n", - "2024-09-19 14:43:47,809 - graphrag.vector_stores.couchbasedb - INFO - Document 7c49f2710e8b4d3b8dc9310834406ea5 loaded successfully\n", - "2024-09-19 14:43:47,809 - graphrag.vector_stores.couchbasedb - INFO - Document c03ab3ce8cb74ad2a03b94723bfab3c7 loaded successfully\n", - "2024-09-19 14:43:47,810 - graphrag.vector_stores.couchbasedb - INFO - Document 0adb2d9941f34ef7b2f7743cc6225844 loaded successfully\n", - "2024-09-19 14:43:47,816 - graphrag.vector_stores.couchbasedb - INFO - Document 32e6ccab20d94029811127dbbe424c64 loaded successfully\n", - "2024-09-19 14:43:47,817 - graphrag.vector_stores.couchbasedb - INFO - Document 27f9fbe6ad8c4a8b9acee0d3596ed57c loaded successfully\n", - "2024-09-19 14:43:47,819 - graphrag.vector_stores.couchbasedb - INFO - Document d3835bf3dda84ead99deadbeac5d0d7d loaded successfully\n", - "2024-09-19 14:43:47,822 - graphrag.vector_stores.couchbasedb - INFO - Document 3b040bcc19f14e04880ae52881a89c1c loaded successfully\n", - "2024-09-19 14:43:47,823 - graphrag.vector_stores.couchbasedb - INFO - Document de6fa24480894518ab3cbcb66f739266 loaded successfully\n", - "2024-09-19 14:43:47,823 - graphrag.vector_stores.couchbasedb - INFO - Document 3d6b216c14354332b1bf1927ba168986 loaded successfully\n", - "2024-09-19 14:43:47,825 - graphrag.vector_stores.couchbasedb - INFO - Document e657b5121ff8456b9a610cfaead8e0cb loaded successfully\n", - "2024-09-19 14:43:47,826 - graphrag.vector_stores.couchbasedb - INFO - Document 96aad7cb4b7d40e9b7e13b94a67af206 loaded successfully\n", - "2024-09-19 14:43:47,827 - graphrag.vector_stores.couchbasedb - INFO - Document dde131ab575d44dbb55289a6972be18f loaded successfully\n", - "2024-09-19 14:43:47,827 - graphrag.vector_stores.couchbasedb - INFO - Document 147c038aef3e4422acbbc5f7938c4ab8 loaded successfully\n", - "2024-09-19 14:43:47,828 - graphrag.vector_stores.couchbasedb - INFO - Document b785a9025069417f94950ad231bb1441 loaded successfully\n", - "2024-09-19 14:43:47,828 - graphrag.vector_stores.couchbasedb - INFO - Document fbeef791d19b413a9c93c6608286ab63 loaded successfully\n", - "2024-09-19 14:43:47,828 - graphrag.vector_stores.couchbasedb - INFO - Document b462b94ce47a4b8c8fffa33f7242acec loaded successfully\n", - "2024-09-19 14:43:47,829 - graphrag.vector_stores.couchbasedb - INFO - Document 19a7f254a5d64566ab5cc15472df02de loaded successfully\n", - "2024-09-19 14:43:47,829 - graphrag.vector_stores.couchbasedb - INFO - Document 3671ea0dd4e84c1a9b02c5ab2c8f4bac loaded successfully\n", - "2024-09-19 14:43:47,829 - graphrag.vector_stores.couchbasedb - INFO - Document 83a6cb03df6b41d8ad6ee5f6fef5f024 loaded successfully\n", - "2024-09-19 14:43:47,830 - graphrag.vector_stores.couchbasedb - INFO - Document deece7e64b2a4628850d4bb6e394a9c3 loaded successfully\n", - "2024-09-19 14:43:47,830 - graphrag.vector_stores.couchbasedb - INFO - Document 4f3c97517f794ebfb49c4c6315f9cf23 loaded successfully\n", - "2024-09-19 14:43:47,830 - graphrag.vector_stores.couchbasedb - INFO - Document 68105770b523412388424d984e711917 loaded successfully\n", - "2024-09-19 14:43:47,832 - graphrag.vector_stores.couchbasedb - INFO - Document 077d2820ae1845bcbb1803379a3d1eae loaded successfully\n", - "2024-09-19 14:43:47,835 - graphrag.vector_stores.couchbasedb - INFO - Document adf4ee3fbe9b4d0381044838c4f889c8 loaded successfully\n", - "2024-09-19 14:43:47,837 - graphrag.vector_stores.couchbasedb - INFO - Document 07b2425216bd4f0aa4e079827cb48ef5 loaded successfully\n", - "2024-09-19 14:43:47,841 - graphrag.vector_stores.couchbasedb - INFO - Document eae4259b19a741ab9f9f6af18c4a0470 loaded successfully\n", - "2024-09-19 14:43:47,843 - graphrag.vector_stores.couchbasedb - INFO - Document fa3c4204421c48609e52c8de2da4c654 loaded successfully\n", - "2024-09-19 14:43:47,845 - graphrag.vector_stores.couchbasedb - INFO - Document 4a67211867e5464ba45126315a122a8a loaded successfully\n", - "2024-09-19 14:43:47,846 - graphrag.vector_stores.couchbasedb - INFO - Document 1fd3fa8bb5a2408790042ab9573779ee loaded successfully\n", - "2024-09-19 14:43:47,848 - graphrag.vector_stores.couchbasedb - INFO - Document 4119fd06010c494caa07f439b333f4c5 loaded successfully\n", - "2024-09-19 14:43:47,850 - graphrag.vector_stores.couchbasedb - INFO - Document 254770028d7a4fa9877da4ba0ad5ad21 loaded successfully\n", - "2024-09-19 14:43:47,851 - graphrag.vector_stores.couchbasedb - INFO - Document 1745a2485a9443bab76587ad650e9be0 loaded successfully\n", - "2024-09-19 14:43:47,851 - graphrag.vector_stores.couchbasedb - INFO - Document 36a4fcd8efc144e6b8af9a1c7ab8b2ce loaded successfully\n", - "2024-09-19 14:43:47,852 - graphrag.vector_stores.couchbasedb - INFO - Document 6102fc6619ed422ebc42588bfa97355d loaded successfully\n", - "2024-09-19 14:43:47,852 - graphrag.vector_stores.couchbasedb - INFO - Document 32ee140946e5461f9275db664dc541a5 loaded successfully\n", - "2024-09-19 14:43:47,854 - graphrag.vector_stores.couchbasedb - INFO - Document e2bf260115514fb3b252fd879fb3e7be loaded successfully\n", - "2024-09-19 14:43:47,855 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + "2024-09-20 12:41:17,425 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-20 12:41:17,430 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", + "2024-09-20 12:41:17,685 - graphrag.vector_stores.couchbasedb - INFO - Document d64ed762ea924caa95c8d06f072a9a96 loaded successfully\n", + "2024-09-20 12:41:17,687 - graphrag.vector_stores.couchbasedb - INFO - Document bc0e3f075a4c4ebbb7c7b152b65a5625 loaded successfully\n", + "2024-09-20 12:41:17,688 - graphrag.vector_stores.couchbasedb - INFO - Document 53af055f068244d0ac861b2e89376495 loaded successfully\n", + "2024-09-20 12:41:17,689 - graphrag.vector_stores.couchbasedb - INFO - Document 3d0dcbc8971b415ea18065edc4d8c8ef loaded successfully\n", + "2024-09-20 12:41:17,690 - graphrag.vector_stores.couchbasedb - INFO - Document e22d1d1cd8d14f12b81828d940f40d70 loaded successfully\n", + "2024-09-20 12:41:17,692 - graphrag.vector_stores.couchbasedb - INFO - Document b45241d70f0e43fca764df95b2b81f77 loaded successfully\n", + "2024-09-20 12:41:17,693 - graphrag.vector_stores.couchbasedb - INFO - Document babe97e1d9784cffa1c85abc1e588126 loaded successfully\n", + "2024-09-20 12:41:17,695 - graphrag.vector_stores.couchbasedb - INFO - Document 8d141c0b80f74b79a05eed7fe161fe49 loaded successfully\n", + "2024-09-20 12:41:17,699 - graphrag.vector_stores.couchbasedb - INFO - Document bf4e255cdac94ccc83a56435a5e4b075 loaded successfully\n", + "2024-09-20 12:41:17,704 - graphrag.vector_stores.couchbasedb - INFO - Document e69dc259edb944ea9ea41264b9fcfe59 loaded successfully\n", + "2024-09-20 12:41:17,706 - graphrag.vector_stores.couchbasedb - INFO - Document 6fae5ee1a831468aa585a1ea09095998 loaded successfully\n", + "2024-09-20 12:41:17,709 - graphrag.vector_stores.couchbasedb - INFO - Document 3138f39f2bcd43a69e0697cd3b05bc4d loaded successfully\n", + "2024-09-20 12:41:17,711 - graphrag.vector_stores.couchbasedb - INFO - Document c9b8ce91fc2945b4907fe35519339cac loaded successfully\n", + "2024-09-20 12:41:17,720 - graphrag.vector_stores.couchbasedb - INFO - Document c9632a35146940c2a86167c7726d35e9 loaded successfully\n", + "2024-09-20 12:41:17,725 - graphrag.vector_stores.couchbasedb - INFO - Document d91a266f766b4737a06b0fda588ba40b loaded successfully\n", + "2024-09-20 12:41:17,729 - graphrag.vector_stores.couchbasedb - INFO - Document 56d0e5ebe79e4814bd1463cf6ca21394 loaded successfully\n", + "2024-09-20 12:41:17,733 - graphrag.vector_stores.couchbasedb - INFO - Document 6b02373137fd438ba96af28f735cdbdb loaded successfully\n", + "2024-09-20 12:41:17,738 - graphrag.vector_stores.couchbasedb - INFO - Document 1eb829d0ace042089f0746f78729696c loaded successfully\n", + "2024-09-20 12:41:17,746 - graphrag.vector_stores.couchbasedb - INFO - Document 958beecdb5bb4060948415ffd75d2b03 loaded successfully\n", + "2024-09-20 12:41:17,751 - graphrag.vector_stores.couchbasedb - INFO - Document 9ab48505fb1b487babd0d1f6d3a3f980 loaded successfully\n", + "2024-09-20 12:41:17,759 - graphrag.vector_stores.couchbasedb - INFO - Document 3b6cd96a27304614850709aba1c9598b loaded successfully\n", + "2024-09-20 12:41:17,769 - graphrag.vector_stores.couchbasedb - INFO - Document f1c6eed066f24cbdb376b910fce29ed4 loaded successfully\n", + "2024-09-20 12:41:17,779 - graphrag.vector_stores.couchbasedb - INFO - Document 3ce7c210a21b4deebad7cc9308148d86 loaded successfully\n", + "2024-09-20 12:41:17,780 - graphrag.vector_stores.couchbasedb - INFO - Document c6d1e4f56c2843e89cf0b91c10bb6de2 loaded successfully\n", + "2024-09-20 12:41:17,783 - graphrag.vector_stores.couchbasedb - INFO - Document 1033a18c45aa4584b2aef6ab96890351 loaded successfully\n", + "2024-09-20 12:41:17,786 - graphrag.vector_stores.couchbasedb - INFO - Document ed6d2eee9d7b4f5db466b1f6404d31cc loaded successfully\n", + "2024-09-20 12:41:17,797 - graphrag.vector_stores.couchbasedb - INFO - Document d2b629c0396f4180a03e16ddf3818589 loaded successfully\n", + "2024-09-20 12:41:17,804 - graphrag.vector_stores.couchbasedb - INFO - Document f7e11b0e297a44a896dc67928368f600 loaded successfully\n", + "2024-09-20 12:41:17,807 - graphrag.vector_stores.couchbasedb - INFO - Document fc01e9baa80e417c9206f941bb279407 loaded successfully\n", + "2024-09-20 12:41:17,811 - graphrag.vector_stores.couchbasedb - INFO - Document 9646481f66ce4fd2b08c2eddda42fc82 loaded successfully\n", + "2024-09-20 12:41:17,816 - graphrag.vector_stores.couchbasedb - INFO - Document 85c79fd84f5e4f918471c386852204c5 loaded successfully\n", + "2024-09-20 12:41:17,820 - graphrag.vector_stores.couchbasedb - INFO - Document de9e343f2e334d88a8ac7f8813a915e5 loaded successfully\n", + "2024-09-20 12:41:17,823 - graphrag.vector_stores.couchbasedb - INFO - Document 04dbbb2283b845baaeac0eaf0c34c9da loaded successfully\n", + "2024-09-20 12:41:17,827 - graphrag.vector_stores.couchbasedb - INFO - Document e7ffaee9d31d4d3c96e04f911d0a8f9e loaded successfully\n", + "2024-09-20 12:41:17,830 - graphrag.vector_stores.couchbasedb - INFO - Document e1fd0e904a53409aada44442f23a51cb loaded successfully\n", + "2024-09-20 12:41:17,835 - graphrag.vector_stores.couchbasedb - INFO - Document 1c109cfdc370463eb6d537e5b7b382fb loaded successfully\n", + "2024-09-20 12:41:17,841 - graphrag.vector_stores.couchbasedb - INFO - Document de988724cfdf45cebfba3b13c43ceede loaded successfully\n", + "2024-09-20 12:41:17,846 - graphrag.vector_stores.couchbasedb - INFO - Document 273daeec8cad41e6b3e450447db58ee7 loaded successfully\n", + "2024-09-20 12:41:17,850 - graphrag.vector_stores.couchbasedb - INFO - Document e2f5735c7d714423a2c4f61ca2644626 loaded successfully\n", + "2024-09-20 12:41:17,855 - graphrag.vector_stores.couchbasedb - INFO - Document 404309e89a5241d6bff42c05a45df206 loaded successfully\n", + "2024-09-20 12:41:17,859 - graphrag.vector_stores.couchbasedb - INFO - Document 015e7b58d1a14b44beab3bbc9f912c18 loaded successfully\n", + "2024-09-20 12:41:17,866 - graphrag.vector_stores.couchbasedb - INFO - Document 23527cd679ff4d5a988d52e7cd056078 loaded successfully\n", + "2024-09-20 12:41:17,873 - graphrag.vector_stores.couchbasedb - INFO - Document 148fffeb994541b2b4b6dcefda7001a8 loaded successfully\n", + "2024-09-20 12:41:17,876 - graphrag.vector_stores.couchbasedb - INFO - Document 2670deebfa3f4d69bb82c28ab250a209 loaded successfully\n", + "2024-09-20 12:41:17,880 - graphrag.vector_stores.couchbasedb - INFO - Document 1943f245ee4243bdbfbd2fd619ae824a loaded successfully\n", + "2024-09-20 12:41:17,886 - graphrag.vector_stores.couchbasedb - INFO - Document ef32c4b208d041cc856f6837915dc1b0 loaded successfully\n", + "2024-09-20 12:41:17,890 - graphrag.vector_stores.couchbasedb - INFO - Document 17ed1d92075643579a712cc6c29e8ddb loaded successfully\n", + "2024-09-20 12:41:17,895 - graphrag.vector_stores.couchbasedb - INFO - Document c160b9cb27d6408ba6ab20214a2f3f81 loaded successfully\n", + "2024-09-20 12:41:17,900 - graphrag.vector_stores.couchbasedb - INFO - Document 94a964c6992945ebb3833dfdfdc8d655 loaded successfully\n", + "2024-09-20 12:41:17,903 - graphrag.vector_stores.couchbasedb - INFO - Document 89c08e793298442686292454a1abff31 loaded successfully\n", + "2024-09-20 12:41:17,909 - graphrag.vector_stores.couchbasedb - INFO - Document d54956b79dd147f894b67a8b97dcbef0 loaded successfully\n", + "2024-09-20 12:41:17,914 - graphrag.vector_stores.couchbasedb - INFO - Document 26f88ab3e2e04c33a459ad6270ade565 loaded successfully\n", + "2024-09-20 12:41:17,919 - graphrag.vector_stores.couchbasedb - INFO - Document 48c0c4d72da74ff5bb926fa0c856d1a7 loaded successfully\n", + "2024-09-20 12:41:17,923 - graphrag.vector_stores.couchbasedb - INFO - Document 0467928aa65e4a4fba62bdb1467e3a54 loaded successfully\n", + "2024-09-20 12:41:17,930 - graphrag.vector_stores.couchbasedb - INFO - Document b7702b90c7f24190b864e8c6e64612a5 loaded successfully\n", + "2024-09-20 12:41:17,935 - graphrag.vector_stores.couchbasedb - INFO - Document b999ed77e19e4f85b7f1ae79af5c002a loaded successfully\n", + "2024-09-20 12:41:17,938 - graphrag.vector_stores.couchbasedb - INFO - Document 7c49f2710e8b4d3b8dc9310834406ea5 loaded successfully\n", + "2024-09-20 12:41:17,941 - graphrag.vector_stores.couchbasedb - INFO - Document c03ab3ce8cb74ad2a03b94723bfab3c7 loaded successfully\n", + "2024-09-20 12:41:17,947 - graphrag.vector_stores.couchbasedb - INFO - Document 0adb2d9941f34ef7b2f7743cc6225844 loaded successfully\n", + "2024-09-20 12:41:17,952 - graphrag.vector_stores.couchbasedb - INFO - Document 32e6ccab20d94029811127dbbe424c64 loaded successfully\n", + "2024-09-20 12:41:17,955 - graphrag.vector_stores.couchbasedb - INFO - Document 27f9fbe6ad8c4a8b9acee0d3596ed57c loaded successfully\n", + "2024-09-20 12:41:17,959 - graphrag.vector_stores.couchbasedb - INFO - Document d3835bf3dda84ead99deadbeac5d0d7d loaded successfully\n", + "2024-09-20 12:41:17,964 - graphrag.vector_stores.couchbasedb - INFO - Document 3b040bcc19f14e04880ae52881a89c1c loaded successfully\n", + "2024-09-20 12:41:17,968 - graphrag.vector_stores.couchbasedb - INFO - Document de6fa24480894518ab3cbcb66f739266 loaded successfully\n", + "2024-09-20 12:41:17,976 - graphrag.vector_stores.couchbasedb - INFO - Document 3d6b216c14354332b1bf1927ba168986 loaded successfully\n", + "2024-09-20 12:41:17,980 - graphrag.vector_stores.couchbasedb - INFO - Document e657b5121ff8456b9a610cfaead8e0cb loaded successfully\n", + "2024-09-20 12:41:17,983 - graphrag.vector_stores.couchbasedb - INFO - Document 96aad7cb4b7d40e9b7e13b94a67af206 loaded successfully\n", + "2024-09-20 12:41:17,987 - graphrag.vector_stores.couchbasedb - INFO - Document dde131ab575d44dbb55289a6972be18f loaded successfully\n", + "2024-09-20 12:41:17,996 - graphrag.vector_stores.couchbasedb - INFO - Document 147c038aef3e4422acbbc5f7938c4ab8 loaded successfully\n", + "2024-09-20 12:41:18,000 - graphrag.vector_stores.couchbasedb - INFO - Document b785a9025069417f94950ad231bb1441 loaded successfully\n", + "2024-09-20 12:41:18,004 - graphrag.vector_stores.couchbasedb - INFO - Document fbeef791d19b413a9c93c6608286ab63 loaded successfully\n", + "2024-09-20 12:41:18,006 - graphrag.vector_stores.couchbasedb - INFO - Document b462b94ce47a4b8c8fffa33f7242acec loaded successfully\n", + "2024-09-20 12:41:18,009 - graphrag.vector_stores.couchbasedb - INFO - Document 19a7f254a5d64566ab5cc15472df02de loaded successfully\n", + "2024-09-20 12:41:18,014 - graphrag.vector_stores.couchbasedb - INFO - Document 3671ea0dd4e84c1a9b02c5ab2c8f4bac loaded successfully\n", + "2024-09-20 12:41:18,017 - graphrag.vector_stores.couchbasedb - INFO - Document 83a6cb03df6b41d8ad6ee5f6fef5f024 loaded successfully\n", + "2024-09-20 12:41:18,020 - graphrag.vector_stores.couchbasedb - INFO - Document deece7e64b2a4628850d4bb6e394a9c3 loaded successfully\n", + "2024-09-20 12:41:18,023 - graphrag.vector_stores.couchbasedb - INFO - Document 4f3c97517f794ebfb49c4c6315f9cf23 loaded successfully\n", + "2024-09-20 12:41:18,029 - graphrag.vector_stores.couchbasedb - INFO - Document 68105770b523412388424d984e711917 loaded successfully\n", + "2024-09-20 12:41:18,033 - graphrag.vector_stores.couchbasedb - INFO - Document 077d2820ae1845bcbb1803379a3d1eae loaded successfully\n", + "2024-09-20 12:41:18,035 - graphrag.vector_stores.couchbasedb - INFO - Document adf4ee3fbe9b4d0381044838c4f889c8 loaded successfully\n", + "2024-09-20 12:41:18,040 - graphrag.vector_stores.couchbasedb - INFO - Document 07b2425216bd4f0aa4e079827cb48ef5 loaded successfully\n", + "2024-09-20 12:41:18,042 - graphrag.vector_stores.couchbasedb - INFO - Document eae4259b19a741ab9f9f6af18c4a0470 loaded successfully\n", + "2024-09-20 12:41:18,046 - graphrag.vector_stores.couchbasedb - INFO - Document fa3c4204421c48609e52c8de2da4c654 loaded successfully\n", + "2024-09-20 12:41:18,049 - graphrag.vector_stores.couchbasedb - INFO - Document 4a67211867e5464ba45126315a122a8a loaded successfully\n", + "2024-09-20 12:41:18,053 - graphrag.vector_stores.couchbasedb - INFO - Document 1fd3fa8bb5a2408790042ab9573779ee loaded successfully\n", + "2024-09-20 12:41:18,058 - graphrag.vector_stores.couchbasedb - INFO - Document 4119fd06010c494caa07f439b333f4c5 loaded successfully\n", + "2024-09-20 12:41:18,064 - graphrag.vector_stores.couchbasedb - INFO - Document 254770028d7a4fa9877da4ba0ad5ad21 loaded successfully\n", + "2024-09-20 12:41:18,073 - graphrag.vector_stores.couchbasedb - INFO - Document 1745a2485a9443bab76587ad650e9be0 loaded successfully\n", + "2024-09-20 12:41:18,080 - graphrag.vector_stores.couchbasedb - INFO - Document 36a4fcd8efc144e6b8af9a1c7ab8b2ce loaded successfully\n", + "2024-09-20 12:41:18,083 - graphrag.vector_stores.couchbasedb - INFO - Document 6102fc6619ed422ebc42588bfa97355d loaded successfully\n", + "2024-09-20 12:41:18,084 - graphrag.vector_stores.couchbasedb - INFO - Document 32ee140946e5461f9275db664dc541a5 loaded successfully\n", + "2024-09-20 12:41:18,085 - graphrag.vector_stores.couchbasedb - INFO - Document e2bf260115514fb3b252fd879fb3e7be loaded successfully\n", + "2024-09-20 12:41:18,088 - __main__ - INFO - Entity semantic embeddings stored successfully\n" ] } ], @@ -639,8 +633,6 @@ "source": [ "### **7. Building the Search Engine (In the Context of Graphrag)**\n", "\n", - "In this section, we focus on creating a search engine that integrates multiple components, specifically designed for the **Graphrag** system. Graphrag is a sophisticated architecture built for handling structured data, entities, relationships, and other contextual information to provide semantic search capabilities. This search engine allows you to query this structured data using **natural language** and get relevant, context-aware responses.\n", - "\n", "Here, we explain the components of the search engine in detail and how they contribute to its functionality within Graphrag.\n", "\n", "#### **1. Context Builder (LocalSearchMixedContext)**\n", @@ -693,7 +685,7 @@ "\n", "### **Summary**\n", "\n", - "In this section, we have built a search engine specifically designed for the **Graphrag** system. This search engine leverages **structured data** (entities, relationships, reports, etc.) and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context to generate meaningful answers.\n", + "This search engine leverages **structured data** (entities, relationships, reports, etc.) and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the grahpgRAG to generate meaningful answers.\n", "\n", "Key steps include:\n", "1. Setting up the **context builder** to combine different types of data.\n", @@ -714,8 +706,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:47,876 - __main__ - INFO - Creating search engine\n", - "2024-09-19 14:43:47,879 - __main__ - INFO - Search engine created\n" + "2024-09-20 12:41:18,130 - __main__ - INFO - Creating search engine\n", + "2024-09-20 12:41:18,137 - __main__ - INFO - Search engine created\n" ] } ], @@ -789,14 +781,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-19 14:43:47,907 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-19 14:43:47,912 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-19 14:43:48,528 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-19 14:43:48,653 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-19 14:43:48,661 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-19 14:43:48,764 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726737227.9126618. QUERY: Give me a summary about the story\n", - "2024-09-19 14:43:49,856 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-19 14:43:59,275 - __main__ - INFO - Query completed successfully\n" + "2024-09-20 12:41:18,195 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-20 12:41:18,203 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-20 12:41:19,081 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-20 12:41:19,101 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-20 12:41:19,135 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-20 12:41:19,269 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726816278.202845. QUERY: Give me a summary about the story\n", + "2024-09-20 12:41:20,787 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-20 12:41:30,495 - __main__ - INFO - Query completed successfully\n" ] }, { @@ -808,15 +800,15 @@ "\n", "## Introduction to the Paranormal Military Squad\n", "\n", - "The story revolves around the Paranormal Military Squad, a secretive governmental faction dedicated to investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The squad's mission is to mediate Earth's contact with alien intelligence, decipher alien signals, ensure humanity's safety, and prepare for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", + "The story revolves around the Paranormal Military Squad, a secretive governmental faction dedicated to investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", "\n", "## Key Figures and Their Roles\n", "\n", - "The Paranormal Military Squad includes several key figures who play crucial roles in the mission. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent. Taylor Cruz oversees the team's efforts, emphasizing diligence and strategic planning. Sam Rivera brings technical expertise, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 35); Relationships (3, 53, 31, 77, 85, +more)].\n", + "The squad comprises several key figures, each playing a crucial role in the mission. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, emphasizing diligence and strategic planning. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 35)].\n", "\n", "## Operation: Dulce\n", "\n", - "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad. It involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with advanced technology specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (98, 105, 102, 116, 126, +more)].\n", + "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad. It involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (98, 105, 102, 116, 126, +more)].\n", "\n", "## Deciphering Alien Signals\n", "\n", @@ -832,7 +824,7 @@ "\n", "## Conclusion\n", "\n", - "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. Through the efforts of key figures like Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, the squad navigates the complexities of alien communication and prepares for the monumental event of first contact. Their mission holds profound implications for the future of humanity, making it a pivotal chapter in the cosmic play [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (40, 52, 59, 65, 68, +more)].\n" + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. Through the efforts of key figures like Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, the squad navigates the complexities of alien communication and prepares for the monumental event of first contact. Their mission holds profound implications for the future of humanity, making it a pivotal chapter in the cosmic play [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (40, 52, 59, 78, 90)].\n" ] } ], From 4b3a24ea6e15c3f0b20582ae4442e541a0625cb4 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 12:45:24 +0530 Subject: [PATCH 15/25] Refactor GraphRAG notebook with updated Couchbase setup instructions --- .../community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 37d5dd8fc6..96f18b5478 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -6,7 +6,7 @@ "id": "fbw833Y2gckr" }, "source": [ - "# Tutorial on RAG (Retrieval-Augmented Generation) Local Search with Couchbase Vector Store\n", + "# Tutorial on Graph RAG(Local Search) with Couchbase Vector Store\n", "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying textual data.\n", "\n", "## Setting up Couchbase\n", From dee314b57f17a37a305d0f5f538d3bdb251559d9 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 12:50:40 +0530 Subject: [PATCH 16/25] Refactor GraphRAG notebook --- .../community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 96f18b5478..153b9b3add 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -31,10 +31,10 @@ "Local and global search are two approaches used in Graph RAG (Retrieval-Augmented Generation) systems:\n", "\n", "### Local Search\n", - "Local Search for reasoning about specific entities by fanning-out to their neighbors and associated concepts.\n", + "Local search method generates answers by combining relevant data from the AI-extracted knowledge-graph with text chunks of the raw documents. This method is suitable for questions that require an understanding of specific entities mentioned in the documents.\n", "\n", "### Global Search\n", - "Global Search for reasoning about holistic questions about the corpus by leveraging the community summaries.\n", + "Global search method generates answers by searching over all AI-generated community reports in a map-reduce fashion. This is a resource-intensive method, but often gives good responses for questions that require an understanding of the dataset as a whole.\n", "\n", "## Couchbase as a Vector Store for Local Search\n", "\n", From 25638bc5cee958aecb0a92871f06f5b0b2eb2a85 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 12:53:45 +0530 Subject: [PATCH 17/25] updated docs --- .../community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 153b9b3add..736f3a5e10 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -685,7 +685,7 @@ "\n", "### **Summary**\n", "\n", - "This search engine leverages **structured data** (entities, relationships, reports, etc.) and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the grahpgRAG to generate meaningful answers.\n", + "This search engine leverages **structured data** (entities, relationships, reports, etc.) from the input files and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the graph RAG to generate meaningful answers.\n", "\n", "Key steps include:\n", "1. Setting up the **context builder** to combine different types of data.\n", From ff16c602dce6ab3bcd3ac662efc8d08029b49487 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 12:55:45 +0530 Subject: [PATCH 18/25] updated docs --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 251 +++++++++--------- 1 file changed, 122 insertions(+), 129 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 736f3a5e10..fbd1eec79e 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -160,7 +160,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,146 - __main__ - INFO - Loading data from parquet files\n" + "2024-09-20 12:55:10,203 - __main__ - INFO - Loading data from parquet files\n" ] } ], @@ -203,7 +203,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,269 - __main__ - INFO - Entities table loaded successfully\n" + "2024-09-20 12:55:10,404 - __main__ - INFO - Entities table loaded successfully\n" ] } ], @@ -240,7 +240,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,309 - __main__ - INFO - Relationships table loaded successfully\n" + "2024-09-20 12:55:10,500 - __main__ - INFO - Relationships table loaded successfully\n" ] } ], @@ -272,7 +272,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,326 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" + "2024-09-20 12:55:10,526 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" ] } ], @@ -304,7 +304,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,397 - __main__ - INFO - Reports table loaded successfully\n" + "2024-09-20 12:55:10,631 - __main__ - INFO - Reports table loaded successfully\n" ] } ], @@ -339,7 +339,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,474 - __main__ - INFO - Text units table loaded successfully\n" + "2024-09-20 12:55:10,699 - __main__ - INFO - Text units table loaded successfully\n" ] }, { @@ -388,10 +388,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,536 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-20 12:41:13,538 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-20 12:41:13,594 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-20 12:41:13,596 - __main__ - INFO - CouchbaseVectorStore setup completed\n" + "2024-09-20 12:55:10,743 - __main__ - INFO - Setting up CouchbaseVectorStore\n", + "2024-09-20 12:55:10,746 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", + "2024-09-20 12:55:10,815 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", + "2024-09-20 12:55:10,818 - __main__ - INFO - CouchbaseVectorStore setup completed\n" ] } ], @@ -444,8 +444,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:13,624 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-20 12:41:17,417 - __main__ - INFO - LLM and embedding models setup completed\n" + "2024-09-20 12:55:10,844 - __main__ - INFO - Setting up LLM and embedding models\n", + "2024-09-20 12:55:11,577 - __main__ - INFO - LLM and embedding models setup completed\n" ] } ], @@ -501,101 +501,101 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:17,425 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-20 12:41:17,430 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", - "2024-09-20 12:41:17,685 - graphrag.vector_stores.couchbasedb - INFO - Document d64ed762ea924caa95c8d06f072a9a96 loaded successfully\n", - "2024-09-20 12:41:17,687 - graphrag.vector_stores.couchbasedb - INFO - Document bc0e3f075a4c4ebbb7c7b152b65a5625 loaded successfully\n", - "2024-09-20 12:41:17,688 - graphrag.vector_stores.couchbasedb - INFO - Document 53af055f068244d0ac861b2e89376495 loaded successfully\n", - "2024-09-20 12:41:17,689 - graphrag.vector_stores.couchbasedb - INFO - Document 3d0dcbc8971b415ea18065edc4d8c8ef loaded successfully\n", - "2024-09-20 12:41:17,690 - graphrag.vector_stores.couchbasedb - INFO - Document e22d1d1cd8d14f12b81828d940f40d70 loaded successfully\n", - "2024-09-20 12:41:17,692 - graphrag.vector_stores.couchbasedb - INFO - Document b45241d70f0e43fca764df95b2b81f77 loaded successfully\n", - "2024-09-20 12:41:17,693 - graphrag.vector_stores.couchbasedb - INFO - Document babe97e1d9784cffa1c85abc1e588126 loaded successfully\n", - "2024-09-20 12:41:17,695 - graphrag.vector_stores.couchbasedb - INFO - Document 8d141c0b80f74b79a05eed7fe161fe49 loaded successfully\n", - "2024-09-20 12:41:17,699 - graphrag.vector_stores.couchbasedb - INFO - Document bf4e255cdac94ccc83a56435a5e4b075 loaded successfully\n", - "2024-09-20 12:41:17,704 - graphrag.vector_stores.couchbasedb - INFO - Document e69dc259edb944ea9ea41264b9fcfe59 loaded successfully\n", - "2024-09-20 12:41:17,706 - graphrag.vector_stores.couchbasedb - INFO - Document 6fae5ee1a831468aa585a1ea09095998 loaded successfully\n", - "2024-09-20 12:41:17,709 - graphrag.vector_stores.couchbasedb - INFO - Document 3138f39f2bcd43a69e0697cd3b05bc4d loaded successfully\n", - "2024-09-20 12:41:17,711 - graphrag.vector_stores.couchbasedb - INFO - Document c9b8ce91fc2945b4907fe35519339cac loaded successfully\n", - "2024-09-20 12:41:17,720 - graphrag.vector_stores.couchbasedb - INFO - Document c9632a35146940c2a86167c7726d35e9 loaded successfully\n", - "2024-09-20 12:41:17,725 - graphrag.vector_stores.couchbasedb - INFO - Document d91a266f766b4737a06b0fda588ba40b loaded successfully\n", - "2024-09-20 12:41:17,729 - graphrag.vector_stores.couchbasedb - INFO - Document 56d0e5ebe79e4814bd1463cf6ca21394 loaded successfully\n", - "2024-09-20 12:41:17,733 - graphrag.vector_stores.couchbasedb - INFO - Document 6b02373137fd438ba96af28f735cdbdb loaded successfully\n", - "2024-09-20 12:41:17,738 - graphrag.vector_stores.couchbasedb - INFO - Document 1eb829d0ace042089f0746f78729696c loaded successfully\n", - "2024-09-20 12:41:17,746 - graphrag.vector_stores.couchbasedb - INFO - Document 958beecdb5bb4060948415ffd75d2b03 loaded successfully\n", - "2024-09-20 12:41:17,751 - graphrag.vector_stores.couchbasedb - INFO - Document 9ab48505fb1b487babd0d1f6d3a3f980 loaded successfully\n", - "2024-09-20 12:41:17,759 - graphrag.vector_stores.couchbasedb - INFO - Document 3b6cd96a27304614850709aba1c9598b loaded successfully\n", - "2024-09-20 12:41:17,769 - graphrag.vector_stores.couchbasedb - INFO - Document f1c6eed066f24cbdb376b910fce29ed4 loaded successfully\n", - "2024-09-20 12:41:17,779 - graphrag.vector_stores.couchbasedb - INFO - Document 3ce7c210a21b4deebad7cc9308148d86 loaded successfully\n", - "2024-09-20 12:41:17,780 - graphrag.vector_stores.couchbasedb - INFO - Document c6d1e4f56c2843e89cf0b91c10bb6de2 loaded successfully\n", - "2024-09-20 12:41:17,783 - graphrag.vector_stores.couchbasedb - INFO - Document 1033a18c45aa4584b2aef6ab96890351 loaded successfully\n", - "2024-09-20 12:41:17,786 - graphrag.vector_stores.couchbasedb - INFO - Document ed6d2eee9d7b4f5db466b1f6404d31cc loaded successfully\n", - "2024-09-20 12:41:17,797 - graphrag.vector_stores.couchbasedb - INFO - Document d2b629c0396f4180a03e16ddf3818589 loaded successfully\n", - "2024-09-20 12:41:17,804 - graphrag.vector_stores.couchbasedb - INFO - Document f7e11b0e297a44a896dc67928368f600 loaded successfully\n", - "2024-09-20 12:41:17,807 - graphrag.vector_stores.couchbasedb - INFO - Document fc01e9baa80e417c9206f941bb279407 loaded successfully\n", - "2024-09-20 12:41:17,811 - graphrag.vector_stores.couchbasedb - INFO - Document 9646481f66ce4fd2b08c2eddda42fc82 loaded successfully\n", - "2024-09-20 12:41:17,816 - graphrag.vector_stores.couchbasedb - INFO - Document 85c79fd84f5e4f918471c386852204c5 loaded successfully\n", - "2024-09-20 12:41:17,820 - graphrag.vector_stores.couchbasedb - INFO - Document de9e343f2e334d88a8ac7f8813a915e5 loaded successfully\n", - "2024-09-20 12:41:17,823 - graphrag.vector_stores.couchbasedb - INFO - Document 04dbbb2283b845baaeac0eaf0c34c9da loaded successfully\n", - "2024-09-20 12:41:17,827 - graphrag.vector_stores.couchbasedb - INFO - Document e7ffaee9d31d4d3c96e04f911d0a8f9e loaded successfully\n", - "2024-09-20 12:41:17,830 - graphrag.vector_stores.couchbasedb - INFO - Document e1fd0e904a53409aada44442f23a51cb loaded successfully\n", - "2024-09-20 12:41:17,835 - graphrag.vector_stores.couchbasedb - INFO - Document 1c109cfdc370463eb6d537e5b7b382fb loaded successfully\n", - "2024-09-20 12:41:17,841 - graphrag.vector_stores.couchbasedb - INFO - Document de988724cfdf45cebfba3b13c43ceede loaded successfully\n", - "2024-09-20 12:41:17,846 - graphrag.vector_stores.couchbasedb - INFO - Document 273daeec8cad41e6b3e450447db58ee7 loaded successfully\n", - "2024-09-20 12:41:17,850 - graphrag.vector_stores.couchbasedb - INFO - Document e2f5735c7d714423a2c4f61ca2644626 loaded successfully\n", - "2024-09-20 12:41:17,855 - graphrag.vector_stores.couchbasedb - INFO - Document 404309e89a5241d6bff42c05a45df206 loaded successfully\n", - "2024-09-20 12:41:17,859 - graphrag.vector_stores.couchbasedb - INFO - Document 015e7b58d1a14b44beab3bbc9f912c18 loaded successfully\n", - "2024-09-20 12:41:17,866 - graphrag.vector_stores.couchbasedb - INFO - Document 23527cd679ff4d5a988d52e7cd056078 loaded successfully\n", - "2024-09-20 12:41:17,873 - graphrag.vector_stores.couchbasedb - INFO - Document 148fffeb994541b2b4b6dcefda7001a8 loaded successfully\n", - "2024-09-20 12:41:17,876 - graphrag.vector_stores.couchbasedb - INFO - Document 2670deebfa3f4d69bb82c28ab250a209 loaded successfully\n", - "2024-09-20 12:41:17,880 - graphrag.vector_stores.couchbasedb - INFO - Document 1943f245ee4243bdbfbd2fd619ae824a loaded successfully\n", - "2024-09-20 12:41:17,886 - graphrag.vector_stores.couchbasedb - INFO - Document ef32c4b208d041cc856f6837915dc1b0 loaded successfully\n", - "2024-09-20 12:41:17,890 - graphrag.vector_stores.couchbasedb - INFO - Document 17ed1d92075643579a712cc6c29e8ddb loaded successfully\n", - "2024-09-20 12:41:17,895 - graphrag.vector_stores.couchbasedb - INFO - Document c160b9cb27d6408ba6ab20214a2f3f81 loaded successfully\n", - "2024-09-20 12:41:17,900 - graphrag.vector_stores.couchbasedb - INFO - Document 94a964c6992945ebb3833dfdfdc8d655 loaded successfully\n", - "2024-09-20 12:41:17,903 - graphrag.vector_stores.couchbasedb - INFO - Document 89c08e793298442686292454a1abff31 loaded successfully\n", - "2024-09-20 12:41:17,909 - graphrag.vector_stores.couchbasedb - INFO - Document d54956b79dd147f894b67a8b97dcbef0 loaded successfully\n", - "2024-09-20 12:41:17,914 - graphrag.vector_stores.couchbasedb - INFO - Document 26f88ab3e2e04c33a459ad6270ade565 loaded successfully\n", - "2024-09-20 12:41:17,919 - graphrag.vector_stores.couchbasedb - INFO - Document 48c0c4d72da74ff5bb926fa0c856d1a7 loaded successfully\n", - "2024-09-20 12:41:17,923 - graphrag.vector_stores.couchbasedb - INFO - Document 0467928aa65e4a4fba62bdb1467e3a54 loaded successfully\n", - "2024-09-20 12:41:17,930 - graphrag.vector_stores.couchbasedb - INFO - Document b7702b90c7f24190b864e8c6e64612a5 loaded successfully\n", - "2024-09-20 12:41:17,935 - graphrag.vector_stores.couchbasedb - INFO - Document b999ed77e19e4f85b7f1ae79af5c002a loaded successfully\n", - "2024-09-20 12:41:17,938 - graphrag.vector_stores.couchbasedb - INFO - Document 7c49f2710e8b4d3b8dc9310834406ea5 loaded successfully\n", - "2024-09-20 12:41:17,941 - graphrag.vector_stores.couchbasedb - INFO - Document c03ab3ce8cb74ad2a03b94723bfab3c7 loaded successfully\n", - "2024-09-20 12:41:17,947 - graphrag.vector_stores.couchbasedb - INFO - Document 0adb2d9941f34ef7b2f7743cc6225844 loaded successfully\n", - "2024-09-20 12:41:17,952 - graphrag.vector_stores.couchbasedb - INFO - Document 32e6ccab20d94029811127dbbe424c64 loaded successfully\n", - "2024-09-20 12:41:17,955 - graphrag.vector_stores.couchbasedb - INFO - Document 27f9fbe6ad8c4a8b9acee0d3596ed57c loaded successfully\n", - "2024-09-20 12:41:17,959 - graphrag.vector_stores.couchbasedb - INFO - Document d3835bf3dda84ead99deadbeac5d0d7d loaded successfully\n", - "2024-09-20 12:41:17,964 - graphrag.vector_stores.couchbasedb - INFO - Document 3b040bcc19f14e04880ae52881a89c1c loaded successfully\n", - "2024-09-20 12:41:17,968 - graphrag.vector_stores.couchbasedb - INFO - Document de6fa24480894518ab3cbcb66f739266 loaded successfully\n", - "2024-09-20 12:41:17,976 - graphrag.vector_stores.couchbasedb - INFO - Document 3d6b216c14354332b1bf1927ba168986 loaded successfully\n", - "2024-09-20 12:41:17,980 - graphrag.vector_stores.couchbasedb - INFO - Document e657b5121ff8456b9a610cfaead8e0cb loaded successfully\n", - "2024-09-20 12:41:17,983 - graphrag.vector_stores.couchbasedb - INFO - Document 96aad7cb4b7d40e9b7e13b94a67af206 loaded successfully\n", - "2024-09-20 12:41:17,987 - graphrag.vector_stores.couchbasedb - INFO - Document dde131ab575d44dbb55289a6972be18f loaded successfully\n", - "2024-09-20 12:41:17,996 - graphrag.vector_stores.couchbasedb - INFO - Document 147c038aef3e4422acbbc5f7938c4ab8 loaded successfully\n", - "2024-09-20 12:41:18,000 - graphrag.vector_stores.couchbasedb - INFO - Document b785a9025069417f94950ad231bb1441 loaded successfully\n", - "2024-09-20 12:41:18,004 - graphrag.vector_stores.couchbasedb - INFO - Document fbeef791d19b413a9c93c6608286ab63 loaded successfully\n", - "2024-09-20 12:41:18,006 - graphrag.vector_stores.couchbasedb - INFO - Document b462b94ce47a4b8c8fffa33f7242acec loaded successfully\n", - "2024-09-20 12:41:18,009 - graphrag.vector_stores.couchbasedb - INFO - Document 19a7f254a5d64566ab5cc15472df02de loaded successfully\n", - "2024-09-20 12:41:18,014 - graphrag.vector_stores.couchbasedb - INFO - Document 3671ea0dd4e84c1a9b02c5ab2c8f4bac loaded successfully\n", - "2024-09-20 12:41:18,017 - graphrag.vector_stores.couchbasedb - INFO - Document 83a6cb03df6b41d8ad6ee5f6fef5f024 loaded successfully\n", - "2024-09-20 12:41:18,020 - graphrag.vector_stores.couchbasedb - INFO - Document deece7e64b2a4628850d4bb6e394a9c3 loaded successfully\n", - "2024-09-20 12:41:18,023 - graphrag.vector_stores.couchbasedb - INFO - Document 4f3c97517f794ebfb49c4c6315f9cf23 loaded successfully\n", - "2024-09-20 12:41:18,029 - graphrag.vector_stores.couchbasedb - INFO - Document 68105770b523412388424d984e711917 loaded successfully\n", - "2024-09-20 12:41:18,033 - graphrag.vector_stores.couchbasedb - INFO - Document 077d2820ae1845bcbb1803379a3d1eae loaded successfully\n", - "2024-09-20 12:41:18,035 - graphrag.vector_stores.couchbasedb - INFO - Document adf4ee3fbe9b4d0381044838c4f889c8 loaded successfully\n", - "2024-09-20 12:41:18,040 - graphrag.vector_stores.couchbasedb - INFO - Document 07b2425216bd4f0aa4e079827cb48ef5 loaded successfully\n", - "2024-09-20 12:41:18,042 - graphrag.vector_stores.couchbasedb - INFO - Document eae4259b19a741ab9f9f6af18c4a0470 loaded successfully\n", - "2024-09-20 12:41:18,046 - graphrag.vector_stores.couchbasedb - INFO - Document fa3c4204421c48609e52c8de2da4c654 loaded successfully\n", - "2024-09-20 12:41:18,049 - graphrag.vector_stores.couchbasedb - INFO - Document 4a67211867e5464ba45126315a122a8a loaded successfully\n", - "2024-09-20 12:41:18,053 - graphrag.vector_stores.couchbasedb - INFO - Document 1fd3fa8bb5a2408790042ab9573779ee loaded successfully\n", - "2024-09-20 12:41:18,058 - graphrag.vector_stores.couchbasedb - INFO - Document 4119fd06010c494caa07f439b333f4c5 loaded successfully\n", - "2024-09-20 12:41:18,064 - graphrag.vector_stores.couchbasedb - INFO - Document 254770028d7a4fa9877da4ba0ad5ad21 loaded successfully\n", - "2024-09-20 12:41:18,073 - graphrag.vector_stores.couchbasedb - INFO - Document 1745a2485a9443bab76587ad650e9be0 loaded successfully\n", - "2024-09-20 12:41:18,080 - graphrag.vector_stores.couchbasedb - INFO - Document 36a4fcd8efc144e6b8af9a1c7ab8b2ce loaded successfully\n", - "2024-09-20 12:41:18,083 - graphrag.vector_stores.couchbasedb - INFO - Document 6102fc6619ed422ebc42588bfa97355d loaded successfully\n", - "2024-09-20 12:41:18,084 - graphrag.vector_stores.couchbasedb - INFO - Document 32ee140946e5461f9275db664dc541a5 loaded successfully\n", - "2024-09-20 12:41:18,085 - graphrag.vector_stores.couchbasedb - INFO - Document e2bf260115514fb3b252fd879fb3e7be loaded successfully\n", - "2024-09-20 12:41:18,088 - __main__ - INFO - Entity semantic embeddings stored successfully\n" + "2024-09-20 12:55:11,590 - __main__ - INFO - Storing entity embeddings\n", + "2024-09-20 12:55:11,594 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", + "2024-09-20 12:55:11,780 - graphrag.vector_stores.couchbasedb - INFO - Document d64ed762ea924caa95c8d06f072a9a96 loaded successfully\n", + "2024-09-20 12:55:11,782 - graphrag.vector_stores.couchbasedb - INFO - Document bc0e3f075a4c4ebbb7c7b152b65a5625 loaded successfully\n", + "2024-09-20 12:55:11,784 - graphrag.vector_stores.couchbasedb - INFO - Document 53af055f068244d0ac861b2e89376495 loaded successfully\n", + "2024-09-20 12:55:11,785 - graphrag.vector_stores.couchbasedb - INFO - Document 3d0dcbc8971b415ea18065edc4d8c8ef loaded successfully\n", + "2024-09-20 12:55:11,787 - graphrag.vector_stores.couchbasedb - INFO - Document e22d1d1cd8d14f12b81828d940f40d70 loaded successfully\n", + "2024-09-20 12:55:11,802 - graphrag.vector_stores.couchbasedb - INFO - Document b45241d70f0e43fca764df95b2b81f77 loaded successfully\n", + "2024-09-20 12:55:11,806 - graphrag.vector_stores.couchbasedb - INFO - Document babe97e1d9784cffa1c85abc1e588126 loaded successfully\n", + "2024-09-20 12:55:11,810 - graphrag.vector_stores.couchbasedb - INFO - Document 8d141c0b80f74b79a05eed7fe161fe49 loaded successfully\n", + "2024-09-20 12:55:11,813 - graphrag.vector_stores.couchbasedb - INFO - Document bf4e255cdac94ccc83a56435a5e4b075 loaded successfully\n", + "2024-09-20 12:55:11,814 - graphrag.vector_stores.couchbasedb - INFO - Document e69dc259edb944ea9ea41264b9fcfe59 loaded successfully\n", + "2024-09-20 12:55:11,815 - graphrag.vector_stores.couchbasedb - INFO - Document 6fae5ee1a831468aa585a1ea09095998 loaded successfully\n", + "2024-09-20 12:55:11,816 - graphrag.vector_stores.couchbasedb - INFO - Document 3138f39f2bcd43a69e0697cd3b05bc4d loaded successfully\n", + "2024-09-20 12:55:11,817 - graphrag.vector_stores.couchbasedb - INFO - Document c9b8ce91fc2945b4907fe35519339cac loaded successfully\n", + "2024-09-20 12:55:11,818 - graphrag.vector_stores.couchbasedb - INFO - Document c9632a35146940c2a86167c7726d35e9 loaded successfully\n", + "2024-09-20 12:55:11,819 - graphrag.vector_stores.couchbasedb - INFO - Document d91a266f766b4737a06b0fda588ba40b loaded successfully\n", + "2024-09-20 12:55:11,820 - graphrag.vector_stores.couchbasedb - INFO - Document 56d0e5ebe79e4814bd1463cf6ca21394 loaded successfully\n", + "2024-09-20 12:55:11,821 - graphrag.vector_stores.couchbasedb - INFO - Document 6b02373137fd438ba96af28f735cdbdb loaded successfully\n", + "2024-09-20 12:55:11,825 - graphrag.vector_stores.couchbasedb - INFO - Document 1eb829d0ace042089f0746f78729696c loaded successfully\n", + "2024-09-20 12:55:11,828 - graphrag.vector_stores.couchbasedb - INFO - Document 958beecdb5bb4060948415ffd75d2b03 loaded successfully\n", + "2024-09-20 12:55:11,831 - graphrag.vector_stores.couchbasedb - INFO - Document 9ab48505fb1b487babd0d1f6d3a3f980 loaded successfully\n", + "2024-09-20 12:55:11,836 - graphrag.vector_stores.couchbasedb - INFO - Document 3b6cd96a27304614850709aba1c9598b loaded successfully\n", + "2024-09-20 12:55:11,837 - graphrag.vector_stores.couchbasedb - INFO - Document f1c6eed066f24cbdb376b910fce29ed4 loaded successfully\n", + "2024-09-20 12:55:11,839 - graphrag.vector_stores.couchbasedb - INFO - Document 3ce7c210a21b4deebad7cc9308148d86 loaded successfully\n", + "2024-09-20 12:55:11,840 - graphrag.vector_stores.couchbasedb - INFO - Document c6d1e4f56c2843e89cf0b91c10bb6de2 loaded successfully\n", + "2024-09-20 12:55:11,841 - graphrag.vector_stores.couchbasedb - INFO - Document 1033a18c45aa4584b2aef6ab96890351 loaded successfully\n", + "2024-09-20 12:55:11,841 - graphrag.vector_stores.couchbasedb - INFO - Document ed6d2eee9d7b4f5db466b1f6404d31cc loaded successfully\n", + "2024-09-20 12:55:11,841 - graphrag.vector_stores.couchbasedb - INFO - Document d2b629c0396f4180a03e16ddf3818589 loaded successfully\n", + "2024-09-20 12:55:11,845 - graphrag.vector_stores.couchbasedb - INFO - Document f7e11b0e297a44a896dc67928368f600 loaded successfully\n", + "2024-09-20 12:55:11,848 - graphrag.vector_stores.couchbasedb - INFO - Document fc01e9baa80e417c9206f941bb279407 loaded successfully\n", + "2024-09-20 12:55:11,852 - graphrag.vector_stores.couchbasedb - INFO - Document 9646481f66ce4fd2b08c2eddda42fc82 loaded successfully\n", + "2024-09-20 12:55:11,860 - graphrag.vector_stores.couchbasedb - INFO - Document 85c79fd84f5e4f918471c386852204c5 loaded successfully\n", + "2024-09-20 12:55:11,862 - graphrag.vector_stores.couchbasedb - INFO - Document de9e343f2e334d88a8ac7f8813a915e5 loaded successfully\n", + "2024-09-20 12:55:11,866 - graphrag.vector_stores.couchbasedb - INFO - Document 04dbbb2283b845baaeac0eaf0c34c9da loaded successfully\n", + "2024-09-20 12:55:11,868 - graphrag.vector_stores.couchbasedb - INFO - Document e7ffaee9d31d4d3c96e04f911d0a8f9e loaded successfully\n", + "2024-09-20 12:55:11,871 - graphrag.vector_stores.couchbasedb - INFO - Document e1fd0e904a53409aada44442f23a51cb loaded successfully\n", + "2024-09-20 12:55:11,872 - graphrag.vector_stores.couchbasedb - INFO - Document 1c109cfdc370463eb6d537e5b7b382fb loaded successfully\n", + "2024-09-20 12:55:11,874 - graphrag.vector_stores.couchbasedb - INFO - Document de988724cfdf45cebfba3b13c43ceede loaded successfully\n", + "2024-09-20 12:55:11,875 - graphrag.vector_stores.couchbasedb - INFO - Document 273daeec8cad41e6b3e450447db58ee7 loaded successfully\n", + "2024-09-20 12:55:11,876 - graphrag.vector_stores.couchbasedb - INFO - Document e2f5735c7d714423a2c4f61ca2644626 loaded successfully\n", + "2024-09-20 12:55:11,878 - graphrag.vector_stores.couchbasedb - INFO - Document 404309e89a5241d6bff42c05a45df206 loaded successfully\n", + "2024-09-20 12:55:11,880 - graphrag.vector_stores.couchbasedb - INFO - Document 015e7b58d1a14b44beab3bbc9f912c18 loaded successfully\n", + "2024-09-20 12:55:11,883 - graphrag.vector_stores.couchbasedb - INFO - Document 23527cd679ff4d5a988d52e7cd056078 loaded successfully\n", + "2024-09-20 12:55:11,888 - graphrag.vector_stores.couchbasedb - INFO - Document 148fffeb994541b2b4b6dcefda7001a8 loaded successfully\n", + "2024-09-20 12:55:11,890 - graphrag.vector_stores.couchbasedb - INFO - Document 2670deebfa3f4d69bb82c28ab250a209 loaded successfully\n", + "2024-09-20 12:55:11,892 - graphrag.vector_stores.couchbasedb - INFO - Document 1943f245ee4243bdbfbd2fd619ae824a loaded successfully\n", + "2024-09-20 12:55:11,894 - graphrag.vector_stores.couchbasedb - INFO - Document ef32c4b208d041cc856f6837915dc1b0 loaded successfully\n", + "2024-09-20 12:55:11,895 - graphrag.vector_stores.couchbasedb - INFO - Document 17ed1d92075643579a712cc6c29e8ddb loaded successfully\n", + "2024-09-20 12:55:11,896 - graphrag.vector_stores.couchbasedb - INFO - Document c160b9cb27d6408ba6ab20214a2f3f81 loaded successfully\n", + "2024-09-20 12:55:11,897 - graphrag.vector_stores.couchbasedb - INFO - Document 94a964c6992945ebb3833dfdfdc8d655 loaded successfully\n", + "2024-09-20 12:55:11,899 - graphrag.vector_stores.couchbasedb - INFO - Document 89c08e793298442686292454a1abff31 loaded successfully\n", + "2024-09-20 12:55:11,902 - graphrag.vector_stores.couchbasedb - INFO - Document d54956b79dd147f894b67a8b97dcbef0 loaded successfully\n", + "2024-09-20 12:55:11,905 - graphrag.vector_stores.couchbasedb - INFO - Document 26f88ab3e2e04c33a459ad6270ade565 loaded successfully\n", + "2024-09-20 12:55:11,908 - graphrag.vector_stores.couchbasedb - INFO - Document 48c0c4d72da74ff5bb926fa0c856d1a7 loaded successfully\n", + "2024-09-20 12:55:11,911 - graphrag.vector_stores.couchbasedb - INFO - Document 0467928aa65e4a4fba62bdb1467e3a54 loaded successfully\n", + "2024-09-20 12:55:11,913 - graphrag.vector_stores.couchbasedb - INFO - Document b7702b90c7f24190b864e8c6e64612a5 loaded successfully\n", + "2024-09-20 12:55:11,914 - graphrag.vector_stores.couchbasedb - INFO - Document b999ed77e19e4f85b7f1ae79af5c002a loaded successfully\n", + "2024-09-20 12:55:11,915 - graphrag.vector_stores.couchbasedb - INFO - Document 7c49f2710e8b4d3b8dc9310834406ea5 loaded successfully\n", + "2024-09-20 12:55:11,916 - graphrag.vector_stores.couchbasedb - INFO - Document c03ab3ce8cb74ad2a03b94723bfab3c7 loaded successfully\n", + "2024-09-20 12:55:11,917 - graphrag.vector_stores.couchbasedb - INFO - Document 0adb2d9941f34ef7b2f7743cc6225844 loaded successfully\n", + "2024-09-20 12:55:11,917 - graphrag.vector_stores.couchbasedb - INFO - Document 32e6ccab20d94029811127dbbe424c64 loaded successfully\n", + "2024-09-20 12:55:11,918 - graphrag.vector_stores.couchbasedb - INFO - Document 27f9fbe6ad8c4a8b9acee0d3596ed57c loaded successfully\n", + "2024-09-20 12:55:11,919 - graphrag.vector_stores.couchbasedb - INFO - Document d3835bf3dda84ead99deadbeac5d0d7d loaded successfully\n", + "2024-09-20 12:55:11,921 - graphrag.vector_stores.couchbasedb - INFO - Document 3b040bcc19f14e04880ae52881a89c1c loaded successfully\n", + "2024-09-20 12:55:11,923 - graphrag.vector_stores.couchbasedb - INFO - Document de6fa24480894518ab3cbcb66f739266 loaded successfully\n", + "2024-09-20 12:55:11,925 - graphrag.vector_stores.couchbasedb - INFO - Document 3d6b216c14354332b1bf1927ba168986 loaded successfully\n", + "2024-09-20 12:55:11,929 - graphrag.vector_stores.couchbasedb - INFO - Document e657b5121ff8456b9a610cfaead8e0cb loaded successfully\n", + "2024-09-20 12:55:11,932 - graphrag.vector_stores.couchbasedb - INFO - Document 96aad7cb4b7d40e9b7e13b94a67af206 loaded successfully\n", + "2024-09-20 12:55:11,934 - graphrag.vector_stores.couchbasedb - INFO - Document dde131ab575d44dbb55289a6972be18f loaded successfully\n", + "2024-09-20 12:55:11,938 - graphrag.vector_stores.couchbasedb - INFO - Document 147c038aef3e4422acbbc5f7938c4ab8 loaded successfully\n", + "2024-09-20 12:55:11,941 - graphrag.vector_stores.couchbasedb - INFO - Document b785a9025069417f94950ad231bb1441 loaded successfully\n", + "2024-09-20 12:55:11,942 - graphrag.vector_stores.couchbasedb - INFO - Document fbeef791d19b413a9c93c6608286ab63 loaded successfully\n", + "2024-09-20 12:55:11,944 - graphrag.vector_stores.couchbasedb - INFO - Document b462b94ce47a4b8c8fffa33f7242acec loaded successfully\n", + "2024-09-20 12:55:11,945 - graphrag.vector_stores.couchbasedb - INFO - Document 19a7f254a5d64566ab5cc15472df02de loaded successfully\n", + "2024-09-20 12:55:11,946 - graphrag.vector_stores.couchbasedb - INFO - Document 3671ea0dd4e84c1a9b02c5ab2c8f4bac loaded successfully\n", + "2024-09-20 12:55:11,946 - graphrag.vector_stores.couchbasedb - INFO - Document 83a6cb03df6b41d8ad6ee5f6fef5f024 loaded successfully\n", + "2024-09-20 12:55:11,949 - graphrag.vector_stores.couchbasedb - INFO - Document deece7e64b2a4628850d4bb6e394a9c3 loaded successfully\n", + "2024-09-20 12:55:11,952 - graphrag.vector_stores.couchbasedb - INFO - Document 4f3c97517f794ebfb49c4c6315f9cf23 loaded successfully\n", + "2024-09-20 12:55:11,953 - graphrag.vector_stores.couchbasedb - INFO - Document 68105770b523412388424d984e711917 loaded successfully\n", + "2024-09-20 12:55:11,955 - graphrag.vector_stores.couchbasedb - INFO - Document 077d2820ae1845bcbb1803379a3d1eae loaded successfully\n", + "2024-09-20 12:55:11,958 - graphrag.vector_stores.couchbasedb - INFO - Document adf4ee3fbe9b4d0381044838c4f889c8 loaded successfully\n", + "2024-09-20 12:55:11,959 - graphrag.vector_stores.couchbasedb - INFO - Document 07b2425216bd4f0aa4e079827cb48ef5 loaded successfully\n", + "2024-09-20 12:55:11,961 - graphrag.vector_stores.couchbasedb - INFO - Document eae4259b19a741ab9f9f6af18c4a0470 loaded successfully\n", + "2024-09-20 12:55:11,962 - graphrag.vector_stores.couchbasedb - INFO - Document fa3c4204421c48609e52c8de2da4c654 loaded successfully\n", + "2024-09-20 12:55:11,962 - graphrag.vector_stores.couchbasedb - INFO - Document 4a67211867e5464ba45126315a122a8a loaded successfully\n", + "2024-09-20 12:55:11,963 - graphrag.vector_stores.couchbasedb - INFO - Document 1fd3fa8bb5a2408790042ab9573779ee loaded successfully\n", + "2024-09-20 12:55:11,966 - graphrag.vector_stores.couchbasedb - INFO - Document 4119fd06010c494caa07f439b333f4c5 loaded successfully\n", + "2024-09-20 12:55:11,966 - graphrag.vector_stores.couchbasedb - INFO - Document 254770028d7a4fa9877da4ba0ad5ad21 loaded successfully\n", + "2024-09-20 12:55:11,970 - graphrag.vector_stores.couchbasedb - INFO - Document 1745a2485a9443bab76587ad650e9be0 loaded successfully\n", + "2024-09-20 12:55:11,972 - graphrag.vector_stores.couchbasedb - INFO - Document 36a4fcd8efc144e6b8af9a1c7ab8b2ce loaded successfully\n", + "2024-09-20 12:55:11,973 - graphrag.vector_stores.couchbasedb - INFO - Document 6102fc6619ed422ebc42588bfa97355d loaded successfully\n", + "2024-09-20 12:55:11,974 - graphrag.vector_stores.couchbasedb - INFO - Document 32ee140946e5461f9275db664dc541a5 loaded successfully\n", + "2024-09-20 12:55:11,975 - graphrag.vector_stores.couchbasedb - INFO - Document e2bf260115514fb3b252fd879fb3e7be loaded successfully\n", + "2024-09-20 12:55:11,976 - __main__ - INFO - Entity semantic embeddings stored successfully\n" ] } ], @@ -685,14 +685,7 @@ "\n", "### **Summary**\n", "\n", - "This search engine leverages **structured data** (entities, relationships, reports, etc.) from the input files and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the graph RAG to generate meaningful answers.\n", - "\n", - "Key steps include:\n", - "1. Setting up the **context builder** to combine different types of data.\n", - "2. Defining search parameters for handling text units, entities, relationships, and embedding similarities.\n", - "3. Integrating the **language model** to generate answers based on the context.\n", - "\n", - "This search engine is highly useful for querying large-scale structured data and generating insights using natural language queries. It’s particularly relevant for systems like Graphrag, where the data has both structured and unstructured components that need to be processed together for an enriched search experience." + "This search engine leverages **structured data** (entities, relationships, reports, etc.) from the input files and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the graph RAG to generate meaningful answers." ] }, { @@ -706,8 +699,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:18,130 - __main__ - INFO - Creating search engine\n", - "2024-09-20 12:41:18,137 - __main__ - INFO - Search engine created\n" + "2024-09-20 12:55:11,994 - __main__ - INFO - Creating search engine\n", + "2024-09-20 12:55:11,999 - __main__ - INFO - Search engine created\n" ] } ], @@ -781,14 +774,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-20 12:41:18,195 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-20 12:41:18,203 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-20 12:41:19,081 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-20 12:41:19,101 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-20 12:41:19,135 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-20 12:41:19,269 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726816278.202845. QUERY: Give me a summary about the story\n", - "2024-09-20 12:41:20,787 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-20 12:41:30,495 - __main__ - INFO - Query completed successfully\n" + "2024-09-20 12:55:12,030 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", + "2024-09-20 12:55:12,034 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", + "2024-09-20 12:55:12,600 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "2024-09-20 12:55:12,628 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", + "2024-09-20 12:55:12,660 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", + "2024-09-20 12:55:12,800 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726817112.0347128. QUERY: Give me a summary about the story\n", + "2024-09-20 12:55:14,097 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "2024-09-20 12:55:25,536 - __main__ - INFO - Query completed successfully\n" ] }, { @@ -800,15 +793,15 @@ "\n", "## Introduction to the Paranormal Military Squad\n", "\n", - "The story revolves around the Paranormal Military Squad, a secretive governmental faction dedicated to investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", + "The narrative centers around the Paranormal Military Squad, a secretive governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", "\n", "## Key Figures and Their Roles\n", "\n", - "The squad comprises several key figures, each playing a crucial role in the mission. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, emphasizing diligence and strategic planning. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 35)].\n", + "Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 38, 94)].\n", "\n", "## Operation: Dulce\n", "\n", - "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad. It involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (98, 105, 102, 116, 126, +more)].\n", + "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (142, 143, 144, 194, 196)].\n", "\n", "## Deciphering Alien Signals\n", "\n", @@ -824,7 +817,7 @@ "\n", "## Conclusion\n", "\n", - "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. Through the efforts of key figures like Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera, the squad navigates the complexities of alien communication and prepares for the monumental event of first contact. Their mission holds profound implications for the future of humanity, making it a pivotal chapter in the cosmic play [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (40, 52, 59, 78, 90)].\n" + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a gripping tale of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's mission is fraught with challenges and potential dangers, but their work is crucial for ensuring humanity's safety and preparing for the monumental event of first contact. The narrative highlights the importance of teamwork, strategic thinking, and the relentless pursuit of knowledge in the face of the unknown.\n" ] } ], From d238a905e3bcb32790e870db3a98dbb6ae5ad310 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 12:56:10 +0530 Subject: [PATCH 19/25] updated docs --- .../community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index fbd1eec79e..ff21daa4ac 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -758,9 +758,7 @@ }, "source": [ "# Running a Query\n", - "Finally, we run a query on the search engine. In this case, the query is \"Give me a summary about the story\". This simulates asking the search engine to summarize the entities and relationships stored in Couchbase.\n", - "\n", - "asearch: This is an asynchronous search function that takes a query and returns a response generated by the language model." + "Finally, we run a query on the search engine. In this case, the query is \"Give me a summary about the story\". This simulates asking the search engine to summarize the entities and relationships stored in Couchbase." ] }, { From 75de8abc1b25b4c4b061b8f809b7bca024840a3f Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 13:02:32 +0530 Subject: [PATCH 20/25] removed logging --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 405 +++--------------- 1 file changed, 62 insertions(+), 343 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index ff21daa4ac..0ee0bcda1d 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -68,7 +68,6 @@ }, "outputs": [], "source": [ - "import logging\n", "import os\n", "\n", "import pandas as pd\n", @@ -116,7 +115,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "id": "Cz1PfM7zgc39" }, @@ -153,24 +152,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,203 - __main__ - INFO - Loading data from parquet files\n" - ] - } - ], + "outputs": [], "source": [ - "# Set up logging\n", - "logging.basicConfig(\n", - " level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\"\n", - ")\n", - "logger = logging.getLogger(__name__)\n", - "logger.info(\"Loading data from parquet files\")\n", "data = {}\n", "\n", "# Constants\n", @@ -196,17 +181,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,404 - __main__ - INFO - Entities table loaded successfully\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " data[\"entities\"] = pd.read_parquet(\n", @@ -218,9 +195,7 @@ " data[\"entities\"] = read_indexer_entities(\n", " data[\"entities\"], entity_embeddings, COMMUNITY_LEVEL\n", " )\n", - " logger.info(\"Entities table loaded successfully\")\n", "except FileNotFoundError:\n", - " logger.warning(\"ENTITY_TABLE file not found. Setting entities to None.\")\n", " data[\"entities\"] = None" ] }, @@ -233,26 +208,16 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,500 - __main__ - INFO - Relationships table loaded successfully\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " data[\"relationships\"] = pd.read_parquet(\n", " f\"{INPUT_DIR}/{TABLE_NAMES['RELATIONSHIP_TABLE']}.parquet\"\n", " )\n", " data[\"relationships\"] = read_indexer_relationships(data[\"relationships\"])\n", - " logger.info(\"Relationships table loaded successfully\")\n", "except FileNotFoundError:\n", - " logger.warning(\"RELATIONSHIP_TABLE file not found. Setting relationships to None.\")\n", " data[\"relationships\"] = None" ] }, @@ -265,26 +230,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,526 - __main__ - WARNING - COVARIATE_TABLE file not found. Setting covariates to None.\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " data[\"covariates\"] = pd.read_parquet(\n", " f\"{INPUT_DIR}/{TABLE_NAMES['COVARIATE_TABLE']}.parquet\"\n", " )\n", " data[\"covariates\"] = read_indexer_covariates(data[\"covariates\"])\n", - " logger.info(\"Covariates table loaded successfully\")\n", "except FileNotFoundError:\n", - " logger.warning(\"COVARIATE_TABLE file not found. Setting covariates to None.\")\n", " data[\"covariates\"] = None" ] }, @@ -297,17 +252,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,631 - __main__ - INFO - Reports table loaded successfully\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " data[\"reports\"] = pd.read_parquet(\n", @@ -317,9 +264,7 @@ " data[\"reports\"] = read_indexer_reports(\n", " data[\"reports\"], entity_data, COMMUNITY_LEVEL\n", " )\n", - " logger.info(\"Reports table loaded successfully\")\n", "except FileNotFoundError:\n", - " logger.warning(\"COMMUNITY_REPORT_TABLE file not found. Setting reports to None.\")\n", " data[\"reports\"] = None" ] }, @@ -332,33 +277,16 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,699 - __main__ - INFO - Text units table loaded successfully\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Data loading completed\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " data[\"text_units\"] = pd.read_parquet(\n", " f\"{INPUT_DIR}/{TABLE_NAMES['TEXT_UNIT_TABLE']}.parquet\"\n", " )\n", " data[\"text_units\"] = read_indexer_text_units(data[\"text_units\"])\n", - " logger.info(\"Text units table loaded successfully\")\n", "except FileNotFoundError:\n", - " logger.warning(\"TEXT_UNIT_TABLE file not found. Setting text_units to None.\")\n", " data[\"text_units\"] = None\n", "\n", "print(\"Data loading completed\")" @@ -379,44 +307,26 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "id": "kiYpzj7-gdC4" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,743 - __main__ - INFO - Setting up CouchbaseVectorStore\n", - "2024-09-20 12:55:10,746 - graphrag.vector_stores.couchbasedb - INFO - Connecting to Couchbase at couchbase://localhost\n", - "2024-09-20 12:55:10,815 - graphrag.vector_stores.couchbasedb - INFO - Successfully connected to Couchbase\n", - "2024-09-20 12:55:10,818 - __main__ - INFO - CouchbaseVectorStore setup completed\n" - ] - } - ], + "outputs": [], "source": [ - "logger.info(\"Setting up CouchbaseVectorStore\")\n", - "\n", - "try:\n", - " couchbase_vector_store = CouchbaseVectorStore(\n", - " collection_name=COUCHBASE_COLLECTION_NAME,\n", - " bucket_name=COUCHBASE_BUCKET_NAME,\n", - " scope_name=COUCHBASE_SCOPE_NAME,\n", - " index_name=COUCHBASE_VECTOR_INDEX_NAME,\n", - " )\n", + "couchbase_vector_store = CouchbaseVectorStore(\n", + " collection_name=COUCHBASE_COLLECTION_NAME,\n", + " bucket_name=COUCHBASE_BUCKET_NAME,\n", + " scope_name=COUCHBASE_SCOPE_NAME,\n", + " index_name=COUCHBASE_VECTOR_INDEX_NAME,\n", + ")\n", "\n", - " auth = PasswordAuthenticator(str(COUCHBASE_USERNAME), str(COUCHBASE_PASSWORD))\n", - " cluster_options = ClusterOptions(auth)\n", + "auth = PasswordAuthenticator(str(COUCHBASE_USERNAME), str(COUCHBASE_PASSWORD))\n", + "cluster_options = ClusterOptions(auth)\n", "\n", - " couchbase_vector_store.connect(\n", - " connection_string=COUCHBASE_CONNECTION_STRING,\n", - " cluster_options=cluster_options,\n", - " )\n", - " logger.info(\"CouchbaseVectorStore setup completed\")\n", - "except Exception:\n", - " logger.exception(\"Error setting up CouchbaseVectorStore\")\n", - " raise" + "couchbase_vector_store.connect(\n", + " connection_string=COUCHBASE_CONNECTION_STRING,\n", + " cluster_options=cluster_options,\n", + ")" ] }, { @@ -435,46 +345,29 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "id": "japySJrUgdOG" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:10,844 - __main__ - INFO - Setting up LLM and embedding models\n", - "2024-09-20 12:55:11,577 - __main__ - INFO - LLM and embedding models setup completed\n" - ] - } - ], + "outputs": [], "source": [ - "logger.info(\"Setting up LLM and embedding models\")\n", - "\n", - "try:\n", - " llm = ChatOpenAI(\n", - " api_key=OPENAI_API_KEY,\n", - " model=LLM_MODEL,\n", - " api_type=OpenaiApiType.OpenAI,\n", - " max_retries=20,\n", - " )\n", - "\n", - " token_encoder = tiktoken.get_encoding(\"cl100k_base\")\n", + "llm = ChatOpenAI(\n", + " api_key=OPENAI_API_KEY,\n", + " model=LLM_MODEL,\n", + " api_type=OpenaiApiType.OpenAI,\n", + " max_retries=20,\n", + ")\n", "\n", - " text_embedder = OpenAIEmbedding(\n", - " api_key=OPENAI_API_KEY,\n", - " api_base=None,\n", - " api_type=OpenaiApiType.OpenAI,\n", - " model=EMBEDDING_MODEL,\n", - " deployment_name=EMBEDDING_MODEL,\n", - " max_retries=20,\n", - " )\n", + "token_encoder = tiktoken.get_encoding(\"cl100k_base\")\n", "\n", - " logger.info(\"LLM and embedding models setup completed\")\n", - "except Exception:\n", - " logger.exception(\"Error setting up models\")\n", - " raise" + "text_embedder = OpenAIEmbedding(\n", + " api_key=OPENAI_API_KEY,\n", + " api_base=None,\n", + " api_type=OpenaiApiType.OpenAI,\n", + " model=EMBEDDING_MODEL,\n", + " deployment_name=EMBEDDING_MODEL,\n", + " max_retries=20,\n", + ")" ] }, { @@ -492,137 +385,30 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "id": "C1wV0RqrgdVl" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:11,590 - __main__ - INFO - Storing entity embeddings\n", - "2024-09-20 12:55:11,594 - graphrag.vector_stores.couchbasedb - INFO - Loading 92 documents into vector storage\n", - "2024-09-20 12:55:11,780 - graphrag.vector_stores.couchbasedb - INFO - Document d64ed762ea924caa95c8d06f072a9a96 loaded successfully\n", - "2024-09-20 12:55:11,782 - graphrag.vector_stores.couchbasedb - INFO - Document bc0e3f075a4c4ebbb7c7b152b65a5625 loaded successfully\n", - "2024-09-20 12:55:11,784 - graphrag.vector_stores.couchbasedb - INFO - Document 53af055f068244d0ac861b2e89376495 loaded successfully\n", - "2024-09-20 12:55:11,785 - graphrag.vector_stores.couchbasedb - INFO - Document 3d0dcbc8971b415ea18065edc4d8c8ef loaded successfully\n", - "2024-09-20 12:55:11,787 - graphrag.vector_stores.couchbasedb - INFO - Document e22d1d1cd8d14f12b81828d940f40d70 loaded successfully\n", - "2024-09-20 12:55:11,802 - graphrag.vector_stores.couchbasedb - INFO - Document b45241d70f0e43fca764df95b2b81f77 loaded successfully\n", - "2024-09-20 12:55:11,806 - graphrag.vector_stores.couchbasedb - INFO - Document babe97e1d9784cffa1c85abc1e588126 loaded successfully\n", - "2024-09-20 12:55:11,810 - graphrag.vector_stores.couchbasedb - INFO - Document 8d141c0b80f74b79a05eed7fe161fe49 loaded successfully\n", - "2024-09-20 12:55:11,813 - graphrag.vector_stores.couchbasedb - INFO - Document bf4e255cdac94ccc83a56435a5e4b075 loaded successfully\n", - "2024-09-20 12:55:11,814 - graphrag.vector_stores.couchbasedb - INFO - Document e69dc259edb944ea9ea41264b9fcfe59 loaded successfully\n", - "2024-09-20 12:55:11,815 - graphrag.vector_stores.couchbasedb - INFO - Document 6fae5ee1a831468aa585a1ea09095998 loaded successfully\n", - "2024-09-20 12:55:11,816 - graphrag.vector_stores.couchbasedb - INFO - Document 3138f39f2bcd43a69e0697cd3b05bc4d loaded successfully\n", - "2024-09-20 12:55:11,817 - graphrag.vector_stores.couchbasedb - INFO - Document c9b8ce91fc2945b4907fe35519339cac loaded successfully\n", - "2024-09-20 12:55:11,818 - graphrag.vector_stores.couchbasedb - INFO - Document c9632a35146940c2a86167c7726d35e9 loaded successfully\n", - "2024-09-20 12:55:11,819 - graphrag.vector_stores.couchbasedb - INFO - Document d91a266f766b4737a06b0fda588ba40b loaded successfully\n", - "2024-09-20 12:55:11,820 - graphrag.vector_stores.couchbasedb - INFO - Document 56d0e5ebe79e4814bd1463cf6ca21394 loaded successfully\n", - "2024-09-20 12:55:11,821 - graphrag.vector_stores.couchbasedb - INFO - Document 6b02373137fd438ba96af28f735cdbdb loaded successfully\n", - "2024-09-20 12:55:11,825 - graphrag.vector_stores.couchbasedb - INFO - Document 1eb829d0ace042089f0746f78729696c loaded successfully\n", - "2024-09-20 12:55:11,828 - graphrag.vector_stores.couchbasedb - INFO - Document 958beecdb5bb4060948415ffd75d2b03 loaded successfully\n", - "2024-09-20 12:55:11,831 - graphrag.vector_stores.couchbasedb - INFO - Document 9ab48505fb1b487babd0d1f6d3a3f980 loaded successfully\n", - "2024-09-20 12:55:11,836 - graphrag.vector_stores.couchbasedb - INFO - Document 3b6cd96a27304614850709aba1c9598b loaded successfully\n", - "2024-09-20 12:55:11,837 - graphrag.vector_stores.couchbasedb - INFO - Document f1c6eed066f24cbdb376b910fce29ed4 loaded successfully\n", - "2024-09-20 12:55:11,839 - graphrag.vector_stores.couchbasedb - INFO - Document 3ce7c210a21b4deebad7cc9308148d86 loaded successfully\n", - "2024-09-20 12:55:11,840 - graphrag.vector_stores.couchbasedb - INFO - Document c6d1e4f56c2843e89cf0b91c10bb6de2 loaded successfully\n", - "2024-09-20 12:55:11,841 - graphrag.vector_stores.couchbasedb - INFO - Document 1033a18c45aa4584b2aef6ab96890351 loaded successfully\n", - "2024-09-20 12:55:11,841 - graphrag.vector_stores.couchbasedb - INFO - Document ed6d2eee9d7b4f5db466b1f6404d31cc loaded successfully\n", - "2024-09-20 12:55:11,841 - graphrag.vector_stores.couchbasedb - INFO - Document d2b629c0396f4180a03e16ddf3818589 loaded successfully\n", - "2024-09-20 12:55:11,845 - graphrag.vector_stores.couchbasedb - INFO - Document f7e11b0e297a44a896dc67928368f600 loaded successfully\n", - "2024-09-20 12:55:11,848 - graphrag.vector_stores.couchbasedb - INFO - Document fc01e9baa80e417c9206f941bb279407 loaded successfully\n", - "2024-09-20 12:55:11,852 - graphrag.vector_stores.couchbasedb - INFO - Document 9646481f66ce4fd2b08c2eddda42fc82 loaded successfully\n", - "2024-09-20 12:55:11,860 - graphrag.vector_stores.couchbasedb - INFO - Document 85c79fd84f5e4f918471c386852204c5 loaded successfully\n", - "2024-09-20 12:55:11,862 - graphrag.vector_stores.couchbasedb - INFO - Document de9e343f2e334d88a8ac7f8813a915e5 loaded successfully\n", - "2024-09-20 12:55:11,866 - graphrag.vector_stores.couchbasedb - INFO - Document 04dbbb2283b845baaeac0eaf0c34c9da loaded successfully\n", - "2024-09-20 12:55:11,868 - graphrag.vector_stores.couchbasedb - INFO - Document e7ffaee9d31d4d3c96e04f911d0a8f9e loaded successfully\n", - "2024-09-20 12:55:11,871 - graphrag.vector_stores.couchbasedb - INFO - Document e1fd0e904a53409aada44442f23a51cb loaded successfully\n", - "2024-09-20 12:55:11,872 - graphrag.vector_stores.couchbasedb - INFO - Document 1c109cfdc370463eb6d537e5b7b382fb loaded successfully\n", - "2024-09-20 12:55:11,874 - graphrag.vector_stores.couchbasedb - INFO - Document de988724cfdf45cebfba3b13c43ceede loaded successfully\n", - "2024-09-20 12:55:11,875 - graphrag.vector_stores.couchbasedb - INFO - Document 273daeec8cad41e6b3e450447db58ee7 loaded successfully\n", - "2024-09-20 12:55:11,876 - graphrag.vector_stores.couchbasedb - INFO - Document e2f5735c7d714423a2c4f61ca2644626 loaded successfully\n", - "2024-09-20 12:55:11,878 - graphrag.vector_stores.couchbasedb - INFO - Document 404309e89a5241d6bff42c05a45df206 loaded successfully\n", - "2024-09-20 12:55:11,880 - graphrag.vector_stores.couchbasedb - INFO - Document 015e7b58d1a14b44beab3bbc9f912c18 loaded successfully\n", - "2024-09-20 12:55:11,883 - graphrag.vector_stores.couchbasedb - INFO - Document 23527cd679ff4d5a988d52e7cd056078 loaded successfully\n", - "2024-09-20 12:55:11,888 - graphrag.vector_stores.couchbasedb - INFO - Document 148fffeb994541b2b4b6dcefda7001a8 loaded successfully\n", - "2024-09-20 12:55:11,890 - graphrag.vector_stores.couchbasedb - INFO - Document 2670deebfa3f4d69bb82c28ab250a209 loaded successfully\n", - "2024-09-20 12:55:11,892 - graphrag.vector_stores.couchbasedb - INFO - Document 1943f245ee4243bdbfbd2fd619ae824a loaded successfully\n", - "2024-09-20 12:55:11,894 - graphrag.vector_stores.couchbasedb - INFO - Document ef32c4b208d041cc856f6837915dc1b0 loaded successfully\n", - "2024-09-20 12:55:11,895 - graphrag.vector_stores.couchbasedb - INFO - Document 17ed1d92075643579a712cc6c29e8ddb loaded successfully\n", - "2024-09-20 12:55:11,896 - graphrag.vector_stores.couchbasedb - INFO - Document c160b9cb27d6408ba6ab20214a2f3f81 loaded successfully\n", - "2024-09-20 12:55:11,897 - graphrag.vector_stores.couchbasedb - INFO - Document 94a964c6992945ebb3833dfdfdc8d655 loaded successfully\n", - "2024-09-20 12:55:11,899 - graphrag.vector_stores.couchbasedb - INFO - Document 89c08e793298442686292454a1abff31 loaded successfully\n", - "2024-09-20 12:55:11,902 - graphrag.vector_stores.couchbasedb - INFO - Document d54956b79dd147f894b67a8b97dcbef0 loaded successfully\n", - "2024-09-20 12:55:11,905 - graphrag.vector_stores.couchbasedb - INFO - Document 26f88ab3e2e04c33a459ad6270ade565 loaded successfully\n", - "2024-09-20 12:55:11,908 - graphrag.vector_stores.couchbasedb - INFO - Document 48c0c4d72da74ff5bb926fa0c856d1a7 loaded successfully\n", - "2024-09-20 12:55:11,911 - graphrag.vector_stores.couchbasedb - INFO - Document 0467928aa65e4a4fba62bdb1467e3a54 loaded successfully\n", - "2024-09-20 12:55:11,913 - graphrag.vector_stores.couchbasedb - INFO - Document b7702b90c7f24190b864e8c6e64612a5 loaded successfully\n", - "2024-09-20 12:55:11,914 - graphrag.vector_stores.couchbasedb - INFO - Document b999ed77e19e4f85b7f1ae79af5c002a loaded successfully\n", - "2024-09-20 12:55:11,915 - graphrag.vector_stores.couchbasedb - INFO - Document 7c49f2710e8b4d3b8dc9310834406ea5 loaded successfully\n", - "2024-09-20 12:55:11,916 - graphrag.vector_stores.couchbasedb - INFO - Document c03ab3ce8cb74ad2a03b94723bfab3c7 loaded successfully\n", - "2024-09-20 12:55:11,917 - graphrag.vector_stores.couchbasedb - INFO - Document 0adb2d9941f34ef7b2f7743cc6225844 loaded successfully\n", - "2024-09-20 12:55:11,917 - graphrag.vector_stores.couchbasedb - INFO - Document 32e6ccab20d94029811127dbbe424c64 loaded successfully\n", - "2024-09-20 12:55:11,918 - graphrag.vector_stores.couchbasedb - INFO - Document 27f9fbe6ad8c4a8b9acee0d3596ed57c loaded successfully\n", - "2024-09-20 12:55:11,919 - graphrag.vector_stores.couchbasedb - INFO - Document d3835bf3dda84ead99deadbeac5d0d7d loaded successfully\n", - "2024-09-20 12:55:11,921 - graphrag.vector_stores.couchbasedb - INFO - Document 3b040bcc19f14e04880ae52881a89c1c loaded successfully\n", - "2024-09-20 12:55:11,923 - graphrag.vector_stores.couchbasedb - INFO - Document de6fa24480894518ab3cbcb66f739266 loaded successfully\n", - "2024-09-20 12:55:11,925 - graphrag.vector_stores.couchbasedb - INFO - Document 3d6b216c14354332b1bf1927ba168986 loaded successfully\n", - "2024-09-20 12:55:11,929 - graphrag.vector_stores.couchbasedb - INFO - Document e657b5121ff8456b9a610cfaead8e0cb loaded successfully\n", - "2024-09-20 12:55:11,932 - graphrag.vector_stores.couchbasedb - INFO - Document 96aad7cb4b7d40e9b7e13b94a67af206 loaded successfully\n", - "2024-09-20 12:55:11,934 - graphrag.vector_stores.couchbasedb - INFO - Document dde131ab575d44dbb55289a6972be18f loaded successfully\n", - "2024-09-20 12:55:11,938 - graphrag.vector_stores.couchbasedb - INFO - Document 147c038aef3e4422acbbc5f7938c4ab8 loaded successfully\n", - "2024-09-20 12:55:11,941 - graphrag.vector_stores.couchbasedb - INFO - Document b785a9025069417f94950ad231bb1441 loaded successfully\n", - "2024-09-20 12:55:11,942 - graphrag.vector_stores.couchbasedb - INFO - Document fbeef791d19b413a9c93c6608286ab63 loaded successfully\n", - "2024-09-20 12:55:11,944 - graphrag.vector_stores.couchbasedb - INFO - Document b462b94ce47a4b8c8fffa33f7242acec loaded successfully\n", - "2024-09-20 12:55:11,945 - graphrag.vector_stores.couchbasedb - INFO - Document 19a7f254a5d64566ab5cc15472df02de loaded successfully\n", - "2024-09-20 12:55:11,946 - graphrag.vector_stores.couchbasedb - INFO - Document 3671ea0dd4e84c1a9b02c5ab2c8f4bac loaded successfully\n", - "2024-09-20 12:55:11,946 - graphrag.vector_stores.couchbasedb - INFO - Document 83a6cb03df6b41d8ad6ee5f6fef5f024 loaded successfully\n", - "2024-09-20 12:55:11,949 - graphrag.vector_stores.couchbasedb - INFO - Document deece7e64b2a4628850d4bb6e394a9c3 loaded successfully\n", - "2024-09-20 12:55:11,952 - graphrag.vector_stores.couchbasedb - INFO - Document 4f3c97517f794ebfb49c4c6315f9cf23 loaded successfully\n", - "2024-09-20 12:55:11,953 - graphrag.vector_stores.couchbasedb - INFO - Document 68105770b523412388424d984e711917 loaded successfully\n", - "2024-09-20 12:55:11,955 - graphrag.vector_stores.couchbasedb - INFO - Document 077d2820ae1845bcbb1803379a3d1eae loaded successfully\n", - "2024-09-20 12:55:11,958 - graphrag.vector_stores.couchbasedb - INFO - Document adf4ee3fbe9b4d0381044838c4f889c8 loaded successfully\n", - "2024-09-20 12:55:11,959 - graphrag.vector_stores.couchbasedb - INFO - Document 07b2425216bd4f0aa4e079827cb48ef5 loaded successfully\n", - "2024-09-20 12:55:11,961 - graphrag.vector_stores.couchbasedb - INFO - Document eae4259b19a741ab9f9f6af18c4a0470 loaded successfully\n", - "2024-09-20 12:55:11,962 - graphrag.vector_stores.couchbasedb - INFO - Document fa3c4204421c48609e52c8de2da4c654 loaded successfully\n", - "2024-09-20 12:55:11,962 - graphrag.vector_stores.couchbasedb - INFO - Document 4a67211867e5464ba45126315a122a8a loaded successfully\n", - "2024-09-20 12:55:11,963 - graphrag.vector_stores.couchbasedb - INFO - Document 1fd3fa8bb5a2408790042ab9573779ee loaded successfully\n", - "2024-09-20 12:55:11,966 - graphrag.vector_stores.couchbasedb - INFO - Document 4119fd06010c494caa07f439b333f4c5 loaded successfully\n", - "2024-09-20 12:55:11,966 - graphrag.vector_stores.couchbasedb - INFO - Document 254770028d7a4fa9877da4ba0ad5ad21 loaded successfully\n", - "2024-09-20 12:55:11,970 - graphrag.vector_stores.couchbasedb - INFO - Document 1745a2485a9443bab76587ad650e9be0 loaded successfully\n", - "2024-09-20 12:55:11,972 - graphrag.vector_stores.couchbasedb - INFO - Document 36a4fcd8efc144e6b8af9a1c7ab8b2ce loaded successfully\n", - "2024-09-20 12:55:11,973 - graphrag.vector_stores.couchbasedb - INFO - Document 6102fc6619ed422ebc42588bfa97355d loaded successfully\n", - "2024-09-20 12:55:11,974 - graphrag.vector_stores.couchbasedb - INFO - Document 32ee140946e5461f9275db664dc541a5 loaded successfully\n", - "2024-09-20 12:55:11,975 - graphrag.vector_stores.couchbasedb - INFO - Document e2bf260115514fb3b252fd879fb3e7be loaded successfully\n", - "2024-09-20 12:55:11,976 - __main__ - INFO - Entity semantic embeddings stored successfully\n" - ] - } - ], + "outputs": [], "source": [ - "logger.info(\"Storing entity embeddings\")\n", "\n", "try:\n", " if not isinstance(data[\"entities\"], list):\n", - " raise TypeError(\"data['entities'] must be a list\")\n", + " error_message = \"data['entities'] must be a list\"\n", + " raise TypeError(error_message)\n", "\n", " store_entity_semantic_embeddings(\n", " entities=data[\"entities\"], vectorstore=couchbase_vector_store\n", " )\n", - " logger.info(\"Entity semantic embeddings stored successfully\")\n", - "except AttributeError:\n", - " logger.exception(\n", - " \"Error storing entity semantic embeddings. Ensure all entities have an 'id' attribute\"\n", - " )\n", - " raise\n", - "except TypeError:\n", - " logger.exception(\n", - " \"Error storing entity semantic embeddings. Ensure data['entities'] is a list\"\n", - " )\n", - " raise\n", - "except Exception:\n", - " logger.exception(\"Error storing entity semantic embeddings\")\n", - " raise" + "except AttributeError as err:\n", + " error_message = \"Error storing entity semantic embeddings. Ensure all entities have an 'id' attribute\"\n", + " raise AttributeError(error_message) from err\n", + "except TypeError as err:\n", + " error_message = \"Error storing entity semantic embeddings. Ensure data['entities'] is a list\"\n", + " raise TypeError(error_message) from err\n", + "except Exception as err:\n", + " error_message = \"Error storing entity semantic embeddings\"\n", + " raise Exception(error_message) from err\n" ] }, { @@ -690,23 +476,12 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "id": "8ZiML072gddQ" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:11,994 - __main__ - INFO - Creating search engine\n", - "2024-09-20 12:55:11,999 - __main__ - INFO - Search engine created\n" - ] - } - ], + "outputs": [], "source": [ - "logger.info(\"Creating search engine\")\n", - "\n", "context_builder = LocalSearchMixedContext(\n", " community_reports=data[\"reports\"],\n", " text_units=data[\"text_units\"],\n", @@ -746,9 +521,7 @@ " llm_params=llm_params,\n", " context_builder_params=local_context_params,\n", " response_type=\"multiple paragraphs\",\n", - ")\n", - "\n", - "logger.info(\"Search engine created\")" + ")" ] }, { @@ -763,73 +536,19 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "id": "1SvUSrIbgdkh" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-09-20 12:55:12,030 - __main__ - INFO - Running query: 'Give me a summary about the story'\n", - "2024-09-20 12:55:12,034 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by text with k=20\n", - "2024-09-20 12:55:12,600 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "2024-09-20 12:55:12,628 - graphrag.vector_stores.couchbasedb - INFO - Performing similarity search by vector with k=20\n", - "2024-09-20 12:55:12,660 - graphrag.vector_stores.couchbasedb - INFO - Found 20 results in similarity search by vector\n", - "2024-09-20 12:55:12,800 - graphrag.query.structured_search.local_search.search - INFO - GENERATE ANSWER: 1726817112.0347128. QUERY: Give me a summary about the story\n", - "2024-09-20 12:55:14,097 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2024-09-20 12:55:25,536 - __main__ - INFO - Query completed successfully\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Question: 'Give me a summary about the story'\n", - "Answer: # Summary of the Story\n", - "\n", - "## Introduction to the Paranormal Military Squad\n", - "\n", - "The narrative centers around the Paranormal Military Squad, a secretive governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", - "\n", - "## Key Figures and Their Roles\n", - "\n", - "Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 38, 94)].\n", - "\n", - "## Operation: Dulce\n", - "\n", - "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (142, 143, 144, 194, 196)].\n", - "\n", - "## Deciphering Alien Signals\n", - "\n", - "A primary focus of the Paranormal Military Squad is deciphering alien signals. This involves analyzing and decoding extraterrestrial communications to understand their intent and ensure humanity's safety. The squad's efforts in this area are critical for preparing for potential first contact scenarios and establishing effective communication with alien races. The use of advanced communications equipment and the strategic location at the Dulce military base are essential components of this mission [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (125, 126, 134, 108, 114, +more)].\n", - "\n", - "## Potential First Contact Scenarios\n", - "\n", - "The Paranormal Military Squad is preparing for potential first contact scenarios with extraterrestrial intelligence. This involves mediating Earth's bid for cosmic relevance through dialogue, ensuring effective communication and negotiation with alien beings. The squad's role in these scenarios is critical, as they represent humanity in these unprecedented encounters. The potential implications of first contact are monumental, making the squad's mission highly significant [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (119, 118, 109, 107, 127, +more)].\n", - "\n", - "## Global Implications of the Mission\n", - "\n", - "The activities of the Paranormal Military Squad have significant global implications. Their mission to engage with extraterrestrial intelligence and prepare for potential first contact scenarios could alter the course of human history. The squad's efforts in deciphering alien signals, ensuring humanity's safety, and establishing effective communication with alien races are critical for navigating the complexities of cosmic discovery. The potential for both positive and negative outcomes makes the squad's mission highly impactful [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (110, 111, 140, 123, 135, +more)].\n", - "\n", - "## Conclusion\n", - "\n", - "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a gripping tale of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's mission is fraught with challenges and potential dangers, but their work is crucial for ensuring humanity's safety and preparing for the monumental event of first contact. The narrative highlights the importance of teamwork, strategic thinking, and the relentless pursuit of knowledge in the face of the unknown.\n" - ] - } - ], + "outputs": [], "source": [ "question = \"Give me a summary about the story\"\n", - "logger.info(\"Running query: '%s'\", question)\n", "\n", "try:\n", " result = await search_engine.asearch(question)\n", " print(f\"Question: '{question}'\")\n", " print(f\"Answer: {result.response}\")\n", - " logger.info(\"Query completed successfully\")\n", "except Exception as e:\n", - " logger.exception(\"An error occurred while processing the query\")\n", " print(f\"An error occurred while processing the query: {(e)}\")" ] }, From e6826bc13d9b4508cf4b81592fa0764cf73d4a6f Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 13:03:00 +0530 Subject: [PATCH 21/25] removed logging --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 73 +++++++++++++++---- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 0ee0bcda1d..3be670b734 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -115,7 +115,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "id": "Cz1PfM7zgc39" }, @@ -152,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -181,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -208,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -230,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -252,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -277,9 +277,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Data loading completed\n" + ] + } + ], "source": [ "try:\n", " data[\"text_units\"] = pd.read_parquet(\n", @@ -307,7 +315,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "id": "kiYpzj7-gdC4" }, @@ -345,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "id": "japySJrUgdOG" }, @@ -385,7 +393,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "id": "C1wV0RqrgdVl" }, @@ -476,7 +484,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "id": "8ZiML072gddQ" }, @@ -536,11 +544,48 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "id": "1SvUSrIbgdkh" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: 'Give me a summary about the story'\n", + "Answer: # Summary of the Story\n", + "\n", + "## Introduction to the Paranormal Military Squad\n", + "\n", + "The narrative centers around the Paranormal Military Squad, a secretive governmental faction tasked with investigating and engaging with extraterrestrial phenomena. This elite group operates primarily from the Dulce military base, where they are deeply involved in Operation: Dulce. The mission's primary objective is to mediate Earth's contact with alien intelligence, ensuring humanity's safety and preparing for potential first contact scenarios [Data: Paranormal Military Squad and Operation: Dulce (18)].\n", + "\n", + "## Key Figures and Their Roles\n", + "\n", + "Key figures within the squad include Alex Mercer, Dr. Jordan Hayes, Taylor Cruz, and Sam Rivera. Alex Mercer provides leadership and strategic insights, guiding the team through high-stakes operations. Dr. Jordan Hayes focuses on deciphering alien codes and understanding their intent, contributing significantly to the team's mission. Taylor Cruz oversees the team's efforts, providing strategic insights and emphasizing diligence. Sam Rivera brings youthful vigor and optimism, handling technical tasks, particularly in communications and signal interpretation [Data: Paranormal Military Squad and Operation: Dulce (18); Entities (30, 31, 38, 94)].\n", + "\n", + "## Operation: Dulce\n", + "\n", + "Operation: Dulce is a significant mission undertaken by the Paranormal Military Squad, focusing on mediating Earth's contact with alien intelligence. This operation involves investigating cosmic phenomena, decrypting alien communications, and preparing for potential first contact scenarios. The Dulce military base is equipped with high-tech equipment specifically designed for decoding alien communications, making it a strategic location for the squad's activities [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (142, 143, 144, 194, 196)].\n", + "\n", + "## Deciphering Alien Signals\n", + "\n", + "A primary focus of the Paranormal Military Squad is deciphering alien signals. This involves analyzing and decoding extraterrestrial communications to understand their intent and ensure humanity's safety. The squad's efforts in this area are critical for preparing for potential first contact scenarios and establishing effective communication with alien races. The use of advanced communications equipment and the strategic location at the Dulce military base are essential components of this mission [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (125, 126, 134, 108, 114, +more)].\n", + "\n", + "## Potential First Contact Scenarios\n", + "\n", + "The Paranormal Military Squad is preparing for potential first contact scenarios with extraterrestrial intelligence. This involves mediating Earth's bid for cosmic relevance through dialogue, ensuring effective communication and negotiation with alien beings. The squad's role in these scenarios is critical, as they represent humanity in these unprecedented encounters. The potential implications of first contact are monumental, making the squad's mission highly significant [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (119, 118, 109, 107, 127, +more)].\n", + "\n", + "## Global Implications of the Mission\n", + "\n", + "The activities of the Paranormal Military Squad have significant global implications. Their mission to engage with extraterrestrial intelligence and prepare for potential first contact scenarios could alter the course of human history. The squad's efforts in deciphering alien signals, ensuring humanity's safety, and establishing effective communication with alien races are critical for navigating the complexities of cosmic discovery. The potential for both positive and negative outcomes makes the squad's mission highly impactful [Data: Paranormal Military Squad and Operation: Dulce (18); Relationships (110, 111, 140, 123, 135, +more)].\n", + "\n", + "## Conclusion\n", + "\n", + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's efforts in decoding alien signals, preparing for first contact, and navigating the potential global implications of their mission highlight the profound significance of their work. The Dulce military base serves as the epicenter of these activities, providing the necessary resources and strategic advantage for the squad's groundbreaking endeavors.\n" + ] + } + ], "source": [ "question = \"Give me a summary about the story\"\n", "\n", From 6c702afef4a7bd9ebdad712868b28f99c52ea2b9 Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 13:45:59 +0530 Subject: [PATCH 22/25] updated docs --- .../community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 3be670b734..3805e3a8c0 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -7,7 +7,7 @@ }, "source": [ "# Tutorial on Graph RAG(Local Search) with Couchbase Vector Store\n", - "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, and a local search engine for querying textual data.\n", + "This notebook walks through the process of setting up a search engine that combines Couchbase for storing embeddings, OpenAI's models for generating embeddings, knowledge graph and communities from textual data.\n", "\n", "## Setting up Couchbase\n", "\n", @@ -479,7 +479,7 @@ "\n", "### **Summary**\n", "\n", - "This search engine leverages **structured data** (entities, relationships, reports, etc.) from the input files and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the graph RAG to generate meaningful answers." + "This search engine leverages **structured data** (entities, relationships, reports, etc.) generated from the input files and integrates **semantic embeddings** stored in Couchbase. The search engine processes the query using OpenAI's language model, which uses the structured data context of the graph RAG to generate meaningful answers." ] }, { From 575f45a3a05ca49c8d1dd666259f81e9cc4a7a8e Mon Sep 17 00:00:00 2001 From: Kaustav Ghosh Date: Fri, 20 Sep 2024 15:32:13 +0530 Subject: [PATCH 23/25] updated vector store to support error handling --- .../couchbase/GraphRAG_with_Couchbase.ipynb | 2 +- graphrag/vector_stores/couchbasedb.py | 62 +++++++++++++------ 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb index 3805e3a8c0..6f5214fbd4 100644 --- a/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb +++ b/examples_notebooks/community_contrib/couchbase/GraphRAG_with_Couchbase.ipynb @@ -582,7 +582,7 @@ "\n", "## Conclusion\n", "\n", - "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a compelling narrative of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's efforts in decoding alien signals, preparing for first contact, and navigating the potential global implications of their mission highlight the profound significance of their work. The Dulce military base serves as the epicenter of these activities, providing the necessary resources and strategic advantage for the squad's groundbreaking endeavors.\n" + "In summary, the story of the Paranormal Military Squad and Operation: Dulce is a gripping tale of humanity's quest to understand and engage with extraterrestrial intelligence. The squad's mission is fraught with challenges and potential dangers, but their work is crucial for the future of human civilization. Through their efforts, they aim to bridge the gap between Earth and the cosmos, ensuring that humanity is prepared for whatever lies beyond the stars.\n" ] } ], diff --git a/graphrag/vector_stores/couchbasedb.py b/graphrag/vector_stores/couchbasedb.py index 001dab3075..2b861af888 100644 --- a/graphrag/vector_stores/couchbasedb.py +++ b/graphrag/vector_stores/couchbasedb.py @@ -5,7 +5,9 @@ from typing import Any from couchbase.cluster import Cluster +from couchbase.exceptions import CouchbaseException, DocumentExistsException from couchbase.options import SearchOptions +from couchbase.result import MultiMutationResult from couchbase.search import SearchRequest from couchbase.vector_search import VectorQuery, VectorSearch @@ -81,8 +83,15 @@ def connect(self, **kwargs: Any) -> None: logger.exception(error_msg) raise ConnectionError(error_msg) from e - def load_documents(self, documents: list[VectorStoreDocument]) -> None: - """Load documents into vector storage.""" + def load_documents(self, documents: list[VectorStoreDocument]) -> int: + """ + Load documents into vector storage. + + :param documents: A list of VectorStoreDocuments to load into the vector store. + :raises DuplicateDocumentError: If a document with the same ID already exists in the vector store. + :raises DocumentStoreError: If there's an error writing documents to Couchbase. + :returns: The number of documents loaded into the vector store. + """ logger.info("Loading %d documents into vector storage", len(documents)) batch = { doc.id: { @@ -93,25 +102,38 @@ def load_documents(self, documents: list[VectorStoreDocument]) -> None: for doc in documents if doc.vector is not None } - if batch: - try: - result = self.document_collection.upsert_multi(batch) - - if hasattr(result, "results"): - for doc_id, result_item in result.results.items(): - if result_item.success: - logger.info("Document %s loaded successfully", doc_id) - else: - logger.error( - "Failed to load document %s: %s", - doc_id, - result_item.err, - ) - - except Exception as e: - logger.exception("Error occurred while loading documents: %s", e) - else: + + if not batch: logger.warning("No valid documents to load") + return 0 + + try: + result: MultiMutationResult = self.document_collection.upsert_multi(batch) + + if not result.all_ok and result.exceptions: + duplicate_ids = [] + other_errors = [] + for doc_id, ex in result.exceptions.items(): + if isinstance(ex, DocumentExistsException): + duplicate_ids.append(doc_id) + else: + other_errors.append({"id": doc_id, "exception": str(ex)}) + + if duplicate_ids: + msg = f"IDs '{', '.join(duplicate_ids)}' already exist in the vector store." + raise DocumentExistsException(msg) + + if other_errors: + msg = f"Failed to load documents into Couchbase. Errors:\n{other_errors}" + raise CouchbaseException(msg) + + logger.info("Successfully loaded %d documents", len(batch)) + return len(batch) + + except Exception as e: + logger.exception("Error occurred while loading documents: %s", e) + msg = f"Failed to load documents into Couchbase. Error: {e}" + raise CouchbaseException(msg) from e def similarity_search_by_text( self, text: str, text_embedder: TextEmbedder, k: int = 10, **kwargs: Any From a329a41758635b6ad41f65d022fab2000404c28e Mon Sep 17 00:00:00 2001 From: teetangh Date: Wed, 27 Nov 2024 12:56:44 +0530 Subject: [PATCH 24/25] Add couchbase package version 4.3.4 --- poetry.lock | 47 ++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 1 + 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 47985d7218..534dc62862 100644 --- a/poetry.lock +++ b/poetry.lock @@ -720,6 +720,46 @@ mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pil test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] +[[package]] +name = "couchbase" +version = "4.3.4" +description = "Python Client for Couchbase" +optional = false +python-versions = ">=3.7" +files = [ + {file = "couchbase-4.3.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:395e7b05495132a071dce5cdd84a3ec6e803205875f8ee22e85a89a16bb1b5f4"}, + {file = "couchbase-4.3.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:263a18307d1f1a141b93ae370b19843b1160dd702559152aea19dd08768f59f5"}, + {file = "couchbase-4.3.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:16751d4f3b0fe49666515ebed7967e8f38ec3862b329f773f88252acfd7c2b1f"}, + {file = "couchbase-4.3.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4dcc7eb9f57825c0097785d1c042e146908d2883f5e733d4ca07ac548bb532a2"}, + {file = "couchbase-4.3.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:42f16ca2ec636db9ecacd3b97db85c923be8374eaae2fe097124d8eb92b4293f"}, + {file = "couchbase-4.3.4-cp310-cp310-win_amd64.whl", hash = "sha256:8eecc9cdead68efe4119ebe41b065dadf83bc1653ec56470800c5093e378cacc"}, + {file = "couchbase-4.3.4-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:1a6d6c4542e4ffe223960553e057bc175cfcee3fe274f63551e9d90d7c2435c5"}, + {file = "couchbase-4.3.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae44db4ce78b691028075fc54beec2dc1a59829f53a2b282f9a8b3ea6b71ad22"}, + {file = "couchbase-4.3.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a175f1e447b9aeb7ab5aab66350261be28ad7d9a07fff9c7fe48c55828133ec3"}, + {file = "couchbase-4.3.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efb0170d5e7766593d47292c14a782e201f0167175f0e60cd7ba3b9acd75e349"}, + {file = "couchbase-4.3.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3f7d9e0492727b8560d36f5cb45c2a6ec9507dd2120ddd6313fd21e04cfc2ab9"}, + {file = "couchbase-4.3.4-cp311-cp311-win_amd64.whl", hash = "sha256:f32e9d87e5157b86af5de85200cab433690789551d2bda1b8e7a25bf2680d511"}, + {file = "couchbase-4.3.4-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:395afab875aa3d293429cebc080cc12ac6e32c665275740d5a8445c688ad84ce"}, + {file = "couchbase-4.3.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:852ff1e36668a9b0e0e4dc015df06e3a663bd5e0301a52c25b724969073a1a11"}, + {file = "couchbase-4.3.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:79ab95992829de574e23588ce35fc14ab6f8a5fd378c046522a678b7583a9b29"}, + {file = "couchbase-4.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88827951b4132b89b6f37f1f2706b1e2f04870825c420e931c3caa770fc4a4e8"}, + {file = "couchbase-4.3.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d8f88c731d0d28132a992978aae5e1140a71276cc528ecc2ed408b2e386d1183"}, + {file = "couchbase-4.3.4-cp312-cp312-win_amd64.whl", hash = "sha256:fb137358e249c752dbecb44393769696c07fd069eb976b2a9890ddd457d35fcb"}, + {file = "couchbase-4.3.4-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:d3f84932dd2d26a06048fe0858be21f5c6907a304ce59d673d56691e6eda7626"}, + {file = "couchbase-4.3.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f0975f9efeba9c425c2c73e5c3b6f3b4041cb61e1c5c0240c581454b0fc222fe"}, + {file = "couchbase-4.3.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:43609d64306ac8be7c396c0395a140c8f6b5bbab889e4b943f1b0dd500e34568"}, + {file = "couchbase-4.3.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8a549126875e38a79f7f7d97094a482b3fd446c20266ddb5c274d6398be8477"}, + {file = "couchbase-4.3.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c1adc3c7cf411f1c61e2f9b4454719d25f7229594280d7dedc7a8c9c2da8189f"}, + {file = "couchbase-4.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:9b34b9599b29c2366e2943309c45c0666956e458848eb9b88a43a765afc8728c"}, + {file = "couchbase-4.3.4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:f9b9b5523fbc89189119eceea170c329cf02115e1eba59818faefb594b729520"}, + {file = "couchbase-4.3.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e2cb01a0b567694a12abdb01f73392cf64cbc881e496e70b32f05f36ac50ca0f"}, + {file = "couchbase-4.3.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:31eb077c2cd9694b933a8a18836c117f6682a220b33a767b3379934b540e6e1c"}, + {file = "couchbase-4.3.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ad97d9467485667f8ba2b644c5823bb53fb1799dca5a29b671258d6af719ca0"}, + {file = "couchbase-4.3.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:51f50dd684e9894d5c8059ee6da5e9bc6e1a47ab3be103a3b299e7d01de02bab"}, + {file = "couchbase-4.3.4-cp39-cp39-win_amd64.whl", hash = "sha256:1059b4358d1f1b69812f114d0c5a547f830ab9fb24bcd5076a05ceb4788adee1"}, + {file = "couchbase-4.3.4.tar.gz", hash = "sha256:f195958606cf3a255fd96646ca3dd7e2ddcecf3664b3883826c7b89ef680088e"}, +] + [[package]] name = "coverage" version = "7.6.4" @@ -4432,6 +4472,11 @@ files = [ {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd"}, {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6"}, {file = "scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1"}, + {file = "scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5"}, + {file = "scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908"}, + {file = "scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3"}, + {file = "scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12"}, + {file = "scikit_learn-1.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:b7b0f9a0b1040830d38c39b91b3a44e1b643f4b36e36567b80b7c6bd2202a27f"}, {file = "scikit_learn-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:757c7d514ddb00ae249832fe87100d9c73c6ea91423802872d9e74970a0e40b9"}, {file = "scikit_learn-1.5.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:52788f48b5d8bca5c0736c175fa6bdaab2ef00a8f536cda698db61bd89c551c1"}, {file = "scikit_learn-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:643964678f4b5fbdc95cbf8aec638acc7aa70f5f79ee2cdad1eec3df4ba6ead8"}, @@ -5210,4 +5255,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "a53f642c91942635ab0b62af62591c9d146d58f7b91d8f04799f3730dca4f5f0" +content-hash = "8693e53a89961c6a9d83248e87de9c64df2b2692c387e56745a633eff5c51323" diff --git a/pyproject.toml b/pyproject.toml index e92ae626df..1241b9489a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,6 +91,7 @@ json-repair = "^0.30.0" future = "^1.0.0" # Needed until graspologic fixes their dependency typer = "^0.12.5" +couchbase = "^4.3.4" [tool.poetry.group.dev.dependencies] From 796ecc3eec7dbd7845851d5ca3002d1577a4390e Mon Sep 17 00:00:00 2001 From: teetangh Date: Mon, 16 Dec 2024 15:00:54 +0530 Subject: [PATCH 25/25] added poetry files --- poetry.lock | 5309 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5309 insertions(+) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000000..584064904a --- /dev/null +++ b/poetry.lock @@ -0,0 +1,5309 @@ +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. + +[[package]] +name = "aiofiles" +version = "24.1.0" +description = "File support for asyncio." +optional = false +python-versions = ">=3.8" +files = [ + {file = "aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5"}, + {file = "aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c"}, +] + +[[package]] +name = "aiolimiter" +version = "1.2.1" +description = "asyncio rate limiter, a leaky bucket implementation" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "aiolimiter-1.2.1-py3-none-any.whl", hash = "sha256:d3f249e9059a20badcb56b61601a83556133655c11d1eb3dd3e04ff069e5f3c7"}, + {file = "aiolimiter-1.2.1.tar.gz", hash = "sha256:e02a37ea1a855d9e832252a105420ad4d15011505512a1a1d814647451b5cca9"}, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.7.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352"}, + {file = "anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "anytree" +version = "2.12.1" +description = "Powerful and Lightweight Python Tree Data Structure with various plugins" +optional = false +python-versions = ">=3.7.2,<4" +files = [ + {file = "anytree-2.12.1-py3-none-any.whl", hash = "sha256:5ea9e61caf96db1e5b3d0a914378d2cd83c269dfce1fb8242ce96589fa3382f0"}, + {file = "anytree-2.12.1.tar.gz", hash = "sha256:244def434ccf31b668ed282954e5d315b4e066c4940b94aff4a7962d85947830"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "attrs" +version = "24.3.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +files = [ + {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, + {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "autograd" +version = "1.7.0" +description = "Efficiently computes derivatives of NumPy code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "autograd-1.7.0-py3-none-any.whl", hash = "sha256:49680300f842f3a8722b060ac0d3ed7aca071d1ad4d3d38c9fdadafdcc73c30b"}, + {file = "autograd-1.7.0.tar.gz", hash = "sha256:de743fd368d6df523cd37305dcd171861a9752a144493677d2c9f5a56983ff2f"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +scipy = ["scipy"] + +[[package]] +name = "azure-common" +version = "1.1.28" +description = "Microsoft Azure Client Library for Python (Common)" +optional = false +python-versions = "*" +files = [ + {file = "azure-common-1.1.28.zip", hash = "sha256:4ac0cd3214e36b6a1b6a442686722a5d8cc449603aa833f3f0f40bda836704a3"}, + {file = "azure_common-1.1.28-py2.py3-none-any.whl", hash = "sha256:5c12d3dcf4ec20599ca6b0d3e09e86e146353d443e7fcc050c9a19c1f9df20ad"}, +] + +[[package]] +name = "azure-core" +version = "1.32.0" +description = "Microsoft Azure Core Library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "azure_core-1.32.0-py3-none-any.whl", hash = "sha256:eac191a0efb23bfa83fddf321b27b122b4ec847befa3091fa736a5c32c50d7b4"}, + {file = "azure_core-1.32.0.tar.gz", hash = "sha256:22b3c35d6b2dae14990f6c1be2912bf23ffe50b220e708a28ab1bb92b1c730e5"}, +] + +[package.dependencies] +requests = ">=2.21.0" +six = ">=1.11.0" +typing-extensions = ">=4.6.0" + +[package.extras] +aio = ["aiohttp (>=3.0)"] + +[[package]] +name = "azure-identity" +version = "1.19.0" +description = "Microsoft Azure Identity Library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "azure_identity-1.19.0-py3-none-any.whl", hash = "sha256:e3f6558c181692d7509f09de10cca527c7dce426776454fb97df512a46527e81"}, + {file = "azure_identity-1.19.0.tar.gz", hash = "sha256:500144dc18197d7019b81501165d4fa92225f03778f17d7ca8a2a180129a9c83"}, +] + +[package.dependencies] +azure-core = ">=1.31.0" +cryptography = ">=2.5" +msal = ">=1.30.0" +msal-extensions = ">=1.2.0" +typing-extensions = ">=4.0.0" + +[[package]] +name = "azure-search-documents" +version = "11.5.2" +description = "Microsoft Azure Cognitive Search Client Library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "azure_search_documents-11.5.2-py3-none-any.whl", hash = "sha256:c949d011008a4b0bcee3db91132741b4e4d50ddb3f7e2f48944d949d4b413b11"}, + {file = "azure_search_documents-11.5.2.tar.gz", hash = "sha256:98977dd1fa4978d3b7d8891a0856b3becb6f02cc07ff2e1ea40b9c7254ada315"}, +] + +[package.dependencies] +azure-common = ">=1.1" +azure-core = ">=1.28.0" +isodate = ">=0.6.0" +typing-extensions = ">=4.6.0" + +[[package]] +name = "azure-storage-blob" +version = "12.24.0" +description = "Microsoft Azure Blob Storage Client Library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "azure_storage_blob-12.24.0-py3-none-any.whl", hash = "sha256:4f0bb4592ea79a2d986063696514c781c9e62be240f09f6397986e01755bc071"}, + {file = "azure_storage_blob-12.24.0.tar.gz", hash = "sha256:eaaaa1507c8c363d6e1d1342bd549938fdf1adec9b1ada8658c8f5bf3aea844e"}, +] + +[package.dependencies] +azure-core = ">=1.30.0" +cryptography = ">=2.1.4" +isodate = ">=0.6.1" +typing-extensions = ">=4.6.0" + +[package.extras] +aio = ["azure-core[aio] (>=1.30.0)"] + +[[package]] +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beartype" +version = "0.18.5" +description = "Unbearably fast runtime type checking in pure Python." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "beartype-0.18.5-py3-none-any.whl", hash = "sha256:5301a14f2a9a5540fe47ec6d34d758e9cd8331d36c4760fc7a5499ab86310089"}, + {file = "beartype-0.18.5.tar.gz", hash = "sha256:264ddc2f1da9ec94ff639141fbe33d22e12a9f75aa863b83b7046ffff1381927"}, +] + +[package.extras] +all = ["typing-extensions (>=3.10.0.0)"] +dev = ["autoapi (>=0.9.0)", "coverage (>=5.5)", "equinox", "mypy (>=0.800)", "numpy", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pytest (>=4.0.0)", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"] +doc-rtd = ["autoapi (>=0.9.0)", "pydata-sphinx-theme (<=0.7.2)", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)"] +test-tox = ["equinox", "mypy (>=0.800)", "numpy", "pandera", "pytest (>=4.0.0)", "sphinx", "typing-extensions (>=3.10.0.0)"] +test-tox-coverage = ["coverage (>=5.5)"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.2.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.9" +files = [ + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, +] + +[package.dependencies] +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.5)"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.3.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.10" +files = [ + {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, + {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, + {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, + {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, + {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, + {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, + {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, + {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, + {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, + {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, +] + +[package.dependencies] +numpy = ">=1.23" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "couchbase" +version = "4.3.4" +description = "Python Client for Couchbase" +optional = false +python-versions = ">=3.7" +files = [ + {file = "couchbase-4.3.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:395e7b05495132a071dce5cdd84a3ec6e803205875f8ee22e85a89a16bb1b5f4"}, + {file = "couchbase-4.3.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:263a18307d1f1a141b93ae370b19843b1160dd702559152aea19dd08768f59f5"}, + {file = "couchbase-4.3.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:16751d4f3b0fe49666515ebed7967e8f38ec3862b329f773f88252acfd7c2b1f"}, + {file = "couchbase-4.3.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4dcc7eb9f57825c0097785d1c042e146908d2883f5e733d4ca07ac548bb532a2"}, + {file = "couchbase-4.3.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:42f16ca2ec636db9ecacd3b97db85c923be8374eaae2fe097124d8eb92b4293f"}, + {file = "couchbase-4.3.4-cp310-cp310-win_amd64.whl", hash = "sha256:8eecc9cdead68efe4119ebe41b065dadf83bc1653ec56470800c5093e378cacc"}, + {file = "couchbase-4.3.4-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:1a6d6c4542e4ffe223960553e057bc175cfcee3fe274f63551e9d90d7c2435c5"}, + {file = "couchbase-4.3.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae44db4ce78b691028075fc54beec2dc1a59829f53a2b282f9a8b3ea6b71ad22"}, + {file = "couchbase-4.3.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a175f1e447b9aeb7ab5aab66350261be28ad7d9a07fff9c7fe48c55828133ec3"}, + {file = "couchbase-4.3.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efb0170d5e7766593d47292c14a782e201f0167175f0e60cd7ba3b9acd75e349"}, + {file = "couchbase-4.3.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3f7d9e0492727b8560d36f5cb45c2a6ec9507dd2120ddd6313fd21e04cfc2ab9"}, + {file = "couchbase-4.3.4-cp311-cp311-win_amd64.whl", hash = "sha256:f32e9d87e5157b86af5de85200cab433690789551d2bda1b8e7a25bf2680d511"}, + {file = "couchbase-4.3.4-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:395afab875aa3d293429cebc080cc12ac6e32c665275740d5a8445c688ad84ce"}, + {file = "couchbase-4.3.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:852ff1e36668a9b0e0e4dc015df06e3a663bd5e0301a52c25b724969073a1a11"}, + {file = "couchbase-4.3.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:79ab95992829de574e23588ce35fc14ab6f8a5fd378c046522a678b7583a9b29"}, + {file = "couchbase-4.3.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88827951b4132b89b6f37f1f2706b1e2f04870825c420e931c3caa770fc4a4e8"}, + {file = "couchbase-4.3.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d8f88c731d0d28132a992978aae5e1140a71276cc528ecc2ed408b2e386d1183"}, + {file = "couchbase-4.3.4-cp312-cp312-win_amd64.whl", hash = "sha256:fb137358e249c752dbecb44393769696c07fd069eb976b2a9890ddd457d35fcb"}, + {file = "couchbase-4.3.4-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:d3f84932dd2d26a06048fe0858be21f5c6907a304ce59d673d56691e6eda7626"}, + {file = "couchbase-4.3.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f0975f9efeba9c425c2c73e5c3b6f3b4041cb61e1c5c0240c581454b0fc222fe"}, + {file = "couchbase-4.3.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:43609d64306ac8be7c396c0395a140c8f6b5bbab889e4b943f1b0dd500e34568"}, + {file = "couchbase-4.3.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8a549126875e38a79f7f7d97094a482b3fd446c20266ddb5c274d6398be8477"}, + {file = "couchbase-4.3.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c1adc3c7cf411f1c61e2f9b4454719d25f7229594280d7dedc7a8c9c2da8189f"}, + {file = "couchbase-4.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:9b34b9599b29c2366e2943309c45c0666956e458848eb9b88a43a765afc8728c"}, + {file = "couchbase-4.3.4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:f9b9b5523fbc89189119eceea170c329cf02115e1eba59818faefb594b729520"}, + {file = "couchbase-4.3.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e2cb01a0b567694a12abdb01f73392cf64cbc881e496e70b32f05f36ac50ca0f"}, + {file = "couchbase-4.3.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:31eb077c2cd9694b933a8a18836c117f6682a220b33a767b3379934b540e6e1c"}, + {file = "couchbase-4.3.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ad97d9467485667f8ba2b644c5823bb53fb1799dca5a29b671258d6af719ca0"}, + {file = "couchbase-4.3.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:51f50dd684e9894d5c8059ee6da5e9bc6e1a47ab3be103a3b299e7d01de02bab"}, + {file = "couchbase-4.3.4-cp39-cp39-win_amd64.whl", hash = "sha256:1059b4358d1f1b69812f114d0c5a547f830ab9fb24bcd5076a05ceb4788adee1"}, + {file = "couchbase-4.3.4.tar.gz", hash = "sha256:f195958606cf3a255fd96646ca3dd7e2ddcecf3664b3883826c7b89ef680088e"}, +] + +[[package]] +name = "coverage" +version = "7.6.9" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb"}, + {file = "coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073"}, + {file = "coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198"}, + {file = "coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3"}, + {file = "coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0"}, + {file = "coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f"}, + {file = "coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692"}, + {file = "coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb"}, + {file = "coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba"}, + {file = "coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9"}, + {file = "coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b"}, + {file = "coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678"}, + {file = "coverage-7.6.9-cp39-cp39-win32.whl", hash = "sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6"}, + {file = "coverage-7.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4"}, + {file = "coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b"}, + {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"}, +] + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cryptography" +version = "44.0.0" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = "!=3.9.0,!=3.9.1,>=3.7" +files = [ + {file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, + {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, + {file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"}, + {file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, + {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, + {file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"}, + {file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] +docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +sdist = ["build (>=1.0.0)"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi (>=2024)", "cryptography-vectors (==44.0.0)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "datashaper" +version = "0.0.49" +description = "This project provides a collection of utilities for doing lightweight data wrangling." +optional = false +python-versions = ">=3.10,<4" +files = [ + {file = "datashaper-0.0.49-py3-none-any.whl", hash = "sha256:7f58cabacc834765595c6e04cfbbd05be6af71907e46ebc7a91d2a4add7c2643"}, + {file = "datashaper-0.0.49.tar.gz", hash = "sha256:05bfba5964474a62bdd5259ec3fa0173d01e365208b6a4aff4ea0e63096a7533"}, +] + +[package.dependencies] +diskcache = ">=5.6.3,<6.0.0" +jsonschema = ">=4.21.1,<5.0.0" +pandas = ">=2.2.0,<3.0.0" +pyarrow = ">=15.0.0,<16.0.0" + +[[package]] +name = "debugpy" +version = "1.8.11" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.11-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2b26fefc4e31ff85593d68b9022e35e8925714a10ab4858fb1b577a8a48cb8cd"}, + {file = "debugpy-1.8.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61bc8b3b265e6949855300e84dc93d02d7a3a637f2aec6d382afd4ceb9120c9f"}, + {file = "debugpy-1.8.11-cp310-cp310-win32.whl", hash = "sha256:c928bbf47f65288574b78518449edaa46c82572d340e2750889bbf8cd92f3737"}, + {file = "debugpy-1.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:8da1db4ca4f22583e834dcabdc7832e56fe16275253ee53ba66627b86e304da1"}, + {file = "debugpy-1.8.11-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:85de8474ad53ad546ff1c7c7c89230db215b9b8a02754d41cb5a76f70d0be296"}, + {file = "debugpy-1.8.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ffc382e4afa4aee367bf413f55ed17bd91b191dcaf979890af239dda435f2a1"}, + {file = "debugpy-1.8.11-cp311-cp311-win32.whl", hash = "sha256:40499a9979c55f72f4eb2fc38695419546b62594f8af194b879d2a18439c97a9"}, + {file = "debugpy-1.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:987bce16e86efa86f747d5151c54e91b3c1e36acc03ce1ddb50f9d09d16ded0e"}, + {file = "debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308"}, + {file = "debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768"}, + {file = "debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b"}, + {file = "debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1"}, + {file = "debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3"}, + {file = "debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e"}, + {file = "debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28"}, + {file = "debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1"}, + {file = "debugpy-1.8.11-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:ad7efe588c8f5cf940f40c3de0cd683cc5b76819446abaa50dc0829a30c094db"}, + {file = "debugpy-1.8.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:189058d03a40103a57144752652b3ab08ff02b7595d0ce1f651b9acc3a3a35a0"}, + {file = "debugpy-1.8.11-cp38-cp38-win32.whl", hash = "sha256:32db46ba45849daed7ccf3f2e26f7a386867b077f39b2a974bb5c4c2c3b0a280"}, + {file = "debugpy-1.8.11-cp38-cp38-win_amd64.whl", hash = "sha256:116bf8342062246ca749013df4f6ea106f23bc159305843491f64672a55af2e5"}, + {file = "debugpy-1.8.11-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:654130ca6ad5de73d978057eaf9e582244ff72d4574b3e106fb8d3d2a0d32458"}, + {file = "debugpy-1.8.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23dc34c5e03b0212fa3c49a874df2b8b1b8fda95160bd79c01eb3ab51ea8d851"}, + {file = "debugpy-1.8.11-cp39-cp39-win32.whl", hash = "sha256:52d8a3166c9f2815bfae05f386114b0b2d274456980d41f320299a8d9a5615a7"}, + {file = "debugpy-1.8.11-cp39-cp39-win_amd64.whl", hash = "sha256:52c3cf9ecda273a19cc092961ee34eb9ba8687d67ba34cc7b79a521c1c64c4c0"}, + {file = "debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920"}, + {file = "debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "deprecation" +version = "2.1.0" +description = "A library to handle automated deprecations" +optional = false +python-versions = "*" +files = [ + {file = "deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a"}, + {file = "deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff"}, +] + +[package.dependencies] +packaging = "*" + +[[package]] +name = "deptry" +version = "0.21.1" +description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." +optional = false +python-versions = ">=3.9" +files = [ + {file = "deptry-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c31e1a66502e28870e1e0a679598462a6119f4bcb656786e63cb545328170a3f"}, + {file = "deptry-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:4b53089c22d18076935a3e9e6325566fa712cd9b89fe602978a8e85f0f4209bf"}, + {file = "deptry-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5eae7afbcb9b7f6baa855b323e0da016a23f2a98d4b181dcfd2c71766512387"}, + {file = "deptry-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4afef1c5eb0b48ebc31de2437b460df0363cb99722252b7faf7fa6f43e10cbcd"}, + {file = "deptry-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:981a28e1feeaad82f07a6e3c8d7842c5f6eae3807dc13b24d453a20cd0a42a72"}, + {file = "deptry-0.21.1-cp39-abi3-win_arm64.whl", hash = "sha256:98075550540c6b45f57abdfc453900bd2a179dc495d986ccc0757a813ee55103"}, + {file = "deptry-0.21.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:79593d7631cdbbc39d76503e3af80e46d8b4873e915b85c1567a04c81e8a17d5"}, + {file = "deptry-0.21.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:145a172ea608bb86dd93a9d14f7d45ed8649a36d7f685ea725e0348cbf562f10"}, + {file = "deptry-0.21.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e487f520d4fbee513f4767ab98334a29d5d932f78eb413b64e27c977f2bf2756"}, + {file = "deptry-0.21.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:091288cad2bd6029995d2e700e965cd574079365807f202ee232e4be0a571f43"}, + {file = "deptry-0.21.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1adf29a5aa1d33d9e1140b9235b212d9753278604b4389b2186f638692e29876"}, + {file = "deptry-0.21.1.tar.gz", hash = "sha256:60332b8d58d6584b340511a4e1b694048499f273d69eaea413631b2e8bc186ff"}, +] + +[package.dependencies] +click = ">=8.0.0,<9" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +packaging = ">=23.2" +requirements-parser = ">=0.11.0,<1" +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} + +[[package]] +name = "devtools" +version = "0.12.2" +description = "Python's missing debug print command, and more." +optional = false +python-versions = ">=3.7" +files = [ + {file = "devtools-0.12.2-py3-none-any.whl", hash = "sha256:c366e3de1df4cdd635f1ad8cbcd3af01a384d7abda71900e68d43b04eb6aaca7"}, + {file = "devtools-0.12.2.tar.gz", hash = "sha256:efceab184cb35e3a11fa8e602cc4fadacaa2e859e920fc6f87bf130b69885507"}, +] + +[package.dependencies] +asttokens = ">=2.0.0,<3.0.0" +executing = ">=1.1.1" +pygments = ">=2.15.0" + +[[package]] +name = "diskcache" +version = "5.6.3" +description = "Disk Cache -- Disk and file backed persistent cache." +optional = false +python-versions = ">=3" +files = [ + {file = "diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19"}, + {file = "diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "environs" +version = "11.2.1" +description = "simplified environment variable parsing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "environs-11.2.1-py3-none-any.whl", hash = "sha256:9d2080cf25807a26fc0d4301e2d7b62c64fbf547540f21e3a30cc02bc5fbe948"}, + {file = "environs-11.2.1.tar.gz", hash = "sha256:e068ae3174cef52ba4b95ead22e639056a02465f616e62323e04ae08e86a75a4"}, +] + +[package.dependencies] +marshmallow = ">=3.13.0" +python-dotenv = "*" + +[package.extras] +dev = ["environs[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +django = ["dj-database-url", "dj-email-url", "django-cache-url"] +tests = ["environs[django]", "pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "2.1.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +files = [ + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "fnllm" +version = "0.0.10" +description = "A function-based LLM protocol and wrapper." +optional = false +python-versions = ">=3.10" +files = [ + {file = "fnllm-0.0.10-py3-none-any.whl", hash = "sha256:e676001d9b0ebbe194590393d427385760adaefcab6a456268e4f13a0e9d2cb6"}, + {file = "fnllm-0.0.10.tar.gz", hash = "sha256:ece859432b83a462dc35db6483f36313ff935b79f437186daa44e3679f4f49cf"}, +] + +[package.dependencies] +aiolimiter = ">=1.1.0" +httpx = ">=0.27.0" +json-repair = ">=0.30.0" +pydantic = ">=2.8.2" +tenacity = ">=8.5.0" + +[package.extras] +azure = ["azure-identity (>=1.17.1)", "azure-storage-blob (>=12.20.0)"] +openai = ["openai (>=1.35.12)", "tiktoken (>=0.7.0)"] + +[[package]] +name = "fonttools" +version = "4.55.3" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"}, + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5"}, + {file = "fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261"}, + {file = "fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765"}, + {file = "fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f"}, + {file = "fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a"}, + {file = "fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07"}, + {file = "fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe"}, + {file = "fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628"}, + {file = "fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:caf8230f3e10f8f5d7593eb6d252a37caf58c480b19a17e250a63dad63834cf3"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b586ab5b15b6097f2fb71cafa3c98edfd0dba1ad8027229e7b1e204a58b0e09d"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8c2794ded89399cc2169c4d0bf7941247b8d5932b2659e09834adfbb01589aa"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf4fe7c124aa3f4e4c1940880156e13f2f4d98170d35c749e6b4f119a872551e"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:86721fbc389ef5cc1e2f477019e5069e8e4421e8d9576e9c26f840dbb04678de"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:89bdc5d88bdeec1b15af790810e267e8332d92561dce4f0748c2b95c9bdf3926"}, + {file = "fonttools-4.55.3-cp38-cp38-win32.whl", hash = "sha256:bc5dbb4685e51235ef487e4bd501ddfc49be5aede5e40f4cefcccabc6e60fb4b"}, + {file = "fonttools-4.55.3-cp38-cp38-win_amd64.whl", hash = "sha256:cd70de1a52a8ee2d1877b6293af8a2484ac82514f10b1c67c1c5762d38073e56"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bdcc9f04b36c6c20978d3f060e5323a43f6222accc4e7fcbef3f428e216d96af"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3ca99e0d460eff46e033cd3992a969658c3169ffcd533e0a39c63a38beb6831"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f38464daa6cdb7b6aebd14ab06609328fe1e9705bb0fcc7d1e69de7109ee02"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed63959d00b61959b035c7d47f9313c2c1ece090ff63afea702fe86de00dbed4"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5e8d657cd7326eeaba27de2740e847c6b39dde2f8d7cd7cc56f6aad404ddf0bd"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fb594b5a99943042c702c550d5494bdd7577f6ef19b0bc73877c948a63184a32"}, + {file = "fonttools-4.55.3-cp39-cp39-win32.whl", hash = "sha256:dc5294a3d5c84226e3dbba1b6f61d7ad813a8c0238fceea4e09aa04848c3d851"}, + {file = "fonttools-4.55.3-cp39-cp39-win_amd64.whl", hash = "sha256:aedbeb1db64496d098e6be92b2e63b5fac4e53b1b92032dfc6988e1ea9134a4d"}, + {file = "fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977"}, + {file = "fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "future" +version = "1.0.0" +description = "Clean single-source support for Python 3 and 2" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, + {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, +] + +[[package]] +name = "gensim" +version = "4.3.3" +description = "Python framework for fast Vector Space Modelling" +optional = false +python-versions = ">=3.8" +files = [ + {file = "gensim-4.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4e72840adfbea35c5804fd559bc0cb6bc9f439926220a37d852b7ce76eb325c1"}, + {file = "gensim-4.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4019263c9d9afae7c669f880c17e09461e77a71afce04ed4d79cf71a4cad2848"}, + {file = "gensim-4.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dea62d3e2ada547687bde6cbba37efa50b534db77e9d44fd5802676bb072c9d9"}, + {file = "gensim-4.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fac93ef5e44982defef9d3c1e4cd00245506b8a29cec19ec5e00f0221b8144c"}, + {file = "gensim-4.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:7c3409f755fb8d62da99cea65e7a40a99d21f8fd86443a3aaf2d90eb68995021"}, + {file = "gensim-4.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:99e7b70352aecc6c1674dde82b75f453e7a5d1cc71ac1cfbc460bf1fe20501b7"}, + {file = "gensim-4.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:32a4cac3f3c38af2069eab9524609fc92ebaeb2692b7280cfda365a3517a280a"}, + {file = "gensim-4.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c071b4329ed1be02446eb7ef637b94c68cf0080c15c57fbcde667fce2e49c3fe"}, + {file = "gensim-4.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d662bf96e3d741b6ab61a54be842a7cbf5e45193008b2f4225c758cafd7f9cdc"}, + {file = "gensim-4.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:a54bd53a0e6f991abb837f126663353657270e75be53287e8a568ada0b35b1b0"}, + {file = "gensim-4.3.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9a65ed1a8c1fc83890b4eb2a45ae2b32e82a0209c970c8c74694d0374c2415cb"}, + {file = "gensim-4.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4db485e08a0287e0fd6a029d89b90913d1df38f1dcd34cd2ab758873ba9255f3"}, + {file = "gensim-4.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7198987116373ab99f034b292a04ac841531d12b56345851c98b40a3fcd93a85"}, + {file = "gensim-4.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6237a50de4da7a037b19b2b6c430b6537243dcdedebf94afeb089e951953e601"}, + {file = "gensim-4.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:c910c2d5a71f532273166a3a82762959973f0513b221a495fa5a2a07652ee66d"}, + {file = "gensim-4.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d7efa5e35d3f0ec02e6e8343b623c2c863be99e8c26866cf0bebd24fb10198c"}, + {file = "gensim-4.3.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2e8eaf5ef576f4d45e98cf87e7edda9afb469dff954a923402dc1ffc35195901"}, + {file = "gensim-4.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9161e52a6ec2a0580df66e9fac4ff7fc43efdc40674fbd4dd9e914796cc68bc3"}, + {file = "gensim-4.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a200d6ac522cdf91e6048e1a368318c6b1b6e0c79009dfd408345ea2b9d3c096"}, + {file = "gensim-4.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:065547124a93948926b88cb854e1c09750e9a4c7be92f55858159aa8a23359c3"}, + {file = "gensim-4.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688a13b9bba839fedc7f3da6806d5701a756ed940839702ba6d7f494e917baef"}, + {file = "gensim-4.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c560d28133cca58078221d60fce346f98f2c5e93d2ad42942f32c0d60903f65b"}, + {file = "gensim-4.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:832311f0c420c0841c98b9e6cc4d83ea362add6db917bf2d646de4bed48a29f7"}, + {file = "gensim-4.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1049f5bc2a84b21a1cb9976741826c0ebf25cfdff4a888361db4b4a697d99f0d"}, + {file = "gensim-4.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:e99b236b6638a30d7f878e2e21a94dab2f6d4b4fd3c242f44dca1341940cb0cb"}, + {file = "gensim-4.3.3.tar.gz", hash = "sha256:84852076a6a3d88d7dac5be245e24c21c3b819b565e14c1b61fa3e5ee76dcf57"}, +] + +[package.dependencies] +numpy = ">=1.18.5,<2.0" +scipy = ">=1.7.0,<1.14.0" +smart-open = ">=1.8.1" + +[package.extras] +distributed = ["Pyro4 (>=4.27)"] +docs = ["POT", "Pyro4", "Pyro4 (>=4.27)", "annoy", "matplotlib", "memory-profiler", "nltk", "pandas", "pytest", "pytest-cov", "scikit-learn", "sphinx (==5.1.1)", "sphinx-gallery (==0.11.1)", "sphinxcontrib-napoleon (==0.7)", "sphinxcontrib.programoutput (==0.17)", "statsmodels", "testfixtures", "visdom (>=0.1.8,!=0.1.8.7)"] +test = ["POT", "pytest", "pytest-cov", "testfixtures", "visdom (>=0.1.8,!=0.1.8.7)"] +test-win = ["POT", "pytest", "pytest-cov", "testfixtures"] + +[[package]] +name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." +optional = false +python-versions = "*" +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] + +[package.dependencies] +python-dateutil = ">=2.8.1" + +[package.extras] +dev = ["flake8", "markdown", "twine", "wheel"] + +[[package]] +name = "graspologic" +version = "3.4.1" +description = "A set of Python modules for graph statistics" +optional = false +python-versions = "<3.13,>=3.9" +files = [ + {file = "graspologic-3.4.1-py3-none-any.whl", hash = "sha256:c6563e087eda599bad1de831d4b7321c0daa7a82f4e85a7d7737ff67e07cdda2"}, + {file = "graspologic-3.4.1.tar.gz", hash = "sha256:7561f0b852a2bccd351bff77e8db07d9892f9dfa35a420fdec01690e4fdc8075"}, +] + +[package.dependencies] +anytree = ">=2.12.1,<3.0.0" +beartype = ">=0.18.5,<0.19.0" +gensim = ">=4.3.2,<5.0.0" +graspologic-native = ">=1.2.1,<2.0.0" +hyppo = ">=0.4.0,<0.5.0" +joblib = ">=1.4.2,<2.0.0" +matplotlib = ">=3.8.4,<4.0.0" +networkx = ">=3,<4" +numpy = ">=1.26.4,<2.0.0" +POT = ">=0.9,<0.10" +scikit-learn = ">=1.4.2,<2.0.0" +scipy = "1.12.0" +seaborn = ">=0.13.2,<0.14.0" +statsmodels = ">=0.14.2,<0.15.0" +typing-extensions = ">=4.4.0,<5.0.0" +umap-learn = ">=0.5.6,<0.6.0" + +[[package]] +name = "graspologic-native" +version = "1.2.1" +description = "Python native companion module to the graspologic library" +optional = false +python-versions = ">=3.6, <3.13" +files = [ + {file = "graspologic_native-1.2.1-cp36-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:eccb2fa475b604375e34b4ae1d5497a428c34ed65f27888495239f8e120acea1"}, + {file = "graspologic_native-1.2.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44cfdee11718c01c0f6c544750b3ae64e28cc03432a620fe0295704bd0d618d"}, + {file = "graspologic_native-1.2.1-cp36-abi3-win_amd64.whl", hash = "sha256:56b5e66ba003fd38efc0919ce90fa22d379456e177dca65e26626498d2b9b96b"}, + {file = "graspologic_native-1.2.1.tar.gz", hash = "sha256:72b7586028a91e9fef9af0ef314d368f0240c18dca99e6e6c546334359a8610a"}, +] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "hyppo" +version = "0.4.0" +description = "A comprehensive independence testing package" +optional = false +python-versions = "*" +files = [ + {file = "hyppo-0.4.0-py3-none-any.whl", hash = "sha256:4e75565b8deb601485cd7bc1b5c3f44e6ddf329136fc81e65d011f9b4e95132f"}, +] + +[package.dependencies] +autograd = ">=1.3" +numba = ">=0.46" +numpy = ">=1.17" +scikit-learn = ">=0.19.1" +scipy = ">=1.4.0" + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.30.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.30.0-py3-none-any.whl", hash = "sha256:85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321"}, + {file = "ipython-8.30.0.tar.gz", hash = "sha256:cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt_toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack_data = "*" +traitlets = ">=5.13.0" +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing_extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipywidgets" +version = "8.1.5" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.12,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isodate" +version = "0.7.2" +description = "An ISO 8601 date/time/duration parser and formatter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15"}, + {file = "isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6"}, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jedi" +version = "0.19.2" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, +] + +[package.dependencies] +parso = ">=0.8.4,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "json-repair" +version = "0.30.3" +description = "A package to repair broken json strings" +optional = false +python-versions = ">=3.9" +files = [ + {file = "json_repair-0.30.3-py3-none-any.whl", hash = "sha256:63bb588162b0958ae93d85356ecbe54c06b8c33f8a4834f93fa2719ea669804e"}, + {file = "json_repair-0.30.3.tar.gz", hash = "sha256:0ac56e7ae9253ee9c507a7e1a3a26799c9b0bbe5e2bec1b2cc5053e90d5b05e3"}, +] + +[[package]] +name = "json5" +version = "0.10.0" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, +] + +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.1.1" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, + {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +jupyterlab = "*" +nbconvert = "*" +notebook = "*" + +[[package]] +name = "jupyter-client" +version = "8.6.3" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.10.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"}, + {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, +] + +[package.dependencies] +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.14.2" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"}, + {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.9.0" +jupyter-server-terminals = ">=0.4.4" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = ">=1.7" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.3.3" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.3.3-py3-none-any.whl", hash = "sha256:32a8fd30677e734ffcc3916a4758b9dab21b02015b668c60eb36f84357b7d4b1"}, + {file = "jupyterlab-4.3.3.tar.gz", hash = "sha256:76fa39e548fdac94dc1204af5956c556f54c785f70ee26aa47ea08eda4d5bbcd"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +httpx = ">=0.25.0" +ipykernel = ">=6.5.0" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2" +packaging = "*" +setuptools = ">=40.8.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, +] + +[package.dependencies] +babel = ">=2.10" +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.13" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, +] + +[[package]] +name = "jupytext" +version = "1.16.5" +description = "Jupyter notebooks as Markdown documents, Julia, Python or R scripts" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupytext-1.16.5-py3-none-any.whl", hash = "sha256:0c96841e364b0ac401e7f45ee67ee523d69eb7bee59476b8ee96ba39fc964491"}, + {file = "jupytext-1.16.5.tar.gz", hash = "sha256:2d5f896f11ebee8342f0f5f9c4818a336e12db164bcaec009ea612cd5dc2caa8"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0" +mdit-py-plugins = "*" +nbformat = "*" +packaging = "*" +pyyaml = "*" +tomli = {version = "*", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["autopep8", "black", "flake8", "gitpython", "ipykernel", "isort", "jupyter-fs (>=1.0)", "jupyter-server (!=2.11)", "nbconvert", "pre-commit", "pytest", "pytest-cov (>=2.6.1)", "pytest-randomly", "pytest-xdist", "sphinx (<8)", "sphinx-gallery (<0.8)"] +docs = ["myst-parser", "sphinx", "sphinx-copybutton", "sphinx-rtd-theme"] +test = ["pytest", "pytest-randomly", "pytest-xdist"] +test-cov = ["ipykernel", "jupyter-server (!=2.11)", "nbconvert", "pytest", "pytest-cov (>=2.6.1)", "pytest-randomly", "pytest-xdist"] +test-external = ["autopep8", "black", "flake8", "gitpython", "ipykernel", "isort", "jupyter-fs (>=1.0)", "jupyter-server (!=2.11)", "nbconvert", "pre-commit", "pytest", "pytest-randomly", "pytest-xdist", "sphinx (<8)", "sphinx-gallery (<0.8)"] +test-functional = ["pytest", "pytest-randomly", "pytest-xdist"] +test-integration = ["ipykernel", "jupyter-server (!=2.11)", "nbconvert", "pytest", "pytest-randomly", "pytest-xdist"] +test-ui = ["calysto-bash"] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.8" +files = [ + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, + {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, +] + +[[package]] +name = "lancedb" +version = "0.17.0" +description = "lancedb" +optional = false +python-versions = ">=3.9" +files = [ + {file = "lancedb-0.17.0-cp39-abi3-macosx_10_15_x86_64.whl", hash = "sha256:40aac1583edda390e51189c4e95bdfd4768d23705234e12a7b81957f1143df42"}, + {file = "lancedb-0.17.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:895bed499dae61cac1dbfc40ad71a566e06ab5c8d538aa57873a0cba859f8a7a"}, + {file = "lancedb-0.17.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea688d0f63796ee912a7cfe6667f36661e36756fa8340b94dd54d666a7db63f"}, + {file = "lancedb-0.17.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:f51a61950ead30a605b5653a81e8362e4aac6fec32705b88b9c9319e9308b2bb"}, + {file = "lancedb-0.17.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:07e6f10b3fcbeb6c737996e5ebd68d04c3ca2656a9b8b970111ecf368245e7f6"}, + {file = "lancedb-0.17.0-cp39-abi3-win_amd64.whl", hash = "sha256:9d7e82f83f430d906c285d3303729258b21b1cc8da634c9f7017e354bcb7318a"}, +] + +[package.dependencies] +deprecation = "*" +overrides = ">=0.7" +packaging = "*" +pydantic = ">=1.10" +pylance = "0.20.0" +tqdm = ">=4.27.0" + +[package.extras] +azure = ["adlfs (>=2024.2.0)"] +clip = ["open-clip", "pillow", "torch"] +dev = ["pre-commit", "ruff"] +docs = ["mkdocs", "mkdocs-jupyter", "mkdocs-material", "mkdocstrings[python]"] +embeddings = ["awscli (>=1.29.57)", "boto3 (>=1.28.57)", "botocore (>=1.31.57)", "cohere", "google-generativeai", "huggingface-hub", "ibm-watsonx-ai (>=1.1.2)", "instructorembedding", "ollama", "open-clip-torch", "openai (>=1.6.1)", "pillow", "requests (>=2.31.0)", "sentence-transformers", "torch"] +tests = ["aiohttp", "boto3", "duckdb", "pandas (>=1.4)", "polars (>=0.19,<=1.3.0)", "pytest", "pytest-asyncio", "pytest-mock", "pytz", "tantivy"] + +[[package]] +name = "llvmlite" +version = "0.43.0" +description = "lightweight wrapper around basic LLVM functionality" +optional = false +python-versions = ">=3.9" +files = [ + {file = "llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761"}, + {file = "llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc"}, + {file = "llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead"}, + {file = "llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a"}, + {file = "llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash = "sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed"}, + {file = "llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98"}, + {file = "llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57"}, + {file = "llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2"}, + {file = "llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749"}, + {file = "llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash = "sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91"}, + {file = "llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7"}, + {file = "llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7"}, + {file = "llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f"}, + {file = "llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844"}, + {file = "llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9"}, + {file = "llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c"}, + {file = "llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8"}, + {file = "llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a"}, + {file = "llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867"}, + {file = "llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4"}, + {file = "llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5"}, +] + +[[package]] +name = "markdown" +version = "3.7" +description = "Python implementation of John Gruber's Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, + {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, +] + +[package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] +testing = ["coverage", "pyyaml"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.23.1" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +files = [ + {file = "marshmallow-3.23.1-py3-none-any.whl", hash = "sha256:fece2eb2c941180ea1b7fcbd4a83c51bfdd50093fdd3ad2585ee5e1df2508491"}, + {file = "marshmallow-3.23.1.tar.gz", hash = "sha256:3a8dfda6edd8dcdbf216c0ede1d1e78d230a6dc9c5a088f58c4083b974a0d468"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.14)", "sphinx (==8.1.3)", "sphinx-issues (==5.0.0)", "sphinx-version-warning (==1.1.2)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "matplotlib" +version = "3.10.0" +description = "Python plotting package" +optional = false +python-versions = ">=3.10" +files = [ + {file = "matplotlib-3.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2c5829a5a1dd5a71f0e31e6e8bb449bc0ee9dbfb05ad28fc0c6b55101b3a4be6"}, + {file = "matplotlib-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2a43cbefe22d653ab34bb55d42384ed30f611bcbdea1f8d7f431011a2e1c62e"}, + {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:607b16c8a73943df110f99ee2e940b8a1cbf9714b65307c040d422558397dac5"}, + {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01d2b19f13aeec2e759414d3bfe19ddfb16b13a1250add08d46d5ff6f9be83c6"}, + {file = "matplotlib-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e6c6461e1fc63df30bf6f80f0b93f5b6784299f721bc28530477acd51bfc3d1"}, + {file = "matplotlib-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:994c07b9d9fe8d25951e3202a68c17900679274dadfc1248738dcfa1bd40d7f3"}, + {file = "matplotlib-3.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:fd44fc75522f58612ec4a33958a7e5552562b7705b42ef1b4f8c0818e304a363"}, + {file = "matplotlib-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c58a9622d5dbeb668f407f35f4e6bfac34bb9ecdcc81680c04d0258169747997"}, + {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:845d96568ec873be63f25fa80e9e7fae4be854a66a7e2f0c8ccc99e94a8bd4ef"}, + {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5439f4c5a3e2e8eab18e2f8c3ef929772fd5641876db71f08127eed95ab64683"}, + {file = "matplotlib-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4673ff67a36152c48ddeaf1135e74ce0d4bce1bbf836ae40ed39c29edf7e2765"}, + {file = "matplotlib-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e8632baebb058555ac0cde75db885c61f1212e47723d63921879806b40bec6a"}, + {file = "matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59"}, + {file = "matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a"}, + {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95"}, + {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8"}, + {file = "matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12"}, + {file = "matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc"}, + {file = "matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25"}, + {file = "matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908"}, + {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2"}, + {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf"}, + {file = "matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae"}, + {file = "matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442"}, + {file = "matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06"}, + {file = "matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff"}, + {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593"}, + {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e"}, + {file = "matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede"}, + {file = "matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81713dd0d103b379de4516b861d964b1d789a144103277769238c732229d7f03"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:359f87baedb1f836ce307f0e850d12bb5f1936f70d035561f90d41d305fdacea"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80dc3a4add4665cf2faa90138384a7ffe2a4e37c58d83e115b54287c4f06ef"}, + {file = "matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mdit-py-plugins" +version = "0.4.2" +description = "Collection of plugins for markdown-it-py" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mdit_py_plugins-0.4.2-py3-none-any.whl", hash = "sha256:0c673c3f889399a33b95e88d2f0d111b4447bdfea7f237dab2d488f459835636"}, + {file = "mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0.0,<4.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["myst-parser", "sphinx-book-theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." +optional = false +python-versions = ">=3.6" +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] + +[[package]] +name = "mistune" +version = "3.0.2" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, +] + +[[package]] +name = "mkdocs" +version = "1.6.1" +description = "Project documentation with Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e"}, + {file = "mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} +ghp-import = ">=1.0" +jinja2 = ">=2.11.1" +markdown = ">=3.3.6" +markupsafe = ">=2.0.1" +mergedeep = ">=1.3.4" +mkdocs-get-deps = ">=0.2.0" +packaging = ">=20.5" +pathspec = ">=0.11.1" +pyyaml = ">=5.1" +pyyaml-env-tag = ">=0.1" +watchdog = ">=2.0" + +[package.extras] +i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "watchdog (==2.0)"] + +[[package]] +name = "mkdocs-exclude-search" +version = "0.6.6" +description = "A mkdocs plugin that lets you exclude selected files or sections from the search index." +optional = false +python-versions = ">=3.6" +files = [ + {file = "mkdocs-exclude-search-0.6.6.tar.gz", hash = "sha256:3cdff1b9afdc1b227019cd1e124f401453235b92153d60c0e5e651a76be4f044"}, + {file = "mkdocs_exclude_search-0.6.6-py3-none-any.whl", hash = "sha256:2b4b941d1689808db533fe4a6afba75ce76c9bab8b21d4e31efc05fd8c4e0a4f"}, +] + +[package.dependencies] +mkdocs = ">=1.0.4" + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +description = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134"}, + {file = "mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c"}, +] + +[package.dependencies] +mergedeep = ">=1.3.4" +platformdirs = ">=2.2.0" +pyyaml = ">=5.1" + +[[package]] +name = "mkdocs-jupyter" +version = "0.25.1" +description = "Use Jupyter in mkdocs websites" +optional = false +python-versions = ">=3.9" +files = [ + {file = "mkdocs_jupyter-0.25.1-py3-none-any.whl", hash = "sha256:3f679a857609885d322880e72533ef5255561bbfdb13cfee2a1e92ef4d4ad8d8"}, + {file = "mkdocs_jupyter-0.25.1.tar.gz", hash = "sha256:0e9272ff4947e0ec683c92423a4bfb42a26477c103ab1a6ab8277e2dcc8f7afe"}, +] + +[package.dependencies] +ipykernel = ">6.0.0,<7.0.0" +jupytext = ">1.13.8,<2" +mkdocs = ">=1.4.0,<2" +mkdocs-material = ">9.0.0" +nbconvert = ">=7.2.9,<8" +pygments = ">2.12.0" + +[[package]] +name = "mkdocs-material" +version = "9.5.48" +description = "Documentation that simply works" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_material-9.5.48-py3-none-any.whl", hash = "sha256:b695c998f4b939ce748adbc0d3bff73fa886a670ece948cf27818fa115dc16f8"}, + {file = "mkdocs_material-9.5.48.tar.gz", hash = "sha256:a582531e8b34f4c7ed38c29d5c44763053832cf2a32f7409567e0c74749a47db"}, +] + +[package.dependencies] +babel = ">=2.10,<3.0" +colorama = ">=0.4,<1.0" +jinja2 = ">=3.0,<4.0" +markdown = ">=3.2,<4.0" +mkdocs = ">=1.6,<2.0" +mkdocs-material-extensions = ">=1.3,<2.0" +paginate = ">=0.5,<1.0" +pygments = ">=2.16,<3.0" +pymdown-extensions = ">=10.2,<11.0" +regex = ">=2022.4" +requests = ">=2.26,<3.0" + +[package.extras] +git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"] +imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=10.2,<11.0)"] +recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +description = "Extension pack for Python Markdown and MkDocs Material." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, + {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, +] + +[[package]] +name = "mkdocs-typer" +version = "0.0.3" +description = "An MkDocs extension to generate documentation for Typer command line applications" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mkdocs_typer-0.0.3-py3-none-any.whl", hash = "sha256:b2a9a44da590a7100114fde4de9123fedfea692d229379984db20ee3b3f12d7c"}, + {file = "mkdocs_typer-0.0.3.tar.gz", hash = "sha256:4dd37f024190a82aaf0f6c984faafb15167d34eab7e29a6a85e61362423a4eb7"}, +] + +[package.dependencies] +markdown = "==3.*" +typer = "==0.*" + +[[package]] +name = "msal" +version = "1.31.1" +description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect." +optional = false +python-versions = ">=3.7" +files = [ + {file = "msal-1.31.1-py3-none-any.whl", hash = "sha256:29d9882de247e96db01386496d59f29035e5e841bcac892e6d7bf4390bf6bd17"}, + {file = "msal-1.31.1.tar.gz", hash = "sha256:11b5e6a3f802ffd3a72107203e20c4eac6ef53401961b880af2835b723d80578"}, +] + +[package.dependencies] +cryptography = ">=2.5,<46" +PyJWT = {version = ">=1.0.0,<3", extras = ["crypto"]} +requests = ">=2.0.0,<3" + +[package.extras] +broker = ["pymsalruntime (>=0.14,<0.18)", "pymsalruntime (>=0.17,<0.18)"] + +[[package]] +name = "msal-extensions" +version = "1.2.0" +description = "Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS and Linux. Concurrent data access will be coordinated by a file lock mechanism." +optional = false +python-versions = ">=3.7" +files = [ + {file = "msal_extensions-1.2.0-py3-none-any.whl", hash = "sha256:cf5ba83a2113fa6dc011a254a72f1c223c88d7dfad74cc30617c4679a417704d"}, + {file = "msal_extensions-1.2.0.tar.gz", hash = "sha256:6f41b320bfd2933d631a215c91ca0dd3e67d84bd1a2f50ce917d5874ec646bef"}, +] + +[package.dependencies] +msal = ">=1.29,<2" +portalocker = ">=1.4,<3" + +[[package]] +name = "nbclient" +version = "0.10.1" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.10.1-py3-none-any.whl", hash = "sha256:949019b9240d66897e442888cfb618f69ef23dc71c01cb5fced8499c2cfc084d"}, + {file = "nbclient-0.10.1.tar.gz", hash = "sha256:3e93e348ab27e712acd46fccd809139e356eb9a31aab641d1a7991a6eb4e6f68"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.16.4" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"}, + {file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "!=5.0.0" +defusedxml = "*" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.1" + +[package.extras] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.4.2" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.10" +files = [ + {file = "networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f"}, + {file = "networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1"}, +] + +[package.extras] +default = ["matplotlib (>=3.7)", "numpy (>=1.24)", "pandas (>=2.0)", "scipy (>=1.10,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["intersphinx-registry", "myst-nb (>=1.1)", "numpydoc (>=1.8.0)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.15)", "sphinx (>=7.3)", "sphinx-gallery (>=0.16)", "texext (>=0.6.7)"] +example = ["cairocffi (>=1.7)", "contextily (>=1.6)", "igraph (>=0.11)", "momepy (>=0.7.2)", "osmnx (>=1.9)", "scikit-learn (>=1.5)", "seaborn (>=0.13)"] +extra = ["lxml (>=4.6)", "pydot (>=3.0.1)", "pygraphviz (>=1.14)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "notebook" +version = "7.3.1" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.3.1-py3-none-any.whl", hash = "sha256:212e1486b2230fe22279043f33c7db5cf9a01d29feb063a85cb139747b7c9483"}, + {file = "notebook-7.3.1.tar.gz", hash = "sha256:84381c2a82d867517fd25b86e986dae1fe113a70b98f03edff9b94e499fec8fa"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.3.2,<4.4" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numba" +version = "0.60.0" +description = "compiling Python code using LLVM" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numba-0.60.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d761de835cd38fb400d2c26bb103a2726f548dc30368853121d66201672e651"}, + {file = "numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b"}, + {file = "numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781"}, + {file = "numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e"}, + {file = "numba-0.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198"}, + {file = "numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8"}, + {file = "numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b"}, + {file = "numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703"}, + {file = "numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8"}, + {file = "numba-0.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2"}, + {file = "numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404"}, + {file = "numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c"}, + {file = "numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e"}, + {file = "numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d"}, + {file = "numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347"}, + {file = "numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74"}, + {file = "numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449"}, + {file = "numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b"}, + {file = "numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25"}, + {file = "numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab"}, + {file = "numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16"}, +] + +[package.dependencies] +llvmlite = "==0.43.*" +numpy = ">=1.22,<2.1" + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "openai" +version = "1.57.4" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +files = [ + {file = "openai-1.57.4-py3-none-any.whl", hash = "sha256:7def1ab2d52f196357ce31b9cfcf4181529ce00838286426bb35be81c035dafb"}, + {file = "openai-1.57.4.tar.gz", hash = "sha256:a8f071a3e9198e2818f63aade68e759417b9f62c0971bdb83de82504b70b77f7"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "paginate" +version = "0.5.7" +description = "Divides large result sets into pages for easier browsing" +optional = false +python-versions = "*" +files = [ + {file = "paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591"}, + {file = "paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945"}, +] + +[package.extras] +dev = ["pytest", "tox"] +lint = ["black"] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pastel" +version = "0.2.1" +description = "Bring colors to your terminal." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"}, + {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"}, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "patsy" +version = "1.0.1" +description = "A Python package for describing statistical models and for building design matrices." +optional = false +python-versions = ">=3.6" +files = [ + {file = "patsy-1.0.1-py2.py3-none-any.whl", hash = "sha256:751fb38f9e97e62312e921a1954b81e1bb2bcda4f5eeabaf94db251ee791509c"}, + {file = "patsy-1.0.1.tar.gz", hash = "sha256:e786a9391eec818c054e359b737bbce692f051aee4c661f4141cc88fb459c0c4"}, +] + +[package.dependencies] +numpy = ">=1.4" + +[package.extras] +test = ["pytest", "pytest-cov", "scipy"] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "11.0.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, + {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, + {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, + {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, + {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, + {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, + {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, + {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"}, + {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"}, + {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"}, + {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"}, + {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"}, + {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"}, + {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"}, + {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"}, + {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"}, + {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"}, + {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, + {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, + {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, + {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, + {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "poethepoet" +version = "0.31.1" +description = "A task runner that works well with poetry." +optional = false +python-versions = ">=3.9" +files = [ + {file = "poethepoet-0.31.1-py3-none-any.whl", hash = "sha256:7fdfa0ac6074be9936723e7231b5bfaad2923e96c674a9857e81d326cf8ccdc2"}, + {file = "poethepoet-0.31.1.tar.gz", hash = "sha256:d6b66074edf85daf115bb916eae0afd6387d19e1562e1c9ef7d61d5c585696aa"}, +] + +[package.dependencies] +pastel = ">=0.2.1,<0.3.0" +pyyaml = ">=6.0.2,<7.0.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} + +[package.extras] +poetry-plugin = ["poetry (>=1.0,<2.0)"] + +[[package]] +name = "portalocker" +version = "2.10.1" +description = "Wraps the portalocker recipe for easy usage" +optional = false +python-versions = ">=3.8" +files = [ + {file = "portalocker-2.10.1-py3-none-any.whl", hash = "sha256:53a5984ebc86a025552264b459b46a2086e269b21823cb572f8f28ee759e45bf"}, + {file = "portalocker-2.10.1.tar.gz", hash = "sha256:ef1bf844e878ab08aee7e40184156e1151f228f103aa5c6bd0724cc330960f8f"}, +] + +[package.dependencies] +pywin32 = {version = ">=226", markers = "platform_system == \"Windows\""} + +[package.extras] +docs = ["sphinx (>=1.7.1)"] +redis = ["redis"] +tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)", "types-redis"] + +[[package]] +name = "pot" +version = "0.9.5" +description = "Python Optimal Transport Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "POT-0.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:34d766c38e65a69c087b01a854fe89fbd152c3e8af93da2227b6c40aed6d37b9"}, + {file = "POT-0.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5407377256de11b6fdc94bbba9b50ea5a2301570905fc9014541cc8473806d9"}, + {file = "POT-0.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f37039cd356198c1fb994e7d935b9bf75d44f2a40319d298bf8cc149eb360d5"}, + {file = "POT-0.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00a18427c9abdd107a2285ea0a814c6b22e95a1af8f88a37c56f23cd216f7a6b"}, + {file = "POT-0.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0dc608cea1107289a58dec33cddc1b0a3fea77ff36d66e2c8ac7aeea543969a"}, + {file = "POT-0.9.5-cp310-cp310-win32.whl", hash = "sha256:8312bee055389db47adab063749c8d77b5981534177ca6cd9b91e4fb68f69d00"}, + {file = "POT-0.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:043706d69202ac87e140121ba32ed1b038f2b3fc4a5549586187239a583cd50d"}, + {file = "POT-0.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b5f000da00e408ff781672a4895bfa8daacec055bd534c9e66ead479f3c6d83c"}, + {file = "POT-0.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9eddd9ff29bdb17d4db8ba00ba18d42656c694a128591502bf59afc1369e1bb3"}, + {file = "POT-0.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7eb9b88c73387a9966775a6f6d077d9d071814783701d2656dc05b5032a9662d"}, + {file = "POT-0.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f44446056f5fc9d132ed8e431732c33cbe754fb1e6d73636f1b6ae811be7df"}, + {file = "POT-0.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7f5d27bc9063e01b03d906bb77e7b3428065fdd72ed64233b249584ead2e2bf"}, + {file = "POT-0.9.5-cp311-cp311-win32.whl", hash = "sha256:cd79a8b4d35b706f2124f73ebff3bb1ce3450e01cc8f610eda3b6ce13616b829"}, + {file = "POT-0.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:6680aadb69df2f75a413fe9c58bd1c5cb744d017a7c8ba8841654fd0dc75433b"}, + {file = "POT-0.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7d57f96b333c9816a2af7817753108739b38155e52648c5967681dbd89d92ed2"}, + {file = "POT-0.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:afad647c78f999439f8c5cbcf74b03c5c0afefb08727cd7d68994130fabfc761"}, + {file = "POT-0.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bca891c28592d6e0e8f04b35989de7005f0fb9b3923f00537f1b269c5084aa7b"}, + {file = "POT-0.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:088c930a5fcd1e8e36fb6af710df47ce6e9331b6b5a28eb09c673df4186dcb10"}, + {file = "POT-0.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfb18268fac1e982e21821a03f802802a0d579c4690988b764115dd886dc38f5"}, + {file = "POT-0.9.5-cp312-cp312-win32.whl", hash = "sha256:931fa46ff8e01d47309207243988c783a2d8364452bc080b130c5d319349ad3f"}, + {file = "POT-0.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:be786612b391c2e4d3b5db4e7d51cdb2360284e3a6949990051c2eb102f60d3c"}, + {file = "POT-0.9.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:844820020240bad66ca07255289df9ed1e46c5f71ba2401852833c0dd114c660"}, + {file = "POT-0.9.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a76a5bed3af51db1a10c59ba376f500a743f8e20c2a6d4851c4535dbbed17714"}, + {file = "POT-0.9.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a03da3283cb04a1fa3258f0096ad9cfa3311192d5a6bee3a2ca0e15304f8652"}, + {file = "POT-0.9.5-cp37-cp37m-win32.whl", hash = "sha256:dc50b8005b4dfa3478f0bf841c22d8b3500a8a04e5673da146d71f7039607e3a"}, + {file = "POT-0.9.5-cp37-cp37m-win_amd64.whl", hash = "sha256:a9cab787bcb3ce6d23ef297c115baad34ed578a98b4a02afba8cb4e30e39d171"}, + {file = "POT-0.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:926ba491b5b1f43fb0f3bc6e9d92b6cc634c12e2fa778eba88d9350e82fc2c88"}, + {file = "POT-0.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b77b630a303868ee14015a4306d7e852b174d4a734815c67e27cd45fd59cc07"}, + {file = "POT-0.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:db0dd974328cbdd7b20477fb5757326dda22d77cb639f4759296fcd206db380f"}, + {file = "POT-0.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb29c375d02bb5aadad527133e9c20dd73930d8e2294434dc5306fb740a49d9e"}, + {file = "POT-0.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:293e0993d66b09db69c2282edbf859e1de57a3f15b99bd909609ce120380b398"}, + {file = "POT-0.9.5-cp38-cp38-win32.whl", hash = "sha256:5996d538885b834e36a3838bc73adeb747bd54ab0a2b3178addbb35b3edafa45"}, + {file = "POT-0.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:0131aab58d57bf5876d826461d0968d1a655b611cc8c0297c38ab8a235e0d627"}, + {file = "POT-0.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:95c29ee3e647b272bfcb35c3c4cb7409326a0a6d3bf3ed8460495e9ac3f3a76d"}, + {file = "POT-0.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b1bca1b3465eadab9d5e1c075122963da3e921102555d1c6b7ff3c1f437d3e18"}, + {file = "POT-0.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e64f5d8890e21eb1e7decac694c34820496238e7d9c95309411e58cb0b04d384"}, + {file = "POT-0.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fa190662670868126a2372499aec513bd4ac50b4565fe2014525c7cef11e2bf"}, + {file = "POT-0.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9b775daf69cb4043897050961f9b654c30261543e531d53248a99e5599db0c8"}, + {file = "POT-0.9.5-cp39-cp39-win32.whl", hash = "sha256:ceea4cffebce88211cd63bfddc878e2f29a6b6347125cbac40fa214308315878"}, + {file = "POT-0.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:2f6af660505772833d4ccc189d9de264b429d9ec8e0cb564f33d2181e6f1bbce"}, + {file = "pot-0.9.5.tar.gz", hash = "sha256:9644ee7ff51c3cffa3c2632b9dd9dff4f3520266f9fb771450935ffb646d6042"}, +] + +[package.dependencies] +numpy = ">=1.16" +scipy = ">=1.6" + +[package.extras] +all = ["autograd", "cvxopt", "jax", "jaxlib", "matplotlib", "pymanopt", "scikit-learn", "tensorflow", "torch", "torch-geometric"] +backend-jax = ["jax", "jaxlib"] +backend-tf = ["tensorflow"] +backend-torch = ["torch"] +cvxopt = ["cvxopt"] +dr = ["autograd", "pymanopt", "scikit-learn"] +gnn = ["torch", "torch-geometric"] +plot = ["matplotlib"] + +[[package]] +name = "prometheus-client" +version = "0.21.1" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.48" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "6.1.0" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"}, + {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"}, + {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"}, + {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"}, + {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"}, + {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"}, + {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"}, + {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"}, +] + +[package.extras] +dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pyaml-env" +version = "1.2.1" +description = "Provides yaml file parsing with environment variable resolution" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyaml_env-1.2.1-py3-none-any.whl", hash = "sha256:2e7da2d4bba0629711ade1a41864e5e200c84ded896a3d27e9f560fae7311c36"}, + {file = "pyaml_env-1.2.1.tar.gz", hash = "sha256:6d5dc98c8c82df743a132c196e79963050c9feb05b0a6f25f3ad77771d3d95b0"}, +] + +[package.dependencies] +PyYAML = ">=5.0,<=7.0" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "pyarrow" +version = "15.0.2" +description = "Python library for Apache Arrow" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyarrow-15.0.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:88b340f0a1d05b5ccc3d2d986279045655b1fe8e41aba6ca44ea28da0d1455d8"}, + {file = "pyarrow-15.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eaa8f96cecf32da508e6c7f69bb8401f03745c050c1dd42ec2596f2e98deecac"}, + {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23c6753ed4f6adb8461e7c383e418391b8d8453c5d67e17f416c3a5d5709afbd"}, + {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f639c059035011db8c0497e541a8a45d98a58dbe34dc8fadd0ef128f2cee46e5"}, + {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:290e36a59a0993e9a5224ed2fb3e53375770f07379a0ea03ee2fce2e6d30b423"}, + {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:06c2bb2a98bc792f040bef31ad3e9be6a63d0cb39189227c08a7d955db96816e"}, + {file = "pyarrow-15.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:f7a197f3670606a960ddc12adbe8075cea5f707ad7bf0dffa09637fdbb89f76c"}, + {file = "pyarrow-15.0.2-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:5f8bc839ea36b1f99984c78e06e7a06054693dc2af8920f6fb416b5bca9944e4"}, + {file = "pyarrow-15.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5e81dfb4e519baa6b4c80410421528c214427e77ca0ea9461eb4097c328fa33"}, + {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a4f240852b302a7af4646c8bfe9950c4691a419847001178662a98915fd7ee7"}, + {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e7d9cfb5a1e648e172428c7a42b744610956f3b70f524aa3a6c02a448ba853e"}, + {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2d4f905209de70c0eb5b2de6763104d5a9a37430f137678edfb9a675bac9cd98"}, + {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:90adb99e8ce5f36fbecbbc422e7dcbcbed07d985eed6062e459e23f9e71fd197"}, + {file = "pyarrow-15.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:b116e7fd7889294cbd24eb90cd9bdd3850be3738d61297855a71ac3b8124ee38"}, + {file = "pyarrow-15.0.2-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:25335e6f1f07fdaa026a61c758ee7d19ce824a866b27bba744348fa73bb5a440"}, + {file = "pyarrow-15.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:90f19e976d9c3d8e73c80be84ddbe2f830b6304e4c576349d9360e335cd627fc"}, + {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a22366249bf5fd40ddacc4f03cd3160f2d7c247692945afb1899bab8a140ddfb"}, + {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2a335198f886b07e4b5ea16d08ee06557e07db54a8400cc0d03c7f6a22f785f"}, + {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e6d459c0c22f0b9c810a3917a1de3ee704b021a5fb8b3bacf968eece6df098f"}, + {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:033b7cad32198754d93465dcfb71d0ba7cb7cd5c9afd7052cab7214676eec38b"}, + {file = "pyarrow-15.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:29850d050379d6e8b5a693098f4de7fd6a2bea4365bfd073d7c57c57b95041ee"}, + {file = "pyarrow-15.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:7167107d7fb6dcadb375b4b691b7e316f4368f39f6f45405a05535d7ad5e5058"}, + {file = "pyarrow-15.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e85241b44cc3d365ef950432a1b3bd44ac54626f37b2e3a0cc89c20e45dfd8bf"}, + {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:248723e4ed3255fcd73edcecc209744d58a9ca852e4cf3d2577811b6d4b59818"}, + {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ff3bdfe6f1b81ca5b73b70a8d482d37a766433823e0c21e22d1d7dde76ca33f"}, + {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:f3d77463dee7e9f284ef42d341689b459a63ff2e75cee2b9302058d0d98fe142"}, + {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:8c1faf2482fb89766e79745670cbca04e7018497d85be9242d5350cba21357e1"}, + {file = "pyarrow-15.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:28f3016958a8e45a1069303a4a4f6a7d4910643fc08adb1e2e4a7ff056272ad3"}, + {file = "pyarrow-15.0.2-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:89722cb64286ab3d4daf168386f6968c126057b8c7ec3ef96302e81d8cdb8ae4"}, + {file = "pyarrow-15.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd0ba387705044b3ac77b1b317165c0498299b08261d8122c96051024f953cd5"}, + {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2459bf1f22b6a5cdcc27ebfd99307d5526b62d217b984b9f5c974651398832"}, + {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58922e4bfece8b02abf7159f1f53a8f4d9f8e08f2d988109126c17c3bb261f22"}, + {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:adccc81d3dc0478ea0b498807b39a8d41628fa9210729b2f718b78cb997c7c91"}, + {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:8bd2baa5fe531571847983f36a30ddbf65261ef23e496862ece83bdceb70420d"}, + {file = "pyarrow-15.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6669799a1d4ca9da9c7e06ef48368320f5856f36f9a4dd31a11839dda3f6cc8c"}, + {file = "pyarrow-15.0.2.tar.gz", hash = "sha256:9c9bc803cb3b7bfacc1e96ffbfd923601065d9d3f911179d81e72d99fd74a3d9"}, +] + +[package.dependencies] +numpy = ">=1.16.6,<2" + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.3" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, + {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.1" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, + {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"}, + {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"}, + {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"}, + {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"}, + {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"}, + {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"}, + {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"}, + {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"}, + {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"}, + {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"}, + {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"}, + {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"}, + {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"}, + {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"}, + {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"}, + {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"}, + {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"}, + {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"}, + {file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"}, + {file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"}, + {file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"}, + {file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"}, + {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"}, + {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"}, + {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"}, + {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"}, + {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pylance" +version = "0.20.0" +description = "python wrapper for Lance columnar format" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pylance-0.20.0-cp39-abi3-macosx_10_15_x86_64.whl", hash = "sha256:fbb640b00567ff79d23a5994c0f0bc97587fcf74ece6ca568e77c453f70801c5"}, + {file = "pylance-0.20.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:c8e30f1b6429b843429fde8f3d6fb7e715153174161e3bcf29902e2d32ee471f"}, + {file = "pylance-0.20.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:032242a347ac909db81c0ade6384d82102f4ec61bc892d8caaa04b3d0a7b1613"}, + {file = "pylance-0.20.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:5320f11925524c1a67279afc4638cad60f61c36f11d3d9c2a91651489874be0d"}, + {file = "pylance-0.20.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:fa5acd4488c574f6017145eafd5b45b178d611a5cbcd2ed492e01013fc72f5a2"}, + {file = "pylance-0.20.0-cp39-abi3-win_amd64.whl", hash = "sha256:587850cddd0e669addd9414f378fa30527fc9020010cb73c842f026ea8a9b4ea"}, +] + +[package.dependencies] +numpy = ">=1.22" +pyarrow = ">=14" + +[package.extras] +benchmarks = ["pytest-benchmark"] +cuvs-cu11 = ["cuvs-cu11", "pylibraft-cu11"] +cuvs-cu12 = ["cuvs-cu12", "pylibraft-cu12"] +dev = ["ruff (==0.4.1)"] +ray = ["ray[data] (<2.38)"] +tests = ["boto3", "datasets", "duckdb", "ml-dtypes", "pandas", "pillow", "polars[pandas,pyarrow]", "pytest", "tensorflow", "tqdm"] +torch = ["torch"] + +[[package]] +name = "pymdown-extensions" +version = "10.12" +description = "Extension pack for Python Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pymdown_extensions-10.12-py3-none-any.whl", hash = "sha256:49f81412242d3527b8b4967b990df395c89563043bc51a3d2d7d500e52123b77"}, + {file = "pymdown_extensions-10.12.tar.gz", hash = "sha256:b0ee1e0b2bef1071a47891ab17003bfe5bf824a398e13f49f8ed653b699369a7"}, +] + +[package.dependencies] +markdown = ">=3.6" +pyyaml = "*" + +[package.extras] +extra = ["pygments (>=2.12)"] + +[[package]] +name = "pynndescent" +version = "0.5.13" +description = "Nearest Neighbor Descent" +optional = false +python-versions = "*" +files = [ + {file = "pynndescent-0.5.13-py3-none-any.whl", hash = "sha256:69aabb8f394bc631b6ac475a1c7f3994c54adf3f51cd63b2730fefba5771b949"}, + {file = "pynndescent-0.5.13.tar.gz", hash = "sha256:d74254c0ee0a1eeec84597d5fe89fedcf778593eeabe32c2f97412934a9800fb"}, +] + +[package.dependencies] +joblib = ">=0.11" +llvmlite = ">=0.30" +numba = ">=0.51.2" +scikit-learn = ">=0.18" +scipy = ">=1.0" + +[[package]] +name = "pyparsing" +version = "3.2.0" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"}, + {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyright" +version = "1.1.390" +description = "Command line wrapper for pyright" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyright-1.1.390-py3-none-any.whl", hash = "sha256:ecebfba5b6b50af7c1a44c2ba144ba2ab542c227eb49bc1f16984ff714e0e110"}, + {file = "pyright-1.1.390.tar.gz", hash = "sha256:aad7f160c49e0fbf8209507a15e17b781f63a86a1facb69ca877c71ef2e9538d"}, +] + +[package.dependencies] +nodeenv = ">=1.6.0" +typing-extensions = ">=4.1" + +[package.extras] +all = ["nodejs-wheel-binaries", "twine (>=3.4.1)"] +dev = ["twine (>=3.4.1)"] +nodejs = ["nodejs-wheel-binaries"] + +[[package]] +name = "pytest" +version = "8.3.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, + {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-asyncio" +version = "0.24.0" +description = "Pytest support for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest_asyncio-0.24.0-py3-none-any.whl", hash = "sha256:a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b"}, + {file = "pytest_asyncio-0.24.0.tar.gz", hash = "sha256:d081d828e576d85f875399194281e92bf8a68d60d72d1a2faf2feddb6c46b276"}, +] + +[package.dependencies] +pytest = ">=8.2,<9" + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] +testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] + +[[package]] +name = "pytest-dotenv" +version = "0.5.2" +description = "A py.test plugin that parses environment files before running tests" +optional = false +python-versions = "*" +files = [ + {file = "pytest-dotenv-0.5.2.tar.gz", hash = "sha256:2dc6c3ac6d8764c71c6d2804e902d0ff810fa19692e95fe138aefc9b1aa73732"}, + {file = "pytest_dotenv-0.5.2-py3-none-any.whl", hash = "sha256:40a2cece120a213898afaa5407673f6bd924b1fa7eafce6bda0e8abffe2f710f"}, +] + +[package.dependencies] +pytest = ">=5.0.0" +python-dotenv = ">=0.9.1" + +[[package]] +name = "pytest-timeout" +version = "2.3.1" +description = "pytest plugin to abort hanging tests" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-timeout-2.3.1.tar.gz", hash = "sha256:12397729125c6ecbdaca01035b9e5239d4db97352320af155b3f5de1ba5165d9"}, + {file = "pytest_timeout-2.3.1-py3-none-any.whl", hash = "sha256:68188cb703edfc6a18fad98dc25a3c61e9f24d644b0b70f33af545219fc7813e"}, +] + +[package.dependencies] +pytest = ">=7.0.0" + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-json-logger" +version = "3.2.1" +description = "JSON Log Formatter for the Python Logging Package" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, + {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, +] + +[package.extras] +dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.14" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] + +[package.dependencies] +pyyaml = "*" + +[[package]] +name = "pyzmq" +version = "26.2.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "referencing" +version = "0.35.1" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "requirements-parser" +version = "0.11.0" +description = "This is a small Python module for parsing Pip requirement files." +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "requirements_parser-0.11.0-py3-none-any.whl", hash = "sha256:50379eb50311834386c2568263ae5225d7b9d0867fb55cf4ecc93959de2c2684"}, + {file = "requirements_parser-0.11.0.tar.gz", hash = "sha256:35f36dc969d14830bf459803da84f314dc3d17c802592e9e970f63d0359e5920"}, +] + +[package.dependencies] +packaging = ">=23.2" +types-setuptools = ">=69.1.0" + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rpds-py" +version = "0.22.3" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, + {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, + {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, + {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, + {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, + {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, + {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, + {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, + {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, + {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, + {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, + {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, +] + +[[package]] +name = "ruff" +version = "0.8.3" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.8.3-py3-none-linux_armv6l.whl", hash = "sha256:8d5d273ffffff0acd3db5bf626d4b131aa5a5ada1276126231c4174543ce20d6"}, + {file = "ruff-0.8.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e4d66a21de39f15c9757d00c50c8cdd20ac84f55684ca56def7891a025d7e939"}, + {file = "ruff-0.8.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c356e770811858bd20832af696ff6c7e884701115094f427b64b25093d6d932d"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c0a60a825e3e177116c84009d5ebaa90cf40dfab56e1358d1df4e29a9a14b13"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fb782f4db39501210ac093c79c3de581d306624575eddd7e4e13747e61ba18"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f26bc76a133ecb09a38b7868737eded6941b70a6d34ef53a4027e83913b6502"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:01b14b2f72a37390c1b13477c1c02d53184f728be2f3ffc3ace5b44e9e87b90d"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53babd6e63e31f4e96ec95ea0d962298f9f0d9cc5990a1bbb023a6baf2503a82"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ae441ce4cf925b7f363d33cd6570c51435972d697e3e58928973994e56e1452"}, + {file = "ruff-0.8.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7c65bc0cadce32255e93c57d57ecc2cca23149edd52714c0c5d6fa11ec328cd"}, + {file = "ruff-0.8.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5be450bb18f23f0edc5a4e5585c17a56ba88920d598f04a06bd9fd76d324cb20"}, + {file = "ruff-0.8.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8faeae3827eaa77f5721f09b9472a18c749139c891dbc17f45e72d8f2ca1f8fc"}, + {file = "ruff-0.8.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:db503486e1cf074b9808403991663e4277f5c664d3fe237ee0d994d1305bb060"}, + {file = "ruff-0.8.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6567be9fb62fbd7a099209257fef4ad2c3153b60579818b31a23c886ed4147ea"}, + {file = "ruff-0.8.3-py3-none-win32.whl", hash = "sha256:19048f2f878f3ee4583fc6cb23fb636e48c2635e30fb2022b3a1cd293402f964"}, + {file = "ruff-0.8.3-py3-none-win_amd64.whl", hash = "sha256:f7df94f57d7418fa7c3ffb650757e0c2b96cf2501a0b192c18e4fb5571dfada9"}, + {file = "ruff-0.8.3-py3-none-win_arm64.whl", hash = "sha256:fe2756edf68ea79707c8d68b78ca9a58ed9af22e430430491ee03e718b5e4936"}, + {file = "ruff-0.8.3.tar.gz", hash = "sha256:5e7558304353b84279042fc584a4f4cb8a07ae79b2bf3da1a7551d960b5626d3"}, +] + +[[package]] +name = "scikit-learn" +version = "1.6.0" +description = "A set of python modules for machine learning and data mining" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scikit_learn-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:366fb3fa47dce90afed3d6106183f4978d6f24cfd595c2373424171b915ee718"}, + {file = "scikit_learn-1.6.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:59cd96a8d9f8dfd546f5d6e9787e1b989e981388d7803abbc9efdcde61e47460"}, + {file = "scikit_learn-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efa7a579606c73a0b3d210e33ea410ea9e1af7933fe324cb7e6fbafae4ea5948"}, + {file = "scikit_learn-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a46d3ca0f11a540b8eaddaf5e38172d8cd65a86cb3e3632161ec96c0cffb774c"}, + {file = "scikit_learn-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:5be4577769c5dde6e1b53de8e6520f9b664ab5861dd57acee47ad119fd7405d6"}, + {file = "scikit_learn-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1f50b4f24cf12a81c3c09958ae3b864d7534934ca66ded3822de4996d25d7285"}, + {file = "scikit_learn-1.6.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eb9ae21f387826da14b0b9cb1034f5048ddb9182da429c689f5f4a87dc96930b"}, + {file = "scikit_learn-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0baa91eeb8c32632628874a5c91885eaedd23b71504d24227925080da075837a"}, + {file = "scikit_learn-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c716d13ba0a2f8762d96ff78d3e0cde90bc9c9b5c13d6ab6bb9b2d6ca6705fd"}, + {file = "scikit_learn-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:9aafd94bafc841b626681e626be27bf1233d5a0f20f0a6fdb4bee1a1963c6643"}, + {file = "scikit_learn-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:04a5ba45c12a5ff81518aa4f1604e826a45d20e53da47b15871526cda4ff5174"}, + {file = "scikit_learn-1.6.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:21fadfc2ad7a1ce8bd1d90f23d17875b84ec765eecbbfc924ff11fb73db582ce"}, + {file = "scikit_learn-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30f34bb5fde90e020653bb84dcb38b6c83f90c70680dbd8c38bd9becbad7a127"}, + {file = "scikit_learn-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dad624cffe3062276a0881d4e441bc9e3b19d02d17757cd6ae79a9d192a0027"}, + {file = "scikit_learn-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2fce7950a3fad85e0a61dc403df0f9345b53432ac0e47c50da210d22c60b6d85"}, + {file = "scikit_learn-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e5453b2e87ef8accedc5a8a4e6709f887ca01896cd7cc8a174fe39bd4bb00aef"}, + {file = "scikit_learn-1.6.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5fe11794236fb83bead2af26a87ced5d26e3370b8487430818b915dafab1724e"}, + {file = "scikit_learn-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61fe3dcec0d82ae280877a818ab652f4988371e32dd5451e75251bece79668b1"}, + {file = "scikit_learn-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44e3a51e181933bdf9a4953cc69c6025b40d2b49e238233f149b98849beb4bf"}, + {file = "scikit_learn-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:a17860a562bac54384454d40b3f6155200c1c737c9399e6a97962c63fce503ac"}, + {file = "scikit_learn-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:98717d3c152f6842d36a70f21e1468fb2f1a2f8f2624d9a3f382211798516426"}, + {file = "scikit_learn-1.6.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:34e20bfac8ff0ebe0ff20fb16a4d6df5dc4cc9ce383e00c2ab67a526a3c67b18"}, + {file = "scikit_learn-1.6.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eba06d75815406091419e06dd650b91ebd1c5f836392a0d833ff36447c2b1bfa"}, + {file = "scikit_learn-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b6916d1cec1ff163c7d281e699d7a6a709da2f2c5ec7b10547e08cc788ddd3ae"}, + {file = "scikit_learn-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:66b1cf721a9f07f518eb545098226796c399c64abdcbf91c2b95d625068363da"}, + {file = "scikit_learn-1.6.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:7b35b60cf4cd6564b636e4a40516b3c61a4fa7a8b1f7a3ce80c38ebe04750bc3"}, + {file = "scikit_learn-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a73b1c2038c93bc7f4bf21f6c9828d5116c5d2268f7a20cfbbd41d3074d52083"}, + {file = "scikit_learn-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c3fa7d3dd5a0ec2d0baba0d644916fa2ab180ee37850c5d536245df916946bd"}, + {file = "scikit_learn-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:df778486a32518cda33818b7e3ce48c78cef1d5f640a6bc9d97c6d2e71449a51"}, + {file = "scikit_learn-1.6.0.tar.gz", hash = "sha256:9d58481f9f7499dff4196927aedd4285a0baec8caa3790efbe205f13de37dd6e"}, +] + +[package.dependencies] +joblib = ">=1.2.0" +numpy = ">=1.19.5" +scipy = ">=1.6.0" +threadpoolctl = ">=3.1.0" + +[package.extras] +benchmark = ["matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "pandas (>=1.1.5)"] +build = ["cython (>=3.0.10)", "meson-python (>=0.16.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)"] +docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.17.1)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)", "towncrier (>=24.8.0)"] +examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] +install = ["joblib (>=1.2.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)", "threadpoolctl (>=3.1.0)"] +maintenance = ["conda-lock (==2.5.6)"] +tests = ["black (>=24.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.9)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.5.1)", "scikit-image (>=0.17.2)"] + +[[package]] +name = "scipy" +version = "1.12.0" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, + {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, + {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, + {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, + {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, + {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, + {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, + {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, + {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, + {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<1.29.0" + +[package.extras] +dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] +test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "seaborn" +version = "0.13.2" +description = "Statistical data visualization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987"}, + {file = "seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7"}, +] + +[package.dependencies] +matplotlib = ">=3.4,<3.6.1 || >3.6.1" +numpy = ">=1.20,<1.24.0 || >1.24.0" +pandas = ">=1.2" + +[package.extras] +dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] +docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] + +[[package]] +name = "semversioner" +version = "2.0.5" +description = "Manage properly semver in your repository" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "semversioner-2.0.5-py2.py3-none-any.whl", hash = "sha256:c5134188592764eab72fea081f8696b3ab9e12fa132a6b4c5cc008285b06f45e"}, + {file = "semversioner-2.0.5.tar.gz", hash = "sha256:84b307e95eb7eab2e299935fe5acfb91f23a2e493526d3f42cfe1d5adcfc3641"}, +] + +[package.dependencies] +click = ">=8.0.0" +jinja2 = ">=3.0.0" +packaging = ">=21.0" + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "75.6.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.9" +files = [ + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "smart-open" +version = "7.0.5" +description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)" +optional = false +python-versions = "<4.0,>=3.7" +files = [ + {file = "smart_open-7.0.5-py3-none-any.whl", hash = "sha256:8523ed805c12dff3eaa50e9c903a6cb0ae78800626631c5fe7ea073439847b89"}, + {file = "smart_open-7.0.5.tar.gz", hash = "sha256:d3672003b1dbc85e2013e4983b88eb9a5ccfd389b0d4e5015f39a9ee5620ec18"}, +] + +[package.dependencies] +wrapt = "*" + +[package.extras] +all = ["azure-common", "azure-core", "azure-storage-blob", "boto3", "google-cloud-storage (>=2.6.0)", "paramiko", "requests", "zstandard"] +azure = ["azure-common", "azure-core", "azure-storage-blob"] +gcs = ["google-cloud-storage (>=2.6.0)"] +http = ["requests"] +s3 = ["boto3"] +ssh = ["paramiko"] +test = ["awscli", "azure-common", "azure-core", "azure-storage-blob", "boto3", "google-cloud-storage (>=2.6.0)", "moto[server]", "numpy", "paramiko", "pyopenssl", "pytest", "pytest-benchmark", "pytest-rerunfailures", "requests", "responses", "zstandard"] +webhdfs = ["requests"] +zst = ["zstandard"] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "statsmodels" +version = "0.14.4" +description = "Statistical computations and models for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "statsmodels-0.14.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7a62f1fc9086e4b7ee789a6f66b3c0fc82dd8de1edda1522d30901a0aa45e42b"}, + {file = "statsmodels-0.14.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:46ac7ddefac0c9b7b607eed1d47d11e26fe92a1bc1f4d9af48aeed4e21e87981"}, + {file = "statsmodels-0.14.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a337b731aa365d09bb0eab6da81446c04fde6c31976b1d8e3d3a911f0f1e07b"}, + {file = "statsmodels-0.14.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:631bb52159117c5da42ba94bd94859276b68cab25dc4cac86475bc24671143bc"}, + {file = "statsmodels-0.14.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3bb2e580d382545a65f298589809af29daeb15f9da2eb252af8f79693e618abc"}, + {file = "statsmodels-0.14.4-cp310-cp310-win_amd64.whl", hash = "sha256:9729642884147ee9db67b5a06a355890663d21f76ed608a56ac2ad98b94d201a"}, + {file = "statsmodels-0.14.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ed7e118e6e3e02d6723a079b8c97eaadeed943fa1f7f619f7148dfc7862670f"}, + {file = "statsmodels-0.14.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5f537f7d000de4a1708c63400755152b862cd4926bb81a86568e347c19c364b"}, + {file = "statsmodels-0.14.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa74aaa26eaa5012b0a01deeaa8a777595d0835d3d6c7175f2ac65435a7324d2"}, + {file = "statsmodels-0.14.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e332c2d9b806083d1797231280602340c5c913f90d4caa0213a6a54679ce9331"}, + {file = "statsmodels-0.14.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9c8fa28dfd75753d9cf62769ba1fecd7e73a0be187f35cc6f54076f98aa3f3f"}, + {file = "statsmodels-0.14.4-cp311-cp311-win_amd64.whl", hash = "sha256:a6087ecb0714f7c59eb24c22781491e6f1cfffb660b4740e167625ca4f052056"}, + {file = "statsmodels-0.14.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5221dba7424cf4f2561b22e9081de85f5bb871228581124a0d1b572708545199"}, + {file = "statsmodels-0.14.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:17672b30c6b98afe2b095591e32d1d66d4372f2651428e433f16a3667f19eabb"}, + {file = "statsmodels-0.14.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab5e6312213b8cfb9dca93dd46a0f4dccb856541f91d3306227c3d92f7659245"}, + {file = "statsmodels-0.14.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bbb150620b53133d6cd1c5d14c28a4f85701e6c781d9b689b53681effaa655f"}, + {file = "statsmodels-0.14.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb695c2025d122a101c2aca66d2b78813c321b60d3a7c86bb8ec4467bb53b0f9"}, + {file = "statsmodels-0.14.4-cp312-cp312-win_amd64.whl", hash = "sha256:7f7917a51766b4e074da283c507a25048ad29a18e527207883d73535e0dc6184"}, + {file = "statsmodels-0.14.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5a24f5d2c22852d807d2b42daf3a61740820b28d8381daaf59dcb7055bf1a79"}, + {file = "statsmodels-0.14.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df4f7864606fa843d7e7c0e6af288f034a2160dba14e6ccc09020a3cf67cb092"}, + {file = "statsmodels-0.14.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91341cbde9e8bea5fb419a76e09114e221567d03f34ca26e6d67ae2c27d8fe3c"}, + {file = "statsmodels-0.14.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1322286a7bfdde2790bf72d29698a1b76c20b8423a55bdcd0d457969d0041f72"}, + {file = "statsmodels-0.14.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e31b95ac603415887c9f0d344cb523889cf779bc52d68e27e2d23c358958fec7"}, + {file = "statsmodels-0.14.4-cp313-cp313-win_amd64.whl", hash = "sha256:81030108d27aecc7995cac05aa280cf8c6025f6a6119894eef648997936c2dd0"}, + {file = "statsmodels-0.14.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4793b01b7a5f5424f5a1dbcefc614c83c7608aa2b035f087538253007c339d5d"}, + {file = "statsmodels-0.14.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d330da34f59f1653c5193f9fe3a3a258977c880746db7f155fc33713ea858db5"}, + {file = "statsmodels-0.14.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e9ddefba1d4e1107c1f20f601b0581421ea3ad9fd75ce3c2ba6a76b6dc4682c"}, + {file = "statsmodels-0.14.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f43da7957e00190104c5dd0f661bfc6dfc68b87313e3f9c4dbd5e7d222e0aeb"}, + {file = "statsmodels-0.14.4-cp39-cp39-win_amd64.whl", hash = "sha256:8286f69a5e1d0e0b366ffed5691140c83d3efc75da6dbf34a3d06e88abfaaab6"}, + {file = "statsmodels-0.14.4.tar.gz", hash = "sha256:5d69e0f39060dc72c067f9bb6e8033b6dccdb0bae101d76a7ef0bcc94e898b67"}, +] + +[package.dependencies] +numpy = ">=1.22.3,<3" +packaging = ">=21.3" +pandas = ">=1.4,<2.1.0 || >2.1.0" +patsy = ">=0.5.6" +scipy = ">=1.8,<1.9.2 || >1.9.2" + +[package.extras] +build = ["cython (>=3.0.10)"] +develop = ["colorama", "cython (>=3.0.10)", "cython (>=3.0.10,<4)", "flake8", "isort", "joblib", "matplotlib (>=3)", "pytest (>=7.3.0,<8)", "pytest-cov", "pytest-randomly", "pytest-xdist", "pywinpty", "setuptools-scm[toml] (>=8.0,<9.0)"] +docs = ["ipykernel", "jupyter-client", "matplotlib", "nbconvert", "nbformat", "numpydoc", "pandas-datareader", "sphinx"] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +description = "threadpoolctl" +optional = false +python-versions = ">=3.8" +files = [ + {file = "threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467"}, + {file = "threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107"}, +] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "tomli" +version = "2.2.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] + +[[package]] +name = "tomlkit" +version = "0.12.5" +description = "Style preserving TOML library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomlkit-0.12.5-py3-none-any.whl", hash = "sha256:af914f5a9c59ed9d0762c7b64d3b5d5df007448eb9cd2edc8a46b1eafead172f"}, + {file = "tomlkit-0.12.5.tar.gz", hash = "sha256:eef34fba39834d4d6b73c9ba7f3e4d1c417a4e56f89a7e96e090dd0d24b8fb3c"}, +] + +[[package]] +name = "tornado" +version = "6.4.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20241206" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, +] + +[[package]] +name = "types-setuptools" +version = "75.6.0.20241126" +description = "Typing stubs for setuptools" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b"}, + {file = "types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, +] + +[[package]] +name = "umap-learn" +version = "0.5.7" +description = "Uniform Manifold Approximation and Projection" +optional = false +python-versions = "*" +files = [ + {file = "umap-learn-0.5.7.tar.gz", hash = "sha256:b2a97973e4c6ffcebf241100a8de589a4c84126a832ab40f296c6d9fcc5eb19e"}, + {file = "umap_learn-0.5.7-py3-none-any.whl", hash = "sha256:6a7e0be2facfa365a5ed6588447102bdbef32a0ef449535c25c97ea7e680073c"}, +] + +[package.dependencies] +numba = ">=0.51.2" +numpy = ">=1.17" +pynndescent = ">=0.5" +scikit-learn = ">=0.22" +scipy = ">=1.3.1" +tqdm = "*" + +[package.extras] +parametric-umap = ["tensorflow (>=2.1)"] +plot = ["bokeh", "colorcet", "datashader", "holoviews", "matplotlib", "pandas", "scikit-image", "seaborn"] +tbb = ["tbb (>=2019.0)"] + +[[package]] +name = "update-toml" +version = "0.2.1" +description = "Update a toml value from a CLI" +optional = false +python-versions = ">=3.8" +files = [ + {file = "update_toml-0.2.1-py3-none-any.whl", hash = "sha256:90d5d9d2efbe2f273328ec78394912c33c0f741dc3b0ae744cfc4ddbe27051f7"}, + {file = "update_toml-0.2.1.tar.gz", hash = "sha256:92870b2ef8591eeffa32df674d9b4c4fce59a428f65063e138dee253bdb5d372"}, +] + +[package.dependencies] +tomlkit = ">=0.12.5,<0.13.0" + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "watchdog" +version = "6.0.0" +description = "Filesystem events monitoring" +optional = false +python-versions = ">=3.9" +files = [ + {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c"}, + {file = "watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881"}, + {file = "watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11"}, + {file = "watchdog-6.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa"}, + {file = "watchdog-6.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2"}, + {file = "watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a"}, + {file = "watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680"}, + {file = "watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f"}, + {file = "watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282"}, +] + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.9" +files = [ + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.13" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, +] + +[[package]] +name = "wrapt" +version = "1.17.0" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +files = [ + {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e185ec6060e301a7e5f8461c86fb3640a7beb1a0f0208ffde7a65ec4074931df"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb90765dd91aed05b53cd7a87bd7f5c188fcd95960914bae0d32c5e7f899719d"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:879591c2b5ab0a7184258274c42a126b74a2c3d5a329df16d69f9cee07bba6ea"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fce6fee67c318fdfb7f285c29a82d84782ae2579c0e1b385b7f36c6e8074fffb"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0698d3a86f68abc894d537887b9bbf84d29bcfbc759e23f4644be27acf6da301"}, + {file = "wrapt-1.17.0-cp310-cp310-win32.whl", hash = "sha256:69d093792dc34a9c4c8a70e4973a3361c7a7578e9cd86961b2bbf38ca71e4e22"}, + {file = "wrapt-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:f28b29dc158ca5d6ac396c8e0a2ef45c4e97bb7e65522bfc04c989e6fe814575"}, + {file = "wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, + {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, + {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, + {file = "wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4"}, + {file = "wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635"}, + {file = "wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7"}, + {file = "wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a"}, + {file = "wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045"}, + {file = "wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838"}, + {file = "wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab"}, + {file = "wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf"}, + {file = "wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a"}, + {file = "wrapt-1.17.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:69c40d4655e078ede067a7095544bcec5a963566e17503e75a3a3e0fe2803b13"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f495b6754358979379f84534f8dd7a43ff8cff2558dcdea4a148a6e713a758f"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa7ef4e0886a6f482e00d1d5bcd37c201b383f1d314643dfb0367169f94f04c"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fc931382e56627ec4acb01e09ce66e5c03c384ca52606111cee50d931a342d"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8f8909cdb9f1b237786c09a810e24ee5e15ef17019f7cecb207ce205b9b5fcce"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad47b095f0bdc5585bced35bd088cbfe4177236c7df9984b3cc46b391cc60627"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:948a9bd0fb2c5120457b07e59c8d7210cbc8703243225dbd78f4dfc13c8d2d1f"}, + {file = "wrapt-1.17.0-cp38-cp38-win32.whl", hash = "sha256:5ae271862b2142f4bc687bdbfcc942e2473a89999a54231aa1c2c676e28f29ea"}, + {file = "wrapt-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:f335579a1b485c834849e9075191c9898e0731af45705c2ebf70e0cd5d58beed"}, + {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, + {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, + {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, + {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, + {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, +] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.10,<3.13" +content-hash = "a26f023e5cad2190f57a8f5894331bd97d95f1608e7b679fb95d4617a1c53478"