mirror of
https://github.com/Azure-Samples/graphrag-accelerator.git
synced 2025-10-13 01:38:24 +00:00
convert app to proper python package
This commit is contained in:
parent
755448343b
commit
9a73ef2df4
@ -13,13 +13,13 @@ from fastapi import (
|
||||
UploadFile,
|
||||
)
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.typing.models import (
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.typing.models import (
|
||||
BaseResponse,
|
||||
StorageNameList,
|
||||
)
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import (
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import (
|
||||
delete_blob_container,
|
||||
delete_cosmos_container_item,
|
||||
sanitize_name,
|
@ -7,9 +7,9 @@ from fastapi import (
|
||||
)
|
||||
from fastapi.responses import StreamingResponse
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import (
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import (
|
||||
sanitize_name,
|
||||
validate_index_file_exist,
|
||||
)
|
@ -18,20 +18,20 @@ from kubernetes import (
|
||||
config as kubernetes_config,
|
||||
)
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.typing.models import (
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.typing.models import (
|
||||
BaseResponse,
|
||||
IndexNameList,
|
||||
IndexStatusResponse,
|
||||
)
|
||||
from src.typing.pipeline import PipelineJobState
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import (
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import (
|
||||
delete_blob_container,
|
||||
sanitize_name,
|
||||
validate_blob_container_name,
|
||||
)
|
||||
from src.utils.pipeline import PipelineJob
|
||||
from graphrag_app.utils.pipeline import PipelineJob
|
||||
|
||||
index_route = APIRouter(
|
||||
prefix="/index",
|
@ -13,9 +13,9 @@ from fastapi import (
|
||||
)
|
||||
from graphrag.config.create_graphrag_config import create_graphrag_config
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import sanitize_name
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import sanitize_name
|
||||
|
||||
prompt_tuning_route = APIRouter(prefix="/index/config", tags=["Index Configuration"])
|
||||
|
@ -25,19 +25,19 @@ from graphrag.vector_stores.base import (
|
||||
VectorStoreSearchResult,
|
||||
)
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.typing.models import (
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.typing.models import (
|
||||
GraphRequest,
|
||||
GraphResponse,
|
||||
)
|
||||
from src.typing.pipeline import PipelineJobState
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import (
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import (
|
||||
get_df,
|
||||
sanitize_name,
|
||||
validate_index_file_exist,
|
||||
)
|
||||
from src.utils.pipeline import PipelineJob
|
||||
from graphrag_app.utils.pipeline import PipelineJob
|
||||
|
||||
query_route = APIRouter(
|
||||
prefix="/query",
|
@ -21,11 +21,11 @@ from graphrag.api.query import (
|
||||
)
|
||||
from graphrag.config import create_graphrag_config
|
||||
|
||||
from src.api.query import _is_index_complete
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.typing.models import GraphRequest
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import (
|
||||
from graphrag_app.api.query import _is_index_complete
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.typing.models import GraphRequest
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import (
|
||||
get_df,
|
||||
sanitize_name,
|
||||
validate_index_file_exist,
|
||||
@ -45,7 +45,7 @@ query_streaming_route = APIRouter(
|
||||
description="The global query 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.",
|
||||
)
|
||||
async def global_search_streaming(request: GraphRequest):
|
||||
# this is a slightly modified version of src.api.query.global_query() method
|
||||
# this is a slightly modified version of graphrag_app.api.query.global_query() method
|
||||
if isinstance(request.index_name, str):
|
||||
index_names = [request.index_name]
|
||||
else:
|
||||
@ -202,7 +202,7 @@ async def global_search_streaming(request: GraphRequest):
|
||||
description="The local query 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 (e.g. What are the healing properties of chamomile?).",
|
||||
)
|
||||
async def local_search_streaming(request: GraphRequest):
|
||||
# this is a slightly modified version of src.api.query.local_query() method
|
||||
# this is a slightly modified version of graphrag_app.api.query.local_query() method
|
||||
if isinstance(request.index_name, str):
|
||||
index_names = [request.index_name]
|
||||
else:
|
@ -5,15 +5,15 @@
|
||||
import pandas as pd
|
||||
from fastapi import APIRouter, HTTPException
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.typing.models import (
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.typing.models import (
|
||||
ClaimResponse,
|
||||
EntityResponse,
|
||||
RelationshipResponse,
|
||||
ReportResponse,
|
||||
TextUnitResponse,
|
||||
)
|
||||
from src.utils.common import (
|
||||
from graphrag_app.utils.common import (
|
||||
pandas_storage_options,
|
||||
sanitize_name,
|
||||
validate_index_file_exist,
|
@ -22,6 +22,7 @@ spec:
|
||||
containers:
|
||||
- name: index-job-manager
|
||||
image: PLACEHOLDER
|
||||
workingDir: /backend/graphrag_app/config
|
||||
imagePullPolicy: Always
|
||||
resources:
|
||||
requests:
|
@ -9,6 +9,7 @@ to schedule graphrag indexing jobs on a first-come-first-serve basis (based on e
|
||||
"""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
import pandas as pd
|
||||
import yaml
|
||||
@ -17,11 +18,11 @@ from kubernetes import (
|
||||
config,
|
||||
)
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.typing.pipeline import PipelineJobState
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import sanitize_name
|
||||
from src.utils.pipeline import PipelineJob
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import sanitize_name
|
||||
from graphrag_app.utils.pipeline import PipelineJob
|
||||
|
||||
|
||||
def schedule_indexing_job(index_name: str):
|
||||
@ -68,14 +69,15 @@ def _generate_aks_job_manifest(
|
||||
The manifest must be valid YAML with certain values replaced by the provided arguments.
|
||||
"""
|
||||
# NOTE: this file location is relative to the WORKDIR set in Dockerfile-backend
|
||||
with open("index-job.yaml", "r") as f:
|
||||
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||
with (SCRIPT_DIR / "config/index-job.yaml").open("r") as f:
|
||||
manifest = yaml.safe_load(f)
|
||||
manifest["metadata"]["name"] = f"indexing-job-{sanitize_name(index_name)}"
|
||||
manifest["spec"]["template"]["spec"]["serviceAccountName"] = service_account_name
|
||||
manifest["spec"]["template"]["spec"]["containers"][0]["image"] = docker_image_name
|
||||
manifest["spec"]["template"]["spec"]["containers"][0]["command"] = [
|
||||
"python",
|
||||
"src/indexer/indexer.py",
|
||||
"tools/indexer.py",
|
||||
f"-i={index_name}",
|
||||
]
|
||||
return manifest
|
@ -1,13 +1,13 @@
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT License.
|
||||
|
||||
from src.logger.application_insights_workflow_callbacks import (
|
||||
from graphrag_app.logger.application_insights_workflow_callbacks import (
|
||||
ApplicationInsightsWorkflowCallbacks,
|
||||
)
|
||||
from src.logger.console_workflow_callbacks import ConsoleWorkflowCallbacks
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.logger.pipeline_job_updater import PipelineJobUpdater
|
||||
from src.logger.typing import (
|
||||
from graphrag_app.logger.console_workflow_callbacks import ConsoleWorkflowCallbacks
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.logger.pipeline_job_updater import PipelineJobUpdater
|
||||
from graphrag_app.logger.typing import (
|
||||
Logger,
|
||||
PipelineAppInsightsReportingConfig,
|
||||
PipelineReportingConfigTypes,
|
@ -9,13 +9,13 @@ from graphrag.callbacks.file_workflow_callbacks import FileWorkflowCallbacks
|
||||
from graphrag.callbacks.workflow_callbacks import WorkflowCallbacks
|
||||
from graphrag.callbacks.workflow_callbacks_manager import WorkflowCallbacksManager
|
||||
|
||||
from src.logger.application_insights_workflow_callbacks import (
|
||||
from graphrag_app.logger.application_insights_workflow_callbacks import (
|
||||
ApplicationInsightsWorkflowCallbacks,
|
||||
)
|
||||
from src.logger.blob_workflow_callbacks import BlobWorkflowCallbacks
|
||||
from src.logger.console_workflow_callbacks import ConsoleWorkflowCallbacks
|
||||
from src.logger.typing import Logger
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.logger.blob_workflow_callbacks import BlobWorkflowCallbacks
|
||||
from graphrag_app.logger.console_workflow_callbacks import ConsoleWorkflowCallbacks
|
||||
from graphrag_app.logger.typing import Logger
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
|
||||
|
||||
def load_pipeline_logger(
|
@ -3,8 +3,8 @@
|
||||
|
||||
from graphrag.callbacks.noop_workflow_callbacks import NoopWorkflowCallbacks
|
||||
|
||||
from src.typing.pipeline import PipelineJobState
|
||||
from src.utils.pipeline import PipelineJob
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.pipeline import PipelineJob
|
||||
|
||||
|
||||
class PipelineJobUpdater(NoopWorkflowCallbacks):
|
@ -4,6 +4,7 @@
|
||||
import os
|
||||
import traceback
|
||||
from contextlib import asynccontextmanager
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
from azure.cosmos import PartitionKey, ThroughputProperties
|
||||
@ -20,15 +21,15 @@ from kubernetes import (
|
||||
config,
|
||||
)
|
||||
|
||||
from src.api.data import data_route
|
||||
from src.api.graph import graph_route
|
||||
from src.api.index import index_route
|
||||
from src.api.prompt_tuning import prompt_tuning_route
|
||||
from src.api.query import query_route
|
||||
from src.api.query_streaming import query_streaming_route
|
||||
from src.api.source import source_route
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.api.data import data_route
|
||||
from graphrag_app.api.graph import graph_route
|
||||
from graphrag_app.api.index import index_route
|
||||
from graphrag_app.api.prompt_tuning import prompt_tuning_route
|
||||
from graphrag_app.api.query import query_route
|
||||
from graphrag_app.api.query_streaming import query_streaming_route
|
||||
from graphrag_app.api.source import source_route
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
|
||||
|
||||
async def catch_all_exceptions_middleware(request: Request, call_next):
|
||||
@ -91,7 +92,8 @@ async def lifespan(app: FastAPI):
|
||||
name=pod_name, namespace=os.environ["AKS_NAMESPACE"]
|
||||
)
|
||||
# load the cronjob manifest template and update PLACEHOLDER values with correct values using the pod spec
|
||||
with open("index-job-manager.yaml", "r") as f:
|
||||
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||
with (SCRIPT_DIR / "config/index-cronjob-manager.yaml").open("r") as f:
|
||||
manifest = yaml.safe_load(f)
|
||||
manifest["spec"]["jobTemplate"]["spec"]["template"]["spec"]["containers"][0][
|
||||
"image"
|
@ -10,7 +10,7 @@ from azure.cosmos import exceptions
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from fastapi import HTTPException
|
||||
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
|
||||
|
||||
def get_df(
|
@ -8,9 +8,9 @@ from typing import (
|
||||
|
||||
from azure.cosmos.exceptions import CosmosHttpResponseError
|
||||
|
||||
from src.typing.pipeline import PipelineJobState
|
||||
from src.utils.azure_clients import AzureClientManager
|
||||
from src.utils.common import sanitize_name
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import sanitize_name
|
||||
|
||||
|
||||
@dataclass
|
184
backend/poetry.lock
generated
184
backend/poetry.lock
generated
@ -1276,20 +1276,20 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "deprecated"
|
||||
version = "1.2.15"
|
||||
version = "1.2.17"
|
||||
description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
|
||||
optional = false
|
||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
|
||||
files = [
|
||||
{file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"},
|
||||
{file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"},
|
||||
{file = "Deprecated-1.2.17-py2.py3-none-any.whl", hash = "sha256:69cdc0a751671183f569495e2efb14baee4344b0236342eec29f1fde25d61818"},
|
||||
{file = "deprecated-1.2.17.tar.gz", hash = "sha256:0114a10f0bbb750b90b2c2296c90cf7e9eaeb0abb5cf06c80de2c60138de0a82"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
wrapt = ">=1.10,<2"
|
||||
|
||||
[package.extras]
|
||||
dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "jinja2 (>=3.0.3,<3.1.0)", "setuptools", "sphinx (<2)", "tox"]
|
||||
dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"]
|
||||
|
||||
[[package]]
|
||||
name = "deprecation"
|
||||
@ -1613,61 +1613,61 @@ openai = ["openai (>=1.35.12)", "tiktoken (>=0.7.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "fonttools"
|
||||
version = "4.55.4"
|
||||
version = "4.55.6"
|
||||
description = "Tools to manipulate font files"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "fonttools-4.55.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3b332ea7b7f5f3d99f9bc5a28a23c3824ae72711abf7c4e1d62fa21699fdebe7"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d8f925909256e62152e7c3e192655dbca3ab8c3cdef7d7b436732727e80feb6"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a58af9b98e39bcd773aa352b4512be79b472830b799cb1d3cafb2b4796b71cd"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:736d750d2ab4523067d8058e5294b40b01f2eee521e0fd401bec0d5e21e80b12"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1a9a2e7e8a9d3bfa9589db3e6c4e4c127fec252493924b2f87a67a25f9430057"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:87824368e994af34a95cb4279a8c711e51974b3c28d052d39d768531cc9e8e59"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-win32.whl", hash = "sha256:6c36dcbfe64bce38c4d4f1d436cdc6445e969eee96eb98d98be603b5abf8c3f2"},
|
||||
{file = "fonttools-4.55.4-cp310-cp310-win_amd64.whl", hash = "sha256:3c53a467e5cf629acdbefc98b0f554859539fb6447bbeae4117b9ab51464ccc5"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1605b28165c785bf26c2cbd205dc0822463e3f9f56f187049eb214dc5f4a59cb"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d851d8b2fdb676507365d1430c3285d62c4039d0d7760d8cf2f2e5ea3aa19d73"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fb3cf1cddf08cec0338f238f950cb76fabab23a324a579e3e1f9b2ef2578329"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddd3208b06186ca00fbd329c0d0fed5ba209c99017cc46e2c4ea42233c2fbd00"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9bd98819cb585a894dda9dcb337afeb2601abf17da17de7bfbfc1bc2e4a062c7"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4877376c10541e8dccf14876c8476d5082338fa5d21103894894382cc245144b"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-win32.whl", hash = "sha256:3a5e466894ec6d8a009b0eb8e02a6eb26959a318d5b7a906280c26bdadce6423"},
|
||||
{file = "fonttools-4.55.4-cp311-cp311-win_amd64.whl", hash = "sha256:f595129e6f9c6402965d6295fe8c18c1945d27af0f90bdb52ff426226e647afc"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b3db72ad2d26a0e9ec694cbfb4485a8da9c095d29f66561cf935dbd19f3efcea"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:87717808fd5953588c3ffaf512e8cab0e43c09c1da04e42ba87fa4c07d8170c7"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f49dac626ad5bc1a0147b88e6157e3211fd440d00007f0da6c9e5f91dd5cb88e"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2d0ac8656ada8b604ae5da15d9aa075232f2181b95b51a3a2a55195222df7e7"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:013c8b45873fa77a4ff6d25e43fecf1046cb7e8c6b32f1843117f98f3f8eac60"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:94caad375d254a0332926512f06791f5e66c24a913ebecd6178b14f61d27c62f"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-win32.whl", hash = "sha256:cb3eb4bf3a0c4e431e1ccab7a33ef4f1bb32657133fff4a61dc4fcbd54b94d29"},
|
||||
{file = "fonttools-4.55.4-cp312-cp312-win_amd64.whl", hash = "sha256:6914269f6ff6b20c6b5a9b19d0b752880bd8ee218d9a7d6afe9960bbf1922d98"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:699dd32da7258a89939567a3d71b3f8decf84da54488a2526693f0d981a76479"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f374b18ac04fbf78f20940418aee7882be3cdcb328ded80e16c3356499f64cf"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b18792529ca3c24259090b6faa60bd0bdfcc4a06312e8f06d6fccab007f07193"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e91d25261ebc9ff2143b95e6272f46b9f28e260b8f40feda07c80b66ff7e61d"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2695781a897395d03504fd24b60c944726b5e7b7af9ea3d922f7319d70c6fc37"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21de3ef5b8e5361fd01d6aef2c09dda4ede139d6b3a1f5cf621d6bea48840dfd"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-win32.whl", hash = "sha256:0ef33fda14e39aabb892a18ed16805b0b5b4e8a801fd1815a694be9dc7f30024"},
|
||||
{file = "fonttools-4.55.4-cp313-cp313-win_amd64.whl", hash = "sha256:e953b1614e32b6da828ae7659c8f330a593b6c4b7a4a31f8f63c01b12f0d3680"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e2d1bbcaf8ca8c60fbb029982197fbaa487559d5380f1c3098882c5ceb4311c7"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a885593dbcbfc250ff17831f7dc9316e95c3d046e6cd7ff7ab52ebf673bbf978"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02cd4ad9b3ab9f9c5b233b3bb6a96a036c9c0ef17487805b5e73cedf6439d188"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:822d46676f794bb6cac055b43f5636792e2a360e18cf0f3a0333c21d79ec0f2d"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7b195440fe14d8601053a51e06e13c94f725bf9f964611be99dc3cb65497ce8e"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a0e0a0ec8cc4b8f82f9cf4efa26774dbd93433ba51b8f9bd2b214bf36c5638f6"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-win32.whl", hash = "sha256:ca7e6047fbc995500e0b7459a04d5b92cafd7730b636d5f83334cd7eefdf95c7"},
|
||||
{file = "fonttools-4.55.4-cp38-cp38-win_amd64.whl", hash = "sha256:0185983fcf49ae7a826cedc6f64d68b0434a5b7905d89e75bc95fced7fe118c1"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:dcc08dcb2be554073a72f3a8cecbc4226602ccdd0187b8f37a03a731cb931864"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7b9b414ce50f09cb692e97ff82b041ea1a21076ed9c1923206560c15ce9ad03a"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8807a1357d434ef1f4aed9bdfee7077f52dbc040b18ac98f6e417f69a48afbb5"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a3ec7cba2e71edbc999ce3d48d34ef87cc30a36af6ff90dfc0dbc131f705fc"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2964b9fe6b4a892a41a8a517bac232072a821cf2288fad1d19c6c1d19c34b0dd"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0b9f4f032295adeb39a8c0eefb08a7b1e90f4b7571506e5d84bb923a7afa8247"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-win32.whl", hash = "sha256:ee4e86280dc637a17e926cbdd32c2de148c013c3468777ae6e94c8b4449c8e93"},
|
||||
{file = "fonttools-4.55.4-cp39-cp39-win_amd64.whl", hash = "sha256:82a03920f0f524abab375dcfac8926d9596986503ee00ae435bdd71b1498f214"},
|
||||
{file = "fonttools-4.55.4-py3-none-any.whl", hash = "sha256:d07ad8f31038c6394a0945752458313367a0ef8125d284ee59f99e68393a3c2d"},
|
||||
{file = "fonttools-4.55.4.tar.gz", hash = "sha256:9598af0af85073659facbe9612fcc56b071ef2f26e3819ebf9bd8c5d35f958c5"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:57d55fc965e5dd20c8a60d880e0f43bafb506be87af0b650bdc42591e41e0d0d"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:127999618afe3a2490fad54bab0650c5fbeab1f8109bdc0205f6ad34306deb8b"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3226d40cb92787e09dcc3730f54b3779dfe56bdfea624e263685ba17a6faac4"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e82772f70b84e17aa36e9f236feb2a4f73cb686ec1e162557a36cf759d1acd58"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a632f85bd73e002b771bcbcdc512038fa5d2e09bb18c03a22fb8d400ea492ddf"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:791e0cf862cdd3a252df395f1bb5f65e3a760f1da3c7ce184d0f7998c266614d"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-win32.whl", hash = "sha256:94f7f2c5c5f3a6422e954ecb6d37cc363e27d6f94050a7ed3f79f12157af6bb2"},
|
||||
{file = "fonttools-4.55.6-cp310-cp310-win_amd64.whl", hash = "sha256:2d15e02b93a46982a8513a208e8f89148bca8297640527365625be56151687d0"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0879f99eabbf2171dfadd9c8c75cec2b7b3aa9cd1f3955dd799c69d60a5189ef"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d77d83ca77a4c3156a2f4cbc7f09f5a8503795da658fa255b987ad433a191266"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07478132407736ee5e54f9f534e73923ae28e9bb6dba17764a35e3caf7d7fea3"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c06fbc2fd76b9bab03eddfd8aa9fb7c0981d314d780e763c80aa76be1c9982"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:09ed667c4753e1270994e5398cce8703e6423c41702a55b08f843b2907b1be65"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0ee6ed68af8d57764d69da099db163aaf37d62ba246cfd42f27590e3e6724b55"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-win32.whl", hash = "sha256:9f99e7876518b2d059a9cc67c506168aebf9c71ac8d81006d75e684222f291d2"},
|
||||
{file = "fonttools-4.55.6-cp311-cp311-win_amd64.whl", hash = "sha256:3aa6c684007723895aade9b2fe76d07008c9dc90fd1ef6c310b3ca9c8566729f"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:51120695ee13001533e50abd40eec32c01b9c6f44c5567db38a7acd3eedcd19d"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:76ac5a595f86892b49ba86ba2e46185adc76328ce6eff0583b30e5c3ab02a914"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7535a5ac386e549e2b00b34c59b53f805e2423000676723b6867df3c10df04"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c42009177d3690894288082d5e3dac6bdc9f5d38e25054535e341a19cf5183a4"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:88f74bc19dbab3dee6a00ca67ca54bb4793e44ff0c4dcf1fa61d68651ae3fa0a"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bc6f58976ffc19fe1630119a2736153b66151d023c6f30065f31c9e8baed1303"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-win32.whl", hash = "sha256:4259159715142c10b0f4d121ef14da3fa6eafc719289d9efa4b20c15e57fef82"},
|
||||
{file = "fonttools-4.55.6-cp312-cp312-win_amd64.whl", hash = "sha256:d91fce2e9a87cc0db9f8042281b6458f99854df810cfefab2baf6ab2acc0f4b4"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9394813cc73fa22c5413ec1c5745c0a16f68dd2b890f7c55eaba5cb40187ed55"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ac817559a7d245454231374e194b4e457dca6fefa5b52af466ab0516e9a09c6e"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34405f1314f1e88b1877a9f9e497fe45190e8c4b29a6c7cd85ed7f666a57d702"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5469bbf555047efd8752d85faeb2a3510916ddc6c50dd6fb168edf1677408f"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8a8004a19195eb8a8a13de69e26ec9ed60a5bc1fde336d0021b47995b368fac9"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:73a4aaf672e7b2265c6354a69cbbadf71b7f3133ecb74e98fec4c67c366698a3"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-win32.whl", hash = "sha256:73bdff9c44d36c57ea84766afc20517eda0c9bb1571b4a09876646264bd5ff3b"},
|
||||
{file = "fonttools-4.55.6-cp313-cp313-win_amd64.whl", hash = "sha256:132fa22be8a99784de8cb171b30425a581f04a40ec1c05183777fb2b1fe3bac9"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8398928acb8a57073606feb9a310682d4a7e2d7536f2c61719261f4c0974504c"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c2f78ebfdef578d4db7c44bc207ac5f9a5c1f22c9db606460dcc8ad48e183338"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fb545f3a4ebada908fa717ec732277de18dd10161f03ee3b3144d34477804de"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1062daa0390b32bfd062ded2b450db9e9cf10e5a9919561c13f535e818b1952b"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:860ab9ed3f9e088d3bdb77b9074e656635f173b039e77d550b603cba052a0dca"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:03701e7de70c71eb5965cb200986b0c11dfa3cf8e843e4f517ee30a0f43f0a25"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-win32.whl", hash = "sha256:f66561fbfb75785d06513b8025a50be37bf970c3c413e87581cc6eff10bc78f1"},
|
||||
{file = "fonttools-4.55.6-cp38-cp38-win_amd64.whl", hash = "sha256:edf159a8f1e48dc4683a715b36da76dd2f82954b16bfe11a215d58e963d31cfc"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61aa1997c520bee4cde14ffabe81efc4708c500c8c81dce37831551627a2be56"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7954ea66a8d835f279c17d8474597a001ddd65a2c1ca97e223041bfbbe11f65e"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f4e88f15f5ed4d2e4bdfcc98540bb3987ae25904f9be304be9a604e7a7050a1"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d419483a6295e83cabddb56f1c7b7bfdc8169de2fcb5c68d622bd11140355f9"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:acc74884afddc2656bffc50100945ff407574538c152931c402fccddc46f0abc"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a55489c7e9d5ea69690a2afad06723c3d0c48c6d276a25391ea97cb31a16b37c"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-win32.whl", hash = "sha256:8c9de8d16d02ecc8b65e3f3d2d1e3002be2c4a3f094d580faf76d7f768bd45fe"},
|
||||
{file = "fonttools-4.55.6-cp39-cp39-win_amd64.whl", hash = "sha256:471961af7a4b8461fac0c8ee044b4986e6fe3746d4c83a1aacbdd85b4eb53f93"},
|
||||
{file = "fonttools-4.55.6-py3-none-any.whl", hash = "sha256:d20ab5a78d0536c26628eaadba661e7ae2427b1e5c748a0a510a44d914e1b155"},
|
||||
{file = "fonttools-4.55.6.tar.gz", hash = "sha256:1beb4647a0df5ceaea48015656525eb8081af226fe96554089fd3b274d239ef0"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
@ -1989,15 +1989,15 @@ umap-learn = ">=0.5.6,<0.6.0"
|
||||
|
||||
[[package]]
|
||||
name = "graspologic-native"
|
||||
version = "1.2.1"
|
||||
version = "1.2.3"
|
||||
description = "Python native companion module to the graspologic library"
|
||||
optional = false
|
||||
python-versions = ">=3.6, <3.13"
|
||||
python-versions = "<3.14,>=3.8"
|
||||
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"},
|
||||
{file = "graspologic_native-1.2.3-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:b2fe41f24fa826dc0c134c7e3c8781090c3056a0000e74ac927b34caca8b3c6b"},
|
||||
{file = "graspologic_native-1.2.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b25c75c31f7650905b75a7fe01f89bf8e89667bf6fcb1c733b0260599df2d00"},
|
||||
{file = "graspologic_native-1.2.3-cp38-abi3-win_amd64.whl", hash = "sha256:57ded2c8532878ff662888c0397f4909d70fdf0e98d808de707238c67857ab5c"},
|
||||
{file = "graspologic_native-1.2.3.tar.gz", hash = "sha256:7c059f7b580248abc3fee8828b9e97ac48ac9a9554fdeafaa35862871ac5113a"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2814,13 +2814,13 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "kubernetes"
|
||||
version = "31.0.0"
|
||||
version = "32.0.0"
|
||||
description = "Kubernetes python client"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
{file = "kubernetes-31.0.0-py2.py3-none-any.whl", hash = "sha256:bf141e2d380c8520eada8b351f4e319ffee9636328c137aa432bc486ca1200e1"},
|
||||
{file = "kubernetes-31.0.0.tar.gz", hash = "sha256:28945de906c8c259c1ebe62703b56a03b714049372196f854105afe4e6d014c0"},
|
||||
{file = "kubernetes-32.0.0-py2.py3-none-any.whl", hash = "sha256:60fd8c29e8e43d9c553ca4811895a687426717deba9c0a66fb2dcc3f5ef96692"},
|
||||
{file = "kubernetes-32.0.0.tar.gz", hash = "sha256:319fa840345a482001ac5d6062222daeb66ec4d1bcb3087402aed685adf0aecb"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@ -3561,13 +3561,13 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
|
||||
|
||||
[[package]]
|
||||
name = "openai"
|
||||
version = "1.60.0"
|
||||
version = "1.60.1"
|
||||
description = "The official Python library for the openai API"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "openai-1.60.0-py3-none-any.whl", hash = "sha256:df06c43be8018274980ac363da07d4b417bd835ead1c66e14396f6f15a0d5dda"},
|
||||
{file = "openai-1.60.0.tar.gz", hash = "sha256:7fa536cd4b644718645b874d2706e36dbbef38b327e42ca0623275da347ee1a9"},
|
||||
{file = "openai-1.60.1-py3-none-any.whl", hash = "sha256:714181ec1c452353d456f143c22db892de7b373e3165063d02a2b798ed575ba1"},
|
||||
{file = "openai-1.60.1.tar.gz", hash = "sha256:beb1541dfc38b002bd629ab68b0d6fe35b870c5f4311d9bc4404d85af3214d5e"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@ -4536,13 +4536,13 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "pydantic"
|
||||
version = "2.10.5"
|
||||
version = "2.10.6"
|
||||
description = "Data validation using Python type hints"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"},
|
||||
{file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"},
|
||||
{file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"},
|
||||
{file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@ -5486,29 +5486,29 @@ pyasn1 = ">=0.1.3"
|
||||
|
||||
[[package]]
|
||||
name = "ruff"
|
||||
version = "0.9.2"
|
||||
version = "0.9.3"
|
||||
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
{file = "ruff-0.9.2-py3-none-linux_armv6l.whl", hash = "sha256:80605a039ba1454d002b32139e4970becf84b5fee3a3c3bf1c2af6f61a784347"},
|
||||
{file = "ruff-0.9.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b9aab82bb20afd5f596527045c01e6ae25a718ff1784cb92947bff1f83068b00"},
|
||||
{file = "ruff-0.9.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fbd337bac1cfa96be615f6efcd4bc4d077edbc127ef30e2b8ba2a27e18c054d4"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82b35259b0cbf8daa22a498018e300b9bb0174c2bbb7bcba593935158a78054d"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b6a9701d1e371bf41dca22015c3f89769da7576884d2add7317ec1ec8cb9c3c"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9cc53e68b3c5ae41e8faf83a3b89f4a5d7b2cb666dff4b366bb86ed2a85b481f"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:8efd9da7a1ee314b910da155ca7e8953094a7c10d0c0a39bfde3fcfd2a015684"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3292c5a22ea9a5f9a185e2d131dc7f98f8534a32fb6d2ee7b9944569239c648d"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a605fdcf6e8b2d39f9436d343d1f0ff70c365a1e681546de0104bef81ce88df"},
|
||||
{file = "ruff-0.9.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c547f7f256aa366834829a08375c297fa63386cbe5f1459efaf174086b564247"},
|
||||
{file = "ruff-0.9.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d18bba3d3353ed916e882521bc3e0af403949dbada344c20c16ea78f47af965e"},
|
||||
{file = "ruff-0.9.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b338edc4610142355ccf6b87bd356729b62bf1bc152a2fad5b0c7dc04af77bfe"},
|
||||
{file = "ruff-0.9.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:492a5e44ad9b22a0ea98cf72e40305cbdaf27fac0d927f8bc9e1df316dcc96eb"},
|
||||
{file = "ruff-0.9.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:af1e9e9fe7b1f767264d26b1075ac4ad831c7db976911fa362d09b2d0356426a"},
|
||||
{file = "ruff-0.9.2-py3-none-win32.whl", hash = "sha256:71cbe22e178c5da20e1514e1e01029c73dc09288a8028a5d3446e6bba87a5145"},
|
||||
{file = "ruff-0.9.2-py3-none-win_amd64.whl", hash = "sha256:c5e1d6abc798419cf46eed03f54f2e0c3adb1ad4b801119dedf23fcaf69b55b5"},
|
||||
{file = "ruff-0.9.2-py3-none-win_arm64.whl", hash = "sha256:a1b63fa24149918f8b37cef2ee6fff81f24f0d74b6f0bdc37bc3e1f2143e41c6"},
|
||||
{file = "ruff-0.9.2.tar.gz", hash = "sha256:b5eceb334d55fae5f316f783437392642ae18e16dcf4f1858d55d3c2a0f8f5d0"},
|
||||
{file = "ruff-0.9.3-py3-none-linux_armv6l.whl", hash = "sha256:7f39b879064c7d9670197d91124a75d118d00b0990586549949aae80cdc16624"},
|
||||
{file = "ruff-0.9.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a187171e7c09efa4b4cc30ee5d0d55a8d6c5311b3e1b74ac5cb96cc89bafc43c"},
|
||||
{file = "ruff-0.9.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c59ab92f8e92d6725b7ded9d4a31be3ef42688a115c6d3da9457a5bda140e2b4"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc153c25e715be41bb228bc651c1e9b1a88d5c6e5ed0194fa0dfea02b026439"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:646909a1e25e0dc28fbc529eab8eb7bb583079628e8cbe738192853dbbe43af5"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a5a46e09355695fbdbb30ed9889d6cf1c61b77b700a9fafc21b41f097bfbba4"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c4bb09d2bbb394e3730d0918c00276e79b2de70ec2a5231cd4ebb51a57df9ba1"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96a87ec31dc1044d8c2da2ebbed1c456d9b561e7d087734336518181b26b3aa5"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb7554aca6f842645022fe2d301c264e6925baa708b392867b7a62645304df4"},
|
||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cabc332b7075a914ecea912cd1f3d4370489c8018f2c945a30bcc934e3bc06a6"},
|
||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:33866c3cc2a575cbd546f2cd02bdd466fed65118e4365ee538a3deffd6fcb730"},
|
||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:006e5de2621304c8810bcd2ee101587712fa93b4f955ed0985907a36c427e0c2"},
|
||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ba6eea4459dbd6b1be4e6bfc766079fb9b8dd2e5a35aff6baee4d9b1514ea519"},
|
||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:90230a6b8055ad47d3325e9ee8f8a9ae7e273078a66401ac66df68943ced029b"},
|
||||
{file = "ruff-0.9.3-py3-none-win32.whl", hash = "sha256:eabe5eb2c19a42f4808c03b82bd313fc84d4e395133fb3fc1b1516170a31213c"},
|
||||
{file = "ruff-0.9.3-py3-none-win_amd64.whl", hash = "sha256:040ceb7f20791dfa0e78b4230ee9dce23da3b64dd5848e40e3bf3ab76468dcf4"},
|
||||
{file = "ruff-0.9.3-py3-none-win_arm64.whl", hash = "sha256:800d773f6d4d33b0a3c60e2c6ae8f4c202ea2de056365acfa519aa48acf28e0b"},
|
||||
{file = "ruff-0.9.3.tar.gz", hash = "sha256:8293f89985a090ebc3ed1064df31f3b4b56320cdfcec8b60d3295bddb955c22a"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5754,13 +5754,13 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"]
|
||||
|
||||
[[package]]
|
||||
name = "starlette"
|
||||
version = "0.45.2"
|
||||
version = "0.45.3"
|
||||
description = "The little ASGI library that shines."
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
files = [
|
||||
{file = "starlette-0.45.2-py3-none-any.whl", hash = "sha256:4daec3356fb0cb1e723a5235e5beaf375d2259af27532958e2d79df549dad9da"},
|
||||
{file = "starlette-0.45.2.tar.gz", hash = "sha256:bba1831d15ae5212b22feab2f218bab6ed3cd0fc2dc1d4442443bb1ee52260e0"},
|
||||
{file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"},
|
||||
{file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -9,11 +9,10 @@ authors = [
|
||||
"Shane Solomon <shane.solomon@microsoft.com>",
|
||||
"Kenny Zhang <zhangken@microsoft.com>",
|
||||
]
|
||||
description = ""
|
||||
description = "A web API wrapper around the official GraphRAG library."
|
||||
license = "MIT"
|
||||
name = "graphrag-solution-accelerator"
|
||||
package-mode = false
|
||||
version = "1.0.1"
|
||||
name = "graphrag-app"
|
||||
version = "1.2.0"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "~3.10"
|
||||
|
@ -10,8 +10,8 @@ from azure.cosmos import CosmosClient, PartitionKey
|
||||
from azure.storage.blob import BlobServiceClient
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from src.main import app
|
||||
from src.utils.common import sanitize_name
|
||||
from graphrag_app.main import app
|
||||
from graphrag_app.utils.common import sanitize_name
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
|
@ -8,7 +8,7 @@ from fastapi.testclient import TestClient
|
||||
|
||||
|
||||
def test_get_report(container_with_index_files: str, client: TestClient):
|
||||
"""Test retrieving a report via the src.api.source.get_report_info() function."""
|
||||
"""Test retrieving a report via the graphrag_app.api.source.get_report_info() function."""
|
||||
# retrieve a report that exists
|
||||
response = client.get(f"/source/report/{container_with_index_files}/1")
|
||||
assert response.status_code == 200
|
||||
|
@ -8,8 +8,8 @@ from typing import Generator
|
||||
|
||||
import pytest
|
||||
|
||||
from src.typing.pipeline import PipelineJobState
|
||||
from src.utils.pipeline import PipelineJob
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.pipeline import PipelineJob
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
@ -42,7 +42,7 @@ def cosmos_index_job_entry(cosmos_client) -> Generator[str, None, None]:
|
||||
|
||||
|
||||
def test_pipeline_job_interface(cosmos_index_job_entry):
|
||||
"""Test the src.utils.pipeline.PipelineJob class interface."""
|
||||
"""Test the graphrag_app.utils.pipeline.PipelineJob class interface."""
|
||||
pipeline_job = PipelineJob()
|
||||
|
||||
# test creating a new entry
|
||||
|
@ -5,7 +5,7 @@ from azure.cosmos import CosmosClient
|
||||
from azure.storage.blob import BlobServiceClient
|
||||
from azure.storage.blob.aio import BlobServiceClient as BlobServiceClientAsync
|
||||
|
||||
from src.utils.azure_clients import (
|
||||
from graphrag_app.utils.azure_clients import (
|
||||
AzureClientManager,
|
||||
_BlobServiceClientSingleton,
|
||||
_BlobServiceClientSingletonAsync,
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
import pytest
|
||||
|
||||
from src.utils.common import (
|
||||
from graphrag_app.utils.common import (
|
||||
retrieve_original_blob_container_name,
|
||||
sanitize_name,
|
||||
validate_blob_container_name,
|
||||
@ -12,7 +12,7 @@ from src.utils.common import (
|
||||
|
||||
|
||||
def test_validate_blob_container_name():
|
||||
"""Test the src.utils.common.validate_blob_container_name function."""
|
||||
"""Test the graphrag_app.utils.common.validate_blob_container_name function."""
|
||||
# test valid container name
|
||||
assert validate_blob_container_name("validcontainername") is None
|
||||
# test invalid container name
|
||||
@ -33,7 +33,7 @@ def test_validate_blob_container_name():
|
||||
|
||||
|
||||
def test_retrieve_original_blob_container_name(container_with_graphml_file):
|
||||
"""Test the src.utils.common.retrieve_original_blob_container_name function."""
|
||||
"""Test the graphrag_app.utils.common.retrieve_original_blob_container_name function."""
|
||||
# test retrieving a valid container name
|
||||
original_name = container_with_graphml_file
|
||||
sanitized_name = sanitize_name(original_name)
|
||||
@ -43,7 +43,7 @@ def test_retrieve_original_blob_container_name(container_with_graphml_file):
|
||||
|
||||
|
||||
def test_validate_index_file_exist(container_with_graphml_file):
|
||||
"""Test the src.utils.common.validate_index_file_exist function."""
|
||||
"""Test the graphrag_app.utils.common.validate_index_file_exist function."""
|
||||
original_name = container_with_graphml_file
|
||||
sanitized_name = sanitize_name(original_name)
|
||||
# test with a valid index and valid file
|
||||
|
@ -2,13 +2,13 @@ from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
|
||||
from src.logger.load_logger import load_pipeline_logger
|
||||
from graphrag_app.logger.load_logger import load_pipeline_logger
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_app_insights_workflow_callbacks():
|
||||
with patch(
|
||||
"src.logger.application_insights_workflow_callbacks.ApplicationInsightsWorkflowCallbacks"
|
||||
"graphrag_app.logger.application_insights_workflow_callbacks.ApplicationInsightsWorkflowCallbacks"
|
||||
) as mock_app_insights_workflow_callbacks:
|
||||
yield mock_app_insights_workflow_callbacks
|
||||
|
||||
@ -24,7 +24,7 @@ def mock_file_workflow_callbacks():
|
||||
@pytest.fixture
|
||||
def mock_blob_workflow_callbacks():
|
||||
with patch(
|
||||
"src.logger.blob_workflow_callbacks.BlobWorkflowCallbacks"
|
||||
"graphrag_app.logger.blob_workflow_callbacks.BlobWorkflowCallbacks"
|
||||
) as mock_blob_workflow_callbacks:
|
||||
yield mock_blob_workflow_callbacks
|
||||
|
||||
@ -32,7 +32,7 @@ def mock_blob_workflow_callbacks():
|
||||
@pytest.fixture
|
||||
def mock_console_workflow_callbacks():
|
||||
with patch(
|
||||
"src.logger.console_workflow_callbacks.ConsoleWorkflowCallbacks"
|
||||
"graphrag_app.logger.console_workflow_callbacks.ConsoleWorkflowCallbacks"
|
||||
) as mock_console_workflow_callbacks:
|
||||
yield mock_console_workflow_callbacks
|
||||
|
||||
|
@ -6,7 +6,7 @@ from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from src.logger.application_insights_workflow_callbacks import (
|
||||
from graphrag_app.logger.application_insights_workflow_callbacks import (
|
||||
ApplicationInsightsWorkflowCallbacks,
|
||||
)
|
||||
|
||||
@ -14,7 +14,7 @@ from src.logger.application_insights_workflow_callbacks import (
|
||||
@pytest.fixture
|
||||
def mock_logger():
|
||||
with patch(
|
||||
"src.logger.application_insights_workflow_callbacks.logging.getLogger"
|
||||
"graphrag_app.logger.application_insights_workflow_callbacks.logging.getLogger"
|
||||
) as mock_get_logger:
|
||||
mock_logger_instance = MagicMock(spec=logging.Logger)
|
||||
mock_get_logger.return_value = mock_logger_instance
|
||||
@ -24,7 +24,7 @@ def mock_logger():
|
||||
@pytest.fixture
|
||||
def workflow_callbacks(mock_logger):
|
||||
with patch(
|
||||
"src.logger.application_insights_workflow_callbacks.ApplicationInsightsWorkflowCallbacks.__init__",
|
||||
"graphrag_app.logger.application_insights_workflow_callbacks.ApplicationInsightsWorkflowCallbacks.__init__",
|
||||
return_value=None,
|
||||
):
|
||||
instance = ApplicationInsightsWorkflowCallbacks()
|
||||
|
@ -5,13 +5,13 @@ from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
|
||||
from src.logger.blob_workflow_callbacks import BlobWorkflowCallbacks
|
||||
from graphrag_app.logger.blob_workflow_callbacks import BlobWorkflowCallbacks
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_blob_service_client():
|
||||
with patch(
|
||||
"src.logger.blob_workflow_callbacks.BlobServiceClient"
|
||||
"graphrag_app.logger.blob_workflow_callbacks.BlobServiceClient"
|
||||
) as mock_blob_service_client:
|
||||
yield mock_blob_service_client
|
||||
|
||||
@ -19,7 +19,7 @@ def mock_blob_service_client():
|
||||
@pytest.fixture
|
||||
def workflow_callbacks(mock_blob_service_client):
|
||||
with patch(
|
||||
"src.logger.blob_workflow_callbacks.BlobWorkflowCallbacks.__init__",
|
||||
"graphrag_app.logger.blob_workflow_callbacks.BlobWorkflowCallbacks.__init__",
|
||||
return_value=None,
|
||||
):
|
||||
instance = BlobWorkflowCallbacks()
|
||||
|
@ -6,13 +6,13 @@ from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from src.logger.console_workflow_callbacks import ConsoleWorkflowCallbacks
|
||||
from graphrag_app.logger.console_workflow_callbacks import ConsoleWorkflowCallbacks
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_logger():
|
||||
with patch(
|
||||
"src.logger.console_workflow_callbacks.logging.getLogger"
|
||||
"graphrag_app.logger.console_workflow_callbacks.logging.getLogger"
|
||||
) as mock_get_logger:
|
||||
mock_logger_instance = MagicMock(spec=logging.Logger)
|
||||
mock_get_logger.return_value = mock_logger_instance
|
||||
@ -22,7 +22,7 @@ def mock_logger():
|
||||
@pytest.fixture
|
||||
def workflow_callbacks(mock_logger):
|
||||
with patch(
|
||||
"src.logger.console_workflow_callbacks.ConsoleWorkflowCallbacks.__init__",
|
||||
"graphrag_app.logger.console_workflow_callbacks.ConsoleWorkflowCallbacks.__init__",
|
||||
return_value=None,
|
||||
):
|
||||
instance = ConsoleWorkflowCallbacks()
|
||||
|
@ -14,18 +14,17 @@ from graphrag.config.create_graphrag_config import create_graphrag_config
|
||||
from graphrag.index.create_pipeline_config import create_pipeline_config
|
||||
from graphrag.index.typing import PipelineRunResult
|
||||
|
||||
from ...src.logger import (
|
||||
from graphrag_app.logger import (
|
||||
PipelineJobUpdater,
|
||||
load_pipeline_logger,
|
||||
)
|
||||
from ...src.typing.pipeline import PipelineJobState
|
||||
from ...src.utils.azure_clients import AzureClientManager
|
||||
from ...src.utils.common import sanitize_name
|
||||
from ...src.utils.pipeline import PipelineJob
|
||||
from graphrag_app.typing.pipeline import PipelineJobState
|
||||
from graphrag_app.utils.azure_clients import AzureClientManager
|
||||
from graphrag_app.utils.common import sanitize_name
|
||||
from graphrag_app.utils.pipeline import PipelineJob
|
||||
|
||||
|
||||
def start_indexing_job(index_name: str):
|
||||
return 0
|
||||
print("Start indexing job...")
|
||||
# get sanitized name
|
||||
sanitized_index_name = sanitize_name(index_name)
|
@ -10,7 +10,6 @@ ENV GRAPHRAG_VERSION=v${GRAPHRAG_VERSION}
|
||||
ENV PIP_ROOT_USER_ACTION=ignore
|
||||
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
|
||||
ENV SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
ENV PYTHONPATH=/backend
|
||||
ENV TIKTOKEN_CACHE_DIR=/opt/tiktoken_cache/
|
||||
|
||||
COPY backend /backend
|
||||
@ -26,4 +25,4 @@ RUN python -c "import tiktoken; tiktoken.encoding_for_model('gpt-3.5-turbo'); ti
|
||||
|
||||
WORKDIR /backend
|
||||
EXPOSE 80
|
||||
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "80"]
|
||||
CMD ["uvicorn", "graphrag_app.main:app", "--host", "0.0.0.0", "--port", "80"]
|
||||
|
Loading…
x
Reference in New Issue
Block a user