forked from CodeGraphContext/CodeGraphContext
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
170 lines (161 loc) · 6.32 KB
/
Copy pathpyproject.toml
File metadata and controls
170 lines (161 loc) · 6.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
[project]
name = "codegraphcontext"
version = "0.6.8"
description = "An MCP server that indexes local code into a graph database to provide context to AI assistants."
authors = [{ name = "Shashank Shekhar Singh", email = "shashankshekharsingh1205@gmail.com" }]
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.10"
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
dependencies = [
"neo4j>=5.15.0",
"watchdog>=3.0.0",
"stdlibs>=2023.11.18",
"typer>=0.9.0",
"rich>=13.7.0",
"inquirerpy>=0.3.4",
"python-dotenv>=1.0.0",
"tree-sitter>=0.24.0,<0.26.0",
"tree-sitter-language-pack>=1.6,<2.0",
"tree-sitter-c-sharp>=0.21.0",
"pyyaml",
"nbformat",
"nbconvert>=7.16.6",
"pathspec>=0.12.1",
# ------------------------------------------------------------------
# Backend driver pins (see issue #1035)
#
# FalkorDB and its embedded sibling ``falkordblite`` co-evolve with
# ``redis-py``: the most recent ``falkordblite`` releases (>= 0.10) and
# ``falkordb`` releases (>= 1.6) require ``redis>=7.1`` / ``redis>=7.4``,
# but redis-py >= 6 breaks the Unix-socket path FalkorDB Lite uses
# (``UnixDomainSocketConnection`` lacks a ``host`` attribute, which the
# new maintenance-notifications handshake dereferences unconditionally).
#
# Until upstream resolves this we pin a known-good triple:
# * redis-py 5.x — last series that keeps UDS path working
# * falkordblite < 0.10 — last series compatible with redis>=4.5
# * falkordb < 1.6 — last series compatible with redis<7.1
#
# ``redis`` itself is now declared explicitly so a fresh resolver run
# (``uvx``, ``pipx install --force``, etc.) cannot silently pick up
# redis-py 6/7/8 again and reintroduce the bug.
# ------------------------------------------------------------------
"redis>=5,<6",
"falkordb>=1.0,<1.6",
"falkordblite>=0.7,<0.10; sys_platform != 'win32' and python_version >= '3.12'",
"requests>=2.28.0",
"protobuf>=3.20,<3.21",
# ------------------------------------------------------------------
# KùzuDB was archived upstream on 2025-10-10; 0.11.3 is the final
# release and its wheel matrix stops at cp313 for macOS and Windows.
# Only Linux (manylinux x86_64 / aarch64) got cp314 wheels. Without a
# marker, `pip install codegraphcontext` on macOS/Windows + Python 3.14
# falls back to the kuzu sdist and tries a full C++/CMake source build,
# which fails and takes the whole install down with it.
#
# Keep kuzu where a wheel actually exists; elsewhere the backend is
# simply absent and `database_kuzu` reports its install hint at runtime.
# LadybugDB (the maintained Kùzu fork, see issue #852) publishes cp314
# wheels for all three platforms and remains the unconditional default.
# ------------------------------------------------------------------
"kuzu; python_version < '3.14' or sys_platform == 'linux'",
"ladybug; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
# Cap below 2.0: the low-level `mcp.server.Server` dropped its `list_tools`
# and `call_tool` decorators in 2.0.0, which api/mcp_sse.py registers its
# handlers with. With an unbounded pin, CI resolved 2.0.0 on release day and
# every job failed at import with
# "AttributeError: 'Server' object has no attribute 'list_tools'".
# Lift this once mcp_sse.py is ported to the 2.x server API.
"mcp>=1.0.0,<2",
"fastapi>=0.100.0",
"uvicorn>=0.22.0",
"cryptography>=42.0.0"
]
[project.optional-dependencies]
parsing = [
"tree-sitter>=0.24.0,<0.26.0",
"tree-sitter-language-pack>=1.6,<2.0",
"tree-sitter-c-sharp>=0.21.0",
]
# Named backend extras let users (and CI) opt into a single, tested driver
# triple instead of inheriting whatever the default install pulls. They
# install the same ranges as the defaults today; the long-term plan
# (tracked separately) is to make the defaults lean and require an extra.
falkordb-embedded = [
"falkordblite>=0.7,<0.10; sys_platform != 'win32' and python_version >= '3.12'",
"falkordb>=1.0,<1.6",
"redis>=5,<6",
]
falkordb-remote = [
"falkordb>=1.0,<1.6",
"redis>=5,<6",
]
kuzu = [
# Same wheel-availability marker as the core dependency above: no
# cp314 wheels exist for macOS/Windows and the sdist cannot be built.
"kuzu; python_version < '3.14' or sys_platform == 'linux'",
]
ladybug = [
"ladybug; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
]
neo4j = [
"neo4j>=5.15.0",
]
gcf = [
"gcf-python>=1.0.0",
]
dev = [
"pytest>=7.4.0",
"black>=23.11.0",
"pytest-asyncio>=0.21.0",
"pytest-mock",
"ruff",
]
# Optional drivers for `cgc datasource` ingestion (MySQL/Aurora, Cassandra).
# Redis ingestion uses the ``redis`` package already pinned in core deps.
datasources = [
"pymysql",
"mysql-connector-python",
"cassandra-driver",
]
[project.urls]
"Homepage" = "https://github.com/CodeGraphContext/CodeGraphContext"
"Bug Tracker" = "https://github.com/CodeGraphContext/CodeGraphContext/issues"
[project.scripts]
cgc = "codegraphcontext.cli.main:app"
codegraphcontext = "codegraphcontext.cli.main:app"
[tool.setuptools]
package-dir = { "" = "src" }
include-package-data = true
[tool.setuptools.package-data]
codegraphcontext = ["viz/dist/**/*"]
[tool.setuptools.packages.find]
where = ["src"]
include = ["codegraphcontext*"]
[tool.ruff]
line-length = 120
target-version = "py310"
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F"]
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]
norecursedirs = ["tests/fixtures", "tests/e2e/sample_projects", "venv", ".git", "__pycache__"]
markers = [
"integration: mark a test as an integration test.",
"e2e: mark a test as an end-to-end test.",
"slow: mark test as slow."
]