diff --git a/.github/workflows/basic_tests.yml b/.github/workflows/basic_tests.yml index 13ea829da..8b01c30cc 100644 --- a/.github/workflows/basic_tests.yml +++ b/.github/workflows/basic_tests.yml @@ -8,10 +8,6 @@ on: type: string default: '3.11.x' secrets: - GRAPHISTRY_USERNAME: - required: true - GRAPHISTRY_PASSWORD: - required: true LLM_PROVIDER: required: true LLM_MODEL: @@ -125,9 +121,6 @@ jobs: name: Run Simple Examples runs-on: ubuntu-22.04 env: - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} - LLM_PROVIDER: openai LLM_MODEL: ${{ secrets.LLM_MODEL }} LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }} @@ -157,9 +150,6 @@ jobs: name: Run Basic Graph Tests runs-on: ubuntu-22.04 env: - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} - LLM_PROVIDER: openai LLM_MODEL: ${{ secrets.LLM_MODEL }} LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }} diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml index 05c2b055e..4e50cd325 100644 --- a/.github/workflows/e2e_tests.yml +++ b/.github/workflows/e2e_tests.yml @@ -26,10 +26,6 @@ on: required: true OPENAI_API_KEY: required: true - GRAPHISTRY_USERNAME: - required: true - GRAPHISTRY_PASSWORD: - required: true AWS_ACCESS_KEY_ID: required: true AWS_SECRET_ACCESS_KEY: diff --git a/.github/workflows/examples_tests.yml b/.github/workflows/examples_tests.yml index 809e87e0b..796faf2e0 100644 --- a/.github/workflows/examples_tests.yml +++ b/.github/workflows/examples_tests.yml @@ -20,8 +20,6 @@ jobs: env: LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} run: poetry run python ./examples/python/multimedia_example.py test-eval-example: @@ -51,8 +49,6 @@ jobs: EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }} EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} run: poetry run python ./cognee/eval_framework/run_eval.py test-descriptive-metrics: @@ -78,8 +74,6 @@ jobs: EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }} EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} run: poetry run python ./cognee/tests/tasks/descriptive_metrics/networkx_metrics_test.py @@ -98,8 +92,6 @@ jobs: - name: Run Dynamic Steps Tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} LLM_MODEL: ${{ secrets.LLM_MODEL }} LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }} LLM_API_KEY: ${{ secrets.LLM_API_KEY }} diff --git a/.github/workflows/python_version_tests.yml b/.github/workflows/python_version_tests.yml index 6a6aec6b8..76799ec80 100644 --- a/.github/workflows/python_version_tests.yml +++ b/.github/workflows/python_version_tests.yml @@ -8,10 +8,6 @@ on: type: string default: '["3.10.x", "3.11.x", "3.12.x"]' secrets: - GRAPHISTRY_USERNAME: - required: true - GRAPHISTRY_PASSWORD: - required: true LLM_PROVIDER: required: true LLM_MODEL: @@ -96,9 +92,6 @@ jobs: shell: bash env: PYTHONUTF8: 1 - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} - LLM_PROVIDER: openai LLM_MODEL: ${{ secrets.LLM_MODEL }} LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }} diff --git a/.github/workflows/reusable_notebook.yml b/.github/workflows/reusable_notebook.yml index f11694265..4f97476ef 100644 --- a/.github/workflows/reusable_notebook.yml +++ b/.github/workflows/reusable_notebook.yml @@ -8,10 +8,6 @@ on: required: true type: string secrets: - GRAPHISTRY_USERNAME: - required: true - GRAPHISTRY_PASSWORD: - required: true #LLM_MODEL: # required: true #LLM_ENDPOINT: @@ -67,8 +63,6 @@ jobs: EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }} EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} run: | poetry run jupyter nbconvert \ --to notebook \ diff --git a/.github/workflows/test_ollama.yml b/.github/workflows/test_ollama.yml index 7ce29d82a..8f85efadc 100644 --- a/.github/workflows/test_ollama.yml +++ b/.github/workflows/test_ollama.yml @@ -91,8 +91,6 @@ jobs: - name: Run example test env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GRAPHISTRY_USERNAME: ${{ secrets.GRAPHISTRY_USERNAME }} - GRAPHISTRY_PASSWORD: ${{ secrets.GRAPHISTRY_PASSWORD }} PYTHONFAULTHANDLER: 1 LLM_PROVIDER: "ollama" LLM_API_KEY: "ollama" diff --git a/cognee-starter-kit/README.md b/cognee-starter-kit/README.md index fab9142c1..c265e278e 100644 --- a/cognee-starter-kit/README.md +++ b/cognee-starter-kit/README.md @@ -80,15 +80,6 @@ cognee provides a visualize_graph function that will render the graph for you. ) await visualize_graph(graph_file_path) ``` -If you want to use tools like Graphistry for graph visualization: -- create an account and API key from https://www.graphistry.com -- add the following environment variables to `.env` file: -``` -GRAPHISTRY_USERNAME="" -GRAPHISTRY_PASSWORD="" -``` -Note: `GRAPHISTRY_PASSWORD` is API key. - # What will you build with cognee? diff --git a/cognee-starter-kit/src/pipelines/custom-model.py b/cognee-starter-kit/src/pipelines/custom-model.py index 347758636..d373bfd37 100644 --- a/cognee-starter-kit/src/pipelines/custom-model.py +++ b/cognee-starter-kit/src/pipelines/custom-model.py @@ -3,7 +3,6 @@ import asyncio import pathlib from cognee import config, add, cognify, search, SearchType, prune, visualize_graph -# from cognee.shared.utils import render_graph from cognee.low_level import DataPoint @@ -50,10 +49,6 @@ async def main(): # Cognify the text data. await cognify(graph_model=ProgrammingLanguage) - # # Get a graphistry url (Register for a free account at https://www.graphistry.com) - # url = await render_graph() - # print(f"Graphistry URL: {url}") - # Or use our simple graph preview graph_file_path = str( pathlib.Path( diff --git a/cognee-starter-kit/src/pipelines/default.py b/cognee-starter-kit/src/pipelines/default.py index 4ac4bcbc4..e757ffc3f 100644 --- a/cognee-starter-kit/src/pipelines/default.py +++ b/cognee-starter-kit/src/pipelines/default.py @@ -2,7 +2,6 @@ import os import asyncio import pathlib from cognee import config, add, cognify, search, SearchType, prune, visualize_graph -# from cognee.shared.utils import render_graph async def main(): @@ -30,10 +29,6 @@ async def main(): # Cognify the text data. await cognify() - # # Get a graphistry url (Register for a free account at https://www.graphistry.com) - # url = await render_graph() - # print(f"Graphistry URL: {url}") - # Or use our simple graph preview graph_file_path = str( pathlib.Path( diff --git a/cognee/api/v1/config/config.py b/cognee/api/v1/config/config.py index 792d5e200..fed2796ae 100644 --- a/cognee/api/v1/config/config.py +++ b/cognee/api/v1/config/config.py @@ -181,15 +181,3 @@ class config: def set_vector_db_url(db_url: str): vector_db_config = get_vectordb_config() vector_db_config.vector_db_url = db_url - - @staticmethod - def set_graphistry_config(graphistry_config: dict[str, str]): - base_config = get_base_config() - - if "username" not in graphistry_config or "password" not in graphistry_config: - raise InvalidValueError( - message="graphistry_config dictionary must contain 'username' and 'password' keys." - ) - - base_config.graphistry_username = graphistry_config.get("username") - base_config.graphistry_password = graphistry_config.get("password") diff --git a/cognee/base_config.py b/cognee/base_config.py index 837834273..f4a5c00d2 100644 --- a/cognee/base_config.py +++ b/cognee/base_config.py @@ -9,8 +9,6 @@ from pydantic_settings import BaseSettings, SettingsConfigDict class BaseConfig(BaseSettings): data_root_directory: str = get_absolute_path(".data_storage") monitoring_tool: object = Observer.LANGFUSE - graphistry_username: Optional[str] = os.getenv("GRAPHISTRY_USERNAME") - graphistry_password: Optional[str] = os.getenv("GRAPHISTRY_PASSWORD") langfuse_public_key: Optional[str] = os.getenv("LANGFUSE_PUBLIC_KEY") langfuse_secret_key: Optional[str] = os.getenv("LANGFUSE_SECRET_KEY") langfuse_host: Optional[str] = os.getenv("LANGFUSE_HOST") diff --git a/cognee/shared/utils.py b/cognee/shared/utils.py index 444c4eb5d..58d6f8086 100644 --- a/cognee/shared/utils.py +++ b/cognee/shared/utils.py @@ -6,9 +6,7 @@ from typing import BinaryIO, Union import requests import hashlib from datetime import datetime, timezone -import graphistry import networkx as nx -import pandas as pd import matplotlib.pyplot as plt import http.server import socketserver @@ -138,97 +136,6 @@ def generate_color_palette(unique_layers): return dict(zip(unique_layers, hex_colors)) -async def register_graphistry(): - config = get_base_config() - graphistry.register( - api=3, username=config.graphistry_username, password=config.graphistry_password - ) - - -def prepare_edges(graph, source, target, edge_key): - edge_list = [ - { - source: str(edge[0]), - target: str(edge[1]), - edge_key: str(edge[2]), - } - for edge in graph.edges(keys=True, data=True) - ] - - return pd.DataFrame(edge_list) - - -def prepare_nodes(graph, include_size=False): - nodes_data = [] - for node in graph.nodes: - node_info = graph.nodes[node] - - if not node_info: - continue - - node_data = { - **node_info, - "id": str(node), - "name": node_info["name"] if "name" in node_info else str(node), - } - - if include_size: - default_size = 10 # Default node size - larger_size = 20 # Size for nodes with specific keywords in their ID - keywords = ["DOCUMENT", "User"] - node_size = ( - larger_size if any(keyword in str(node) for keyword in keywords) else default_size - ) - node_data["size"] = node_size - - nodes_data.append(node_data) - - return pd.DataFrame(nodes_data) - - -async def render_graph( - graph=None, include_nodes=True, include_color=False, include_size=False, include_labels=True -): - await register_graphistry() - - if not isinstance(graph, nx.MultiDiGraph): - graph_engine = await get_graph_engine() - networkx_graph = nx.MultiDiGraph() - - (nodes, edges) = await graph_engine.get_graph_data() - - networkx_graph.add_nodes_from(nodes) - networkx_graph.add_edges_from(edges) - - graph = networkx_graph - - edges = prepare_edges(graph, "source_node", "target_node", "relationship_name") - plotter = graphistry.edges(edges, "source_node", "target_node") - plotter = plotter.bind(edge_label="relationship_name") - - if include_nodes: - nodes = prepare_nodes(graph, include_size=include_size) - plotter = plotter.nodes(nodes, "id") - - if include_size: - plotter = plotter.bind(point_size="size") - - if include_color: - pass - # unique_layers = nodes["layer_description"].unique() - # color_palette = generate_color_palette(unique_layers) - # plotter = plotter.encode_point_color("layer_description", categorical_mapping=color_palette, - # default_mapping="silver") - - if include_labels: - plotter = plotter.bind(point_label="name") - - # Visualization - url = plotter.plot(render=False, as_files=True, memoize=False) - print(f"Graph is visualized at: {url}") - return url - - # def sanitize_df(df): # """Replace NaNs and infinities in a DataFrame with None, making it JSON compliant.""" # return df.replace([np.inf, -np.inf, np.nan], None) diff --git a/cognee/tests/test_custom_model.py b/cognee/tests/test_custom_model.py index fb91c279e..cdf41d605 100755 --- a/cognee/tests/test_custom_model.py +++ b/cognee/tests/test_custom_model.py @@ -5,7 +5,6 @@ from cognee.modules.search.operations import get_history from cognee.modules.users.methods import get_default_user from cognee.shared.logging_utils import get_logger from cognee.modules.search.types import SearchType -from cognee.shared.utils import render_graph from cognee.low_level import DataPoint logger = get_logger() @@ -57,9 +56,6 @@ async def main(): await cognee.cognify(graph_model=ProgrammingLanguage) - url = await render_graph() - print(f"Graphistry URL: {url}") - graph_file_path = str( pathlib.Path( os.path.join( diff --git a/cognee/tests/unit/processing/utils/utils_test.py b/cognee/tests/unit/processing/utils/utils_test.py index cfdae0f34..da6d003ae 100644 --- a/cognee/tests/unit/processing/utils/utils_test.py +++ b/cognee/tests/unit/processing/utils/utils_test.py @@ -1,7 +1,5 @@ import os import pytest -import networkx as nx -import pandas as pd from unittest.mock import patch, mock_open from io import BytesIO from uuid import uuid4 @@ -9,8 +7,6 @@ from uuid import uuid4 from cognee.shared.utils import ( get_anonymous_id, get_file_content_hash, - prepare_edges, - prepare_nodes, ) @@ -55,21 +51,3 @@ def test_get_file_content_hash_stream(): expected_hash = hashlib.md5(b"test_data").hexdigest() result = get_file_content_hash(stream) assert result == expected_hash - - -def test_prepare_edges(): - graph = nx.MultiDiGraph() - graph.add_edge("A", "B", key="AB", weight=1) - edges_df = prepare_edges(graph, "source", "target", "key") - - assert isinstance(edges_df, pd.DataFrame) - assert len(edges_df) == 1 - - -def test_prepare_nodes(): - graph = nx.Graph() - graph.add_node(1, name="Node1") - nodes_df = prepare_nodes(graph) - - assert isinstance(nodes_df, pd.DataFrame) - assert len(nodes_df) == 1 diff --git a/examples/low_level/pipeline.py b/examples/low_level/pipeline.py index a8077e932..47f8294f0 100644 --- a/examples/low_level/pipeline.py +++ b/examples/low_level/pipeline.py @@ -6,7 +6,6 @@ from cognee import visualize_graph from cognee.low_level import setup, DataPoint from cognee.pipelines import run_tasks, Task from cognee.tasks.storage import add_data_points -from cognee.shared.utils import render_graph class Person(DataPoint): @@ -80,9 +79,6 @@ async def main(): async for status in pipeline: print(status) - # Get a graphistry url (Register for a free account at https://www.graphistry.com) - await render_graph() - # Or use our simple graph preview graph_file_path = str( os.path.join(os.path.dirname(__file__), ".artifacts/graph_visualization.html") diff --git a/examples/low_level/product_recommendation.py b/examples/low_level/product_recommendation.py index 15fb9a7d0..782311618 100644 --- a/examples/low_level/product_recommendation.py +++ b/examples/low_level/product_recommendation.py @@ -10,7 +10,6 @@ from cognee.infrastructure.databases.graph import get_graph_engine from cognee.low_level import setup, DataPoint from cognee.pipelines import run_tasks, Task from cognee.tasks.storage import add_data_points -from cognee.shared.utils import render_graph class Products(DataPoint): @@ -119,9 +118,6 @@ async def main(): async for status in pipeline: print(status) - # Get a graphistry url (Register for a free account at https://www.graphistry.com) - await render_graph() - graph_engine = await get_graph_engine() products_results = await graph_engine.query( diff --git a/poetry.lock b/poetry.lock index d518a323e..f4c38f11b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "aiobotocore" @@ -1406,6 +1406,27 @@ files = [ {file = "coverage-7.9.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0b3496922cb5f4215bf5caaef4cf12364a26b0be82e9ed6d050f3352cf2d7ef0"}, {file = "coverage-7.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9565c3ab1c93310569ec0d86b017f128f027cab0b622b7af288696d7ed43a16d"}, {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2241ad5dbf79ae1d9c08fe52b36d03ca122fb9ac6bca0f34439e99f8327ac89f"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb5838701ca68b10ebc0937dbd0eb81974bac54447c55cd58dea5bca8451029"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b30a25f814591a8c0c5372c11ac8967f669b97444c47fd794926e175c4047ece"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2d04b16a6062516df97969f1ae7efd0de9c31eb6ebdceaa0d213b21c0ca1a683"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7931b9e249edefb07cd6ae10c702788546341d5fe44db5b6108a25da4dca513f"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52e92b01041151bf607ee858e5a56c62d4b70f4dac85b8c8cb7fb8a351ab2c10"}, + {file = "coverage-7.9.1-cp313-cp313t-win32.whl", hash = "sha256:684e2110ed84fd1ca5f40e89aa44adf1729dc85444004111aa01866507adf363"}, + {file = "coverage-7.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:437c576979e4db840539674e68c84b3cda82bc824dd138d56bead1435f1cb5d7"}, + {file = "coverage-7.9.1-cp313-cp313t-win_arm64.whl", hash = "sha256:18a0912944d70aaf5f399e350445738a1a20b50fbea788f640751c2ed9208b6c"}, + {file = "coverage-7.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f424507f57878e424d9a95dc4ead3fbdd72fd201e404e861e465f28ea469951"}, + {file = "coverage-7.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:535fde4001b2783ac80865d90e7cc7798b6b126f4cd8a8c54acfe76804e54e58"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02532fd3290bb8fa6bec876520842428e2a6ed6c27014eca81b031c2d30e3f71"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56f5eb308b17bca3bbff810f55ee26d51926d9f89ba92707ee41d3c061257e55"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfa447506c1a52271f1b0de3f42ea0fa14676052549095e378d5bff1c505ff7b"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9ca8e220006966b4a7b68e8984a6aee645a0384b0769e829ba60281fe61ec4f7"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:49f1d0788ba5b7ba65933f3a18864117c6506619f5ca80326b478f72acf3f385"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:68cd53aec6f45b8e4724c0950ce86eacb775c6be01ce6e3669fe4f3a21e768ed"}, + {file = "coverage-7.9.1-cp39-cp39-win32.whl", hash = "sha256:95335095b6c7b1cc14c3f3f17d5452ce677e8490d101698562b2ffcacc304c8d"}, + {file = "coverage-7.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:e1b5191d1648acc439b24721caab2fd0c86679d8549ed2c84d5a7ec1bedcc244"}, + {file = "coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514"}, + {file = "coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c"}, + {file = "coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec"}, ] [package.dependencies] @@ -2683,45 +2704,6 @@ protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4 [package.extras] grpc = ["grpcio (>=1.44.0,<2.0.0)"] -[[package]] -name = "graphistry" -version = "0.33.9" -description = "A visual graph analytics library for extracting, transforming, displaying, and sharing big graphs with end-to-end GPU acceleration" -optional = false -python-versions = ">=3.7" -groups = ["main"] -files = [ - {file = "graphistry-0.33.9-py3-none-any.whl", hash = "sha256:6952d96a0dfd77d7b7498f93a4986ea2189cb62553d4a27df18f02106ea4db99"}, - {file = "graphistry-0.33.9.tar.gz", hash = "sha256:40c095ae0ad4143d686b3802495c643a3decb4d663e0038aa6645c06c95d4d0b"}, -] - -[package.dependencies] -numpy = "*" -packaging = ">=20.1" -palettable = ">=3.0" -pandas = "*" -pyarrow = ">=0.15.0" -requests = "*" -setuptools = "*" -squarify = "*" -typing-extensions = "*" - -[package.extras] -ai = ["dgl", "dirty-cat (==0.2.0)", "faiss-cpu", "joblib", "scikit-learn (>=1.0)", "scipy", "sentence-transformers", "torch (<2)", "umap-learn"] -all = ["dgl", "dirty-cat (==0.2.0)", "faiss-cpu", "gremlinpython", "igraph", "ipython", "joblib", "neo4j", "neotime", "networkx (>=2.5)", "openpyxl (==3.1.0)", "scikit-learn (>=1.0)", "scipy", "sentence-transformers", "torch (<2)", "umap-learn", "xlrd"] -bolt = ["neo4j", "neotime"] -build = ["build"] -dev = ["Jinja2 (<3.1)", "build", "docutils (==0.16)", "flake8 (>=5.0)", "gremlinpython", "igraph", "ipython", "mock", "mypy", "neo4j", "neotime", "networkx (>=2.5)", "numba (>=0.57.1)", "openpyxl (==3.1.0)", "pandas-stubs", "pytest", "scikit-learn (<=1.3.2)", "sphinx (==3.4.3)", "sphinx-autodoc-typehints (==1.11.1)", "sphinx-rtd-theme (==0.5.1)", "tqdm-stubs", "types-requests", "xlrd"] -docs = ["Jinja2 (<3.1)", "docutils (==0.16)", "sphinx (==3.4.3)", "sphinx-autodoc-typehints (==1.11.1)", "sphinx-rtd-theme (==0.5.1)"] -gremlin = ["gremlinpython"] -igraph = ["igraph"] -jupyter = ["ipython"] -networkx = ["networkx (>=2.5)"] -nodexl = ["openpyxl (==3.1.0)", "xlrd"] -test = ["flake8 (>=5.0)", "ipython", "mock", "mypy", "pandas-stubs", "pytest", "scikit-learn (<=1.3.2)", "tqdm-stubs", "types-requests"] -testai = ["numba (>=0.57.1)"] -umap-learn = ["dirty-cat (==0.2.0)", "scikit-learn (>=1.0)", "umap-learn"] - [[package]] name = "graphiti-core" version = "0.7.9" @@ -3988,6 +3970,8 @@ python-versions = "*" groups = ["main"] files = [ {file = "jsonpath-ng-1.7.0.tar.gz", hash = "sha256:f6f5f7fd4e5ff79c785f1573b394043b39849fb2bb47bcead935d12b00beab3c"}, + {file = "jsonpath_ng-1.7.0-py2-none-any.whl", hash = "sha256:898c93fc173f0c336784a3fa63d7434297544b7198124a68f9a3ef9597b0ae6e"}, + {file = "jsonpath_ng-1.7.0-py3-none-any.whl", hash = "sha256:f3d7f9e848cba1b6da28c55b1c26ff915dc9e0b1ba7e752a53d6da8d5cbd00b6"}, ] [package.dependencies] @@ -6860,18 +6844,6 @@ files = [ dev = ["pytest", "tox"] lint = ["black"] -[[package]] -name = "palettable" -version = "3.3.3" -description = "Color palettes for Python" -optional = false -python-versions = ">=3.7" -groups = ["main"] -files = [ - {file = "palettable-3.3.3-py2.py3-none-any.whl", hash = "sha256:74e9e7d7fe5a9be065e02397558ed1777b2df0b793a6f4ce1a5ee74f74fb0caa"}, - {file = "palettable-3.3.3.tar.gz", hash = "sha256:094dd7d9a5fc1cca4854773e5c1fc6a315b33bd5b3a8f47064928facaf0490a8"}, -] - [[package]] name = "pandas" version = "2.2.3" @@ -7665,6 +7637,7 @@ files = [ {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bb89f0a835bcfc1d42ccd5f41f04870c1b936d8507c6df12b7737febc40f0909"}, {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f0c2d907a1e102526dd2986df638343388b94c33860ff3bbe1384130828714b1"}, {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f8157bed2f51db683f31306aa497311b560f2265998122abe1dce6428bd86567"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-win_amd64.whl", hash = "sha256:27422aa5f11fbcd9b18da48373eb67081243662f9b46e6fd07c3eb46e4535142"}, {file = "psycopg2_binary-2.9.10-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:eb09aa7f9cecb45027683bb55aebaaf45a0df8bf6de68801a6afdc7947bb09d4"}, {file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b73d6d7f0ccdad7bc43e6d34273f70d587ef62f824d7261c4ae9b8b1b6af90e8"}, {file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce5ab4bf46a211a8e924d307c1b1fcda82368586a19d0a24f8ae166f5c784864"}, @@ -10371,18 +10344,6 @@ files = [ dev = ["duckdb (>=0.6)", "maturin (>=1.4,<2.0)", "mypy", "pandas", "pandas-stubs", "pdoc", "pre-commit", "pyperf", "python-dateutil", "pytz", "ruff (==0.7.2)", "types-python-dateutil", "types-pytz", "typing_extensions"] rs = ["sqlglotrs (==0.6.1)"] -[[package]] -name = "squarify" -version = "0.4.4" -description = "Pure Python implementation of the squarify treemap layout algorithm" -optional = false -python-versions = "*" -groups = ["main"] -files = [ - {file = "squarify-0.4.4-py3-none-any.whl", hash = "sha256:d7597724e29d48aa14fd2f551060d6b09e1f0a67e4cd3ea329fe03b4c9a56f11"}, - {file = "squarify-0.4.4.tar.gz", hash = "sha256:b8a110c8dc5f1cd1402ca12d79764a081e90bfc445346cfa166df929753ecb46"}, -] - [[package]] name = "stack-data" version = "0.6.3" @@ -12215,4 +12176,4 @@ weaviate = ["weaviate-client"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<=3.13" -content-hash = "ca2a3e8260092933419793efe202d50ae7b1c6ce738750876fd5f64a31718790" +content-hash = "ad0adc46c39f2edf33c82462cb6ed2acc5ef175c2df5e9fb125a6444e2b8325b" diff --git a/pyproject.toml b/pyproject.toml index eebf658ae..69752ffe0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,6 @@ dependencies = [ "aiohttp>=3.11.14", "aiofiles>=23.2.1", "rdflib>=7.1.4,<7.2.0", - "graphistry>=0.33.5,<0.34", "pypdf>=4.1.0,<6.0.0", "jinja2>=3.1.3,<4", "matplotlib>=3.8.3,<4",