langtrace-python-sdk 3.8.8__py3-none-any.whl → 3.8.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ from .basic import execute_query
2
+ from langtrace_python_sdk import with_langtrace_root_span
3
+
4
+
5
+ class Neo4jRunner:
6
+ @with_langtrace_root_span("Neo4jRunner")
7
+ def run(self):
8
+ execute_query()
@@ -0,0 +1,26 @@
1
+ import os
2
+ from langtrace_python_sdk import langtrace
3
+ from neo4j import GraphDatabase
4
+
5
+ langtrace.init()
6
+
7
+ def execute_query():
8
+ driver = GraphDatabase.driver(
9
+ os.getenv("NEO4J_URI"),
10
+ auth=(os.getenv("NEO4J_USERNAME"), os.getenv("NEO4J_PASSWORD"))
11
+ )
12
+
13
+ records, summary, keys = driver.execute_query(
14
+ "MATCH (p:Person {age: $age}) RETURN p.name AS name",
15
+ age=42,
16
+ database_=os.getenv("NEO4J_DATABASE"),
17
+ )
18
+
19
+ # Loop through results and do something with them
20
+ for person in records:
21
+ print(person)
22
+ # Summary information
23
+ print("The query `{query}` returned {records_count} records in {time} ms.".format(
24
+ query=summary.query, records_count=len(records),
25
+ time=summary.result_available_after,
26
+ ))
@@ -0,0 +1,9 @@
1
+ import asyncio
2
+ from .basic import search
3
+ from langtrace_python_sdk import with_langtrace_root_span
4
+
5
+
6
+ class Neo4jGraphRagRunner:
7
+ @with_langtrace_root_span("Neo4jGraphRagRunner")
8
+ def run(self):
9
+ asyncio.run(search())
@@ -0,0 +1,52 @@
1
+ import os
2
+ from langtrace_python_sdk import langtrace
3
+ from langtrace_python_sdk.utils.with_root_span import with_langtrace_root_span
4
+ from neo4j import GraphDatabase
5
+ from neo4j_graphrag.generation import GraphRAG
6
+ from neo4j_graphrag.indexes import create_vector_index
7
+ from neo4j_graphrag.llm import OpenAILLM as LLM
8
+ from neo4j_graphrag.embeddings import OpenAIEmbeddings as Embeddings
9
+ from neo4j_graphrag.retrievers import VectorRetriever
10
+ from neo4j_graphrag.experimental.pipeline.kg_builder import SimpleKGPipeline
11
+
12
+ langtrace.init()
13
+
14
+ neo4j_driver = GraphDatabase.driver(os.getenv("NEO4J_URI"), auth=(os.getenv("NEO4J_USERNAME"), os.getenv("NEO4J_PASSWORD")))
15
+
16
+ ex_llm=LLM(
17
+ model_name="gpt-4o-mini",
18
+ model_params={
19
+ "response_format": {"type": "json_object"},
20
+ "temperature": 0
21
+ })
22
+
23
+ embedder = Embeddings()
24
+
25
+ @with_langtrace_root_span("run_neo_rag")
26
+ async def search():
27
+ # 1. Build KG and Store in Neo4j Database
28
+ kg_builder_pdf = SimpleKGPipeline(
29
+ llm=ex_llm,
30
+ driver=neo4j_driver,
31
+ embedder=embedder,
32
+ from_pdf=True
33
+ )
34
+ await kg_builder_pdf.run_async(file_path='src/examples/neo4j_graphrag_example/data/abramov.pdf')
35
+
36
+ create_vector_index(neo4j_driver, name="text_embeddings", label="Chunk",
37
+ embedding_property="embedding", dimensions=1536, similarity_fn="cosine")
38
+
39
+ # 2. KG Retriever
40
+ vector_retriever = VectorRetriever(
41
+ neo4j_driver,
42
+ index_name="text_embeddings",
43
+ embedder=embedder
44
+ )
45
+
46
+ # 3. GraphRAG Class
47
+ llm = LLM(model_name="gpt-4o")
48
+ rag = GraphRAG(llm=llm, retriever=vector_retriever)
49
+
50
+ # 4. Run
51
+ response = rag.search("What did the author do in college?")
52
+ print(response.answer)
@@ -0,0 +1,36 @@
1
+ from langtrace.trace_attributes import Neo4jMethods
2
+
3
+ APIS = {
4
+ "RUN": {
5
+ "METHOD": Neo4jMethods.RUN.value,
6
+ "OPERATION": "run",
7
+ },
8
+ "BEGIN_TRANSACTION": {
9
+ "METHOD": Neo4jMethods.BEGIN_TRANSACTION.value,
10
+ "OPERATION": "begin_transaction",
11
+ },
12
+ "READ_TRANSACTION": {
13
+ "METHOD": Neo4jMethods.READ_TRANSACTION.value,
14
+ "OPERATION": "read_transaction",
15
+ },
16
+ "WRITE_TRANSACTION": {
17
+ "METHOD": Neo4jMethods.WRITE_TRANSACTION.value,
18
+ "OPERATION": "write_transaction",
19
+ },
20
+ "EXECUTE_READ": {
21
+ "METHOD": Neo4jMethods.EXECUTE_READ.value,
22
+ "OPERATION": "execute_read",
23
+ },
24
+ "EXECUTE_WRITE": {
25
+ "METHOD": Neo4jMethods.EXECUTE_WRITE.value,
26
+ "OPERATION": "execute_write",
27
+ },
28
+ "EXECUTE_QUERY": {
29
+ "METHOD": Neo4jMethods.EXECUTE_QUERY.value,
30
+ "OPERATION": "execute_query",
31
+ },
32
+ "TX_RUN": {
33
+ "METHOD": Neo4jMethods.TX_RUN.value,
34
+ "OPERATION": "tx_run",
35
+ },
36
+ }
@@ -22,6 +22,7 @@ from .litellm import LiteLLMInstrumentation
22
22
  from .llamaindex import LlamaindexInstrumentation
23
23
  from .milvus import MilvusInstrumentation
24
24
  from .mistral import MistralInstrumentation
25
+ from .neo4j import Neo4jInstrumentation
25
26
  from .neo4j_graphrag import Neo4jGraphRAGInstrumentation
26
27
  from .ollama import OllamaInstrumentor
27
28
  from .openai import OpenAIInstrumentation
@@ -0,0 +1,3 @@
1
+ from .instrumentation import Neo4jInstrumentation
2
+
3
+ __all__ = ["Neo4jInstrumentation"]
@@ -0,0 +1,51 @@
1
+ """
2
+ Copyright (c) 2025 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ import importlib.metadata
18
+ import logging
19
+ from typing import Collection
20
+
21
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
22
+ from opentelemetry.trace import get_tracer
23
+ from wrapt import wrap_function_wrapper
24
+
25
+ from langtrace_python_sdk.constants.instrumentation.neo4j import APIS
26
+ from langtrace_python_sdk.instrumentation.neo4j.patch import driver_patch
27
+
28
+ logging.basicConfig(level=logging.FATAL)
29
+
30
+
31
+ class Neo4jInstrumentation(BaseInstrumentor):
32
+ """
33
+ The Neo4jInstrumentation class represents the Neo4j graph database instrumentation
34
+ """
35
+
36
+ def instrumentation_dependencies(self) -> Collection[str]:
37
+ return ["neo4j >= 5.25.0"]
38
+
39
+ def _instrument(self, **kwargs):
40
+ tracer_provider = kwargs.get("tracer_provider")
41
+ tracer = get_tracer(__name__, "", tracer_provider)
42
+ version = importlib.metadata.version("neo4j")
43
+
44
+ wrap_function_wrapper(
45
+ "neo4j._sync.driver",
46
+ "Driver.execute_query",
47
+ driver_patch("EXECUTE_QUERY", version, tracer),
48
+ )
49
+
50
+ def _uninstrument(self, **kwargs):
51
+ pass
@@ -0,0 +1,180 @@
1
+ """
2
+ Copyright (c) 2025 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ import json
18
+
19
+ from langtrace_python_sdk.utils.llm import get_span_name
20
+ from langtrace_python_sdk.utils.silently_fail import silently_fail
21
+ from langtrace.trace_attributes import DatabaseSpanAttributes
22
+ from langtrace_python_sdk.utils import set_span_attribute
23
+ from opentelemetry import baggage, trace
24
+ from opentelemetry.trace import SpanKind
25
+ from opentelemetry.trace.status import Status, StatusCode
26
+ from opentelemetry.trace.propagation import set_span_in_context
27
+
28
+ from langtrace_python_sdk.constants.instrumentation.common import (
29
+ LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
30
+ SERVICE_PROVIDERS,
31
+ )
32
+ from langtrace_python_sdk.constants.instrumentation.neo4j import APIS
33
+ from importlib.metadata import version as v
34
+
35
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
36
+
37
+
38
+ def driver_patch(operation_name, version, tracer):
39
+ def traced_method(wrapped, instance, args, kwargs):
40
+
41
+ api = APIS[operation_name]
42
+ service_provider = SERVICE_PROVIDERS.get("NEO4J", "neo4j")
43
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
44
+ span_attributes = {
45
+ "langtrace.sdk.name": "langtrace-python-sdk",
46
+ "langtrace.service.name": service_provider,
47
+ "langtrace.service.type": "vectordb",
48
+ "langtrace.service.version": version,
49
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
50
+ "db.system": "neo4j",
51
+ "db.operation": api["OPERATION"],
52
+ "db.query": json.dumps(args[0]) if args and len(args) > 0 else "",
53
+ **(extra_attributes if extra_attributes is not None else {}),
54
+ }
55
+
56
+ attributes = DatabaseSpanAttributes(**span_attributes)
57
+
58
+ with tracer.start_as_current_span(
59
+ name=get_span_name(api["METHOD"]),
60
+ kind=SpanKind.CLIENT,
61
+ context=set_span_in_context(trace.get_current_span()),
62
+ ) as span:
63
+ for field, value in attributes.model_dump(by_alias=True).items():
64
+ if value is not None:
65
+ span.set_attribute(field, value)
66
+
67
+ if operation_name == "EXECUTE_QUERY":
68
+ _set_execute_query_attributes(span, args, kwargs)
69
+
70
+ try:
71
+ result = wrapped(*args, **kwargs)
72
+
73
+ if isinstance(result, tuple) and len(result) == 3:
74
+ records, result_summary, keys = result
75
+ _set_result_attributes(span, records, result_summary, keys)
76
+ else:
77
+ res = json.dumps(result)
78
+ set_span_attribute(span, "neo4j.result.query_response", res)
79
+
80
+ span.set_status(StatusCode.OK)
81
+ return result
82
+ except Exception as err:
83
+ span.record_exception(err)
84
+ span.set_status(Status(StatusCode.ERROR, str(err)))
85
+ raise
86
+
87
+ return traced_method
88
+
89
+
90
+ @silently_fail
91
+ def _set_execute_query_attributes(span, args, kwargs):
92
+ query = args[0] if args else kwargs.get("query_", None)
93
+ if query:
94
+ if hasattr(query, "text"):
95
+ set_span_attribute(span, "db.query", query.text)
96
+ if hasattr(query, "metadata") and query.metadata:
97
+ set_span_attribute(span, "db.query.metadata", json.dumps(query.metadata))
98
+ if hasattr(query, "timeout") and query.timeout:
99
+ set_span_attribute(span, "db.query.timeout", query.timeout)
100
+ else:
101
+ set_span_attribute(span, "db.query", query)
102
+
103
+ parameters = kwargs.get("parameters_", None)
104
+ if parameters:
105
+ try:
106
+ set_span_attribute(span, "db.statement.parameters", json.dumps(parameters))
107
+ except (TypeError, ValueError):
108
+ pass
109
+
110
+ database = kwargs.get("database_", None)
111
+ if database:
112
+ set_span_attribute(span, "neo4j.db.name", database)
113
+
114
+ routing = kwargs.get("routing_", None)
115
+ if routing:
116
+ set_span_attribute(span, "neo4j.db.routing", str(routing))
117
+
118
+
119
+ @silently_fail
120
+ def _set_result_attributes(span, records, result_summary, keys):
121
+ """
122
+ Set attributes related to the query result and summary
123
+ """
124
+ if records is not None:
125
+ record_count = len(records)
126
+ set_span_attribute(span, "neo4j.result.record_count", record_count)
127
+ if record_count > 0:
128
+ set_span_attribute(span, "neo4j.result.records", json.dumps(records))
129
+
130
+ if keys is not None:
131
+ set_span_attribute(span, "neo4j.result.keys", json.dumps(keys))
132
+
133
+ if result_summary:
134
+ if hasattr(result_summary, "database") and result_summary.database:
135
+ set_span_attribute(span, "neo4j.db.name", result_summary.database)
136
+
137
+ if hasattr(result_summary, "query_type") and result_summary.query_type:
138
+ set_span_attribute(span, "neo4j.result.query_type", result_summary.query_type)
139
+
140
+ if hasattr(result_summary, "parameters") and result_summary.parameters:
141
+ try:
142
+ set_span_attribute(span, "neo4j.result.parameters", json.dumps(result_summary.parameters))
143
+ except (TypeError, ValueError):
144
+ pass
145
+
146
+ if hasattr(result_summary, "result_available_after") and result_summary.result_available_after is not None:
147
+ set_span_attribute(span, "neo4j.result.available_after_ms", result_summary.result_available_after)
148
+
149
+ if hasattr(result_summary, "result_consumed_after") and result_summary.result_consumed_after is not None:
150
+ set_span_attribute(span, "neo4j.result.consumed_after_ms", result_summary.result_consumed_after)
151
+
152
+ if hasattr(result_summary, "counters") and result_summary.counters:
153
+ counters = result_summary.counters
154
+ if hasattr(counters, "nodes_created") and counters.nodes_created:
155
+ set_span_attribute(span, "neo4j.result.nodes_created", counters.nodes_created)
156
+
157
+ if hasattr(counters, "nodes_deleted") and counters.nodes_deleted:
158
+ set_span_attribute(span, "neo4j.result.nodes_deleted", counters.nodes_deleted)
159
+
160
+ if hasattr(counters, "relationships_created") and counters.relationships_created:
161
+ set_span_attribute(span, "neo4j.result.relationships_created", counters.relationships_created)
162
+
163
+ if hasattr(counters, "relationships_deleted") and counters.relationships_deleted:
164
+ set_span_attribute(span, "neo4j.result.relationships_deleted", counters.relationships_deleted)
165
+
166
+ if hasattr(counters, "properties_set") and counters.properties_set:
167
+ set_span_attribute(span, "neo4j.result.properties_set", counters.properties_set)
168
+
169
+ if hasattr(result_summary, "plan") and result_summary.plan:
170
+ try:
171
+ set_span_attribute(span, "neo4j.result.plan", json.dumps(result_summary.plan))
172
+ except (TypeError, ValueError):
173
+ pass
174
+
175
+ if hasattr(result_summary, "notifications") and result_summary.notifications:
176
+ try:
177
+ set_span_attribute(span, "neo4j.result.notification_count", len(result_summary.notifications))
178
+ set_span_attribute(span, "neo4j.result.notifications", json.dumps(result_summary.notifications))
179
+ except (AttributeError, TypeError):
180
+ pass
@@ -47,9 +47,9 @@ from langtrace_python_sdk.instrumentation import (
47
47
  CrewaiToolsInstrumentation, DspyInstrumentation, EmbedchainInstrumentation,
48
48
  GeminiInstrumentation, GoogleGenaiInstrumentation, GraphlitInstrumentation,
49
49
  GroqInstrumentation, LangchainCommunityInstrumentation,
50
- LangchainCoreInstrumentation, LangchainInstrumentation,
51
- LanggraphInstrumentation, LiteLLMInstrumentation, LlamaindexInstrumentation,
52
- MilvusInstrumentation, MistralInstrumentation, Neo4jGraphRAGInstrumentation,
50
+ LangchainCoreInstrumentation, LangchainInstrumentation, LanggraphInstrumentation,
51
+ LiteLLMInstrumentation, LlamaindexInstrumentation, MilvusInstrumentation,
52
+ MistralInstrumentation, Neo4jInstrumentation, Neo4jGraphRAGInstrumentation,
53
53
  OllamaInstrumentor, OpenAIAgentsInstrumentation, OpenAIInstrumentation,
54
54
  PhiDataInstrumentation, PineconeInstrumentation, PyMongoInstrumentation,
55
55
  QdrantInstrumentation, VertexAIInstrumentation, WeaviateInstrumentation)
@@ -284,6 +284,7 @@ def init(
284
284
  "phidata": PhiDataInstrumentation(),
285
285
  "agno": AgnoInstrumentation(),
286
286
  "mistralai": MistralInstrumentation(),
287
+ "neo4j": Neo4jInstrumentation(),
287
288
  "neo4j-graphrag": Neo4jGraphRAGInstrumentation(),
288
289
  "boto3": AWSBedrockInstrumentation(),
289
290
  "autogen": AutogenInstrumentation(),
@@ -1 +1 @@
1
- __version__ = "3.8.8"
1
+ __version__ = "3.8.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langtrace-python-sdk
3
- Version: 3.8.8
3
+ Version: 3.8.9
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -23,7 +23,7 @@ Requires-Dist: sentry-sdk>=2.14.0
23
23
  Requires-Dist: setuptools
24
24
  Requires-Dist: sqlalchemy
25
25
  Requires-Dist: tiktoken>=0.1.1
26
- Requires-Dist: trace-attributes==7.2.0
26
+ Requires-Dist: trace-attributes==7.2.1
27
27
  Requires-Dist: transformers>=4.11.3
28
28
  Requires-Dist: ujson>=5.10.0
29
29
  Provides-Extra: dev
@@ -83,6 +83,11 @@ examples/mistral_example/complete.py,sha256=Ydf5iOCGM2tySSd5vzGvNh3Qz39aTpxcCItB
83
83
  examples/mistral_example/complete_async.py,sha256=-SVOLNLNi5JL3o4obBsCXKOt8A6b61j3otbrrYPOOtM,586
84
84
  examples/mistral_example/embeddings.py,sha256=LKq_k3Y-TS2SCkyFKw2tLiYreVRHqlY6z0Gfh1y_7u0,468
85
85
  examples/mongo_vector_search_example/main.py,sha256=6bHOxR3LfAZwmGmv74jgNCciATS5h5e-Tb5z0cD0z3Q,1542
86
+ examples/neo4j_example/__init__.py,sha256=YG7-_cQnXt-fJQtH2bJu_uSNyVCmYyUevU4H-GML_Sk,200
87
+ examples/neo4j_example/basic.py,sha256=xw5fNi5y-U5wzrVIsnvbKBZDURUzoYriawu6nyEXi3o,780
88
+ examples/neo4j_graphrag_example/__init__.py,sha256=YCXutcM3otTKEff1S3qTciFBxOMrQw7mQ4WGfJ7-mU8,230
89
+ examples/neo4j_graphrag_example/basic.py,sha256=uYf4O8bT3GkU5Qa-tluEr9sYTm5gjdzHAKf-C8bi5GY,1727
90
+ examples/neo4j_graphrag_example/data/abramov.pdf,sha256=Fm93bGdz74PJel-Dw_wZeuqqedloTTZiOakIWLzYDPA,46933
86
91
  examples/ollama_example/__init__.py,sha256=qOx0jGCPuSpRCPiqtDVm7F0z8hIZ8C75hDZ_C8Apz-s,399
87
92
  examples/ollama_example/basic.py,sha256=EPbsigOF4xBDBgLgAD0EzPo737ycVm7aXZr7F5Xt-A4,1062
88
93
  examples/openai_example/__init__.py,sha256=6faH7wTegSozKmS89sd1Tgv8AcEH0GfKkC7YaBWA8tg,849
@@ -115,8 +120,8 @@ examples/vertexai_example/main.py,sha256=gndId5X5ksD-ycxnAWMdEqIDbLc3kz5Vt8vm4YP
115
120
  examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
116
121
  examples/weaviate_example/query_text.py,sha256=wPHQTc_58kPoKTZMygVjTj-2ZcdrIuaausJfMxNQnQc,127162
117
122
  langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
118
- langtrace_python_sdk/langtrace.py,sha256=4nhcy9_T3h4m5T5Blyrvs0BJcKzPWMtkIyEDSbba8P8,13879
119
- langtrace_python_sdk/version.py,sha256=3SjfTmtUQqjDdaQC3uiCoISksstrQ1Sqj4ASUtoUrzs,22
123
+ langtrace_python_sdk/langtrace.py,sha256=P7aHGunNP8YQqd2glsVLXhSe4QDeAarfG2eCV9hhAm4,13944
124
+ langtrace_python_sdk/version.py,sha256=KpxarCD6mNaS0PTJWWJOOJiShAjznuFT62LLRdWsuYI,22
120
125
  langtrace_python_sdk/constants/__init__.py,sha256=3CNYkWMdd1DrkGqzLUgNZXjdAlM6UFMlf_F-odAToyc,146
121
126
  langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=EVCrouYCpY98f0KSaKr4PzNxPULTZZO6dSA_crEOyJU,106
122
127
  langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -131,6 +136,7 @@ langtrace_python_sdk/constants/instrumentation/groq.py,sha256=VFXmIl4aqGY_fS0PAm
131
136
  langtrace_python_sdk/constants/instrumentation/litellm.py,sha256=bMAlpY2scFe6Lql0Nl7euGNSO9QEV5Uzne12hnw3mSE,449
132
137
  langtrace_python_sdk/constants/instrumentation/milvus.py,sha256=lnl7RtV2Wc66mEmtVMjV5eWalt-caH4-sQEHpN1LmEE,1029
133
138
  langtrace_python_sdk/constants/instrumentation/mistral.py,sha256=9PlmcC5P5_BHJ-zsX1xekht6rSm7arTin58HAfdYvLk,730
139
+ langtrace_python_sdk/constants/instrumentation/neo4j.py,sha256=-coUUCiroN2shr_C-HcWPYPmEcjIz1CQpaXtZo2uVFU,1002
134
140
  langtrace_python_sdk/constants/instrumentation/ollama.py,sha256=H_-S0xjqRsi5qSp7mAlK7Y9NlQ3BqOkG6ASogqqgdJY,212
135
141
  langtrace_python_sdk/constants/instrumentation/openai.py,sha256=uEOH5UXapU2DSf2AdgXTRhhJEHGWXUNFkUGD5QafflM,1164
136
142
  langtrace_python_sdk/constants/instrumentation/pinecone.py,sha256=0TityERbGWaHGSN8-vyYZtYCjVj8fQOKae8lng0O0Bk,478
@@ -141,7 +147,7 @@ langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=gtv-JBxvNGClEM
141
147
  langtrace_python_sdk/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
148
  langtrace_python_sdk/extensions/langtrace_exporter.py,sha256=ckd8dMmY6h2oxE04p1JFLwUB5PSJX_Cy4eDFEM6aj4Y,6605
143
149
  langtrace_python_sdk/extensions/langtrace_filesystem.py,sha256=34fZutG28EJ66l67OvTGsydAH3ZpXgikdE7hVLqBpG4,7863
144
- langtrace_python_sdk/instrumentation/__init__.py,sha256=lw53EsTTtOK-dMhImudipmbVhZqORylt4hO5A7Mv8Uo,2652
150
+ langtrace_python_sdk/instrumentation/__init__.py,sha256=sUVSZtidQev87AspZmWK4M8J51mBnJXXNDwfBsl_Dcs,2692
145
151
  langtrace_python_sdk/instrumentation/agno/__init__.py,sha256=95fn4oA-CHB0mxc6KnVB20KSbXGl_ZZr9n99EEaXzrY,91
146
152
  langtrace_python_sdk/instrumentation/agno/instrumentation.py,sha256=XUnfvqpp13IgdF03xGKasq7kGjeaN1sXLIwCf-Nt_Nc,2667
147
153
  langtrace_python_sdk/instrumentation/agno/patch.py,sha256=qCUxCkzU9cYu_d8BzLgj_Ss97qib07tRVYpYDiNnNMs,16876
@@ -218,6 +224,9 @@ langtrace_python_sdk/instrumentation/milvus/patch.py,sha256=0yY5aQz0x7hpQZ8U-0qf
218
224
  langtrace_python_sdk/instrumentation/mistral/__init__.py,sha256=mkGALBQvq0jSfwDl6TU09SFwnVs6O4zkUi-yVmd3SNg,90
219
225
  langtrace_python_sdk/instrumentation/mistral/instrumentation.py,sha256=qtCkHCSOaiicUChbmTID4lcK1rbeW8oRSbpda2ogbgM,2328
220
226
  langtrace_python_sdk/instrumentation/mistral/patch.py,sha256=5EzqMeIEcMUH8P-l9-ijpRNWSc6mYwe9Gz0VY4PLrS0,6559
227
+ langtrace_python_sdk/instrumentation/neo4j/__init__.py,sha256=6pG7SKOSKENaFEsstMJ4ZUH9wUP53JdQKdjHzJ4Lbko,86
228
+ langtrace_python_sdk/instrumentation/neo4j/instrumentation.py,sha256=KECuFv7OuVBgh_NTZl4_W18GAGbKnaeQqRZM8NPZgjU,1668
229
+ langtrace_python_sdk/instrumentation/neo4j/patch.py,sha256=wPAxslFdsHdYU5k1nHzWAqaHxQA-HhxgfVnb_U5qaZ0,7922
221
230
  langtrace_python_sdk/instrumentation/neo4j_graphrag/__init__.py,sha256=K-Qpfh-kn2EPxnYZ_oubLZNqAUO9Cx7mnMrJu_ms3UU,102
222
231
  langtrace_python_sdk/instrumentation/neo4j_graphrag/instrumentation.py,sha256=FLnddPSozuu5puqYD_FnXLMFet8YToVdWP-cY5QZrvM,2216
223
232
  langtrace_python_sdk/instrumentation/neo4j_graphrag/patch.py,sha256=4c7NKcTJeYsbi5V4aSsuPzTiFoBqtlcXmYx2bMlE7qg,9713
@@ -303,8 +312,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
303
312
  tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
304
313
  tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
305
314
  tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
306
- langtrace_python_sdk-3.8.8.dist-info/METADATA,sha256=deElB8UvrgQqY6ZaOFhY7bKQnvXEinTTrnNkgz4b04o,15844
307
- langtrace_python_sdk-3.8.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
308
- langtrace_python_sdk-3.8.8.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
309
- langtrace_python_sdk-3.8.8.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
310
- langtrace_python_sdk-3.8.8.dist-info/RECORD,,
315
+ langtrace_python_sdk-3.8.9.dist-info/METADATA,sha256=k-mlsrxBFSyNhSlXR2UkkEpPjIT8YzLHtCG3R82NeL8,15844
316
+ langtrace_python_sdk-3.8.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
317
+ langtrace_python_sdk-3.8.9.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
318
+ langtrace_python_sdk-3.8.9.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
319
+ langtrace_python_sdk-3.8.9.dist-info/RECORD,,