lmnr 0.4.26__tar.gz → 0.4.28__tar.gz
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.
- {lmnr-0.4.26 → lmnr-0.4.28}/PKG-INFO +26 -27
- lmnr-0.4.28/pyproject.toml +79 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/datasets.py +1 -1
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/laminar.py +14 -4
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tracing/attributes.py +1 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tracing/tracing.py +11 -6
- lmnr-0.4.26/pyproject.toml +0 -80
- {lmnr-0.4.26 → lmnr-0.4.28}/LICENSE +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/README.md +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/cli.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/decorators.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/evaluations.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/log.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/types.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/sdk/utils.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/.flake8 +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/.python-version +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/config/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/decorators/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/decorators/base.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/instruments.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_association_properties/test_langchain_and_external_association_properties.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_association_properties/test_langchain_association_properties.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_manual/test_manual_report.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_manual/test_resource_attributes.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_privacy_no_prompts/test_simple_workflow.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_prompt_management/test_prompt_management.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_sdk_initialization/test_resource_attributes.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_tasks/test_task_io_serialization_with_langchain.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_simple_aworkflow.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_simple_workflow.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_streaming_workflow.yaml +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/conftest.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_association_properties.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_manual.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_nested_tasks.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_privacy_no_prompts.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_sdk_initialization.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_tasks.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tests/test_workflows.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tracing/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tracing/content_allow_list.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/tracing/context_manager.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/utils/__init__.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/utils/in_memory_span_exporter.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/utils/json_encoder.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/utils/package_check.py +0 -0
- {lmnr-0.4.26 → lmnr-0.4.28}/src/lmnr/traceloop_sdk/version.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lmnr
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.28
|
4
4
|
Summary: Python SDK for Laminar AI
|
5
5
|
License: Apache-2.0
|
6
6
|
Author: lmnr.ai
|
@@ -16,40 +16,39 @@ Requires-Dist: argparse (>=1.0,<2.0)
|
|
16
16
|
Requires-Dist: backoff (>=2.0,<3.0)
|
17
17
|
Requires-Dist: deprecated (>=1.0,<2.0)
|
18
18
|
Requires-Dist: jinja2 (>=3.0,<4.0)
|
19
|
-
Requires-Dist: openai (>=1.52.0,<2.0.0)
|
20
19
|
Requires-Dist: opentelemetry-api (>=1.27.0,<2.0.0)
|
21
20
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (>=1.27.0,<2.0.0)
|
22
21
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.27.0,<2.0.0)
|
23
|
-
Requires-Dist: opentelemetry-instrumentation-alephalpha (>=0.33.
|
24
|
-
Requires-Dist: opentelemetry-instrumentation-anthropic (>=0.33.
|
25
|
-
Requires-Dist: opentelemetry-instrumentation-bedrock (>=0.33.
|
26
|
-
Requires-Dist: opentelemetry-instrumentation-chromadb (>=0.33.
|
27
|
-
Requires-Dist: opentelemetry-instrumentation-cohere (>=0.33.
|
28
|
-
Requires-Dist: opentelemetry-instrumentation-google-generativeai (>=0.33.
|
29
|
-
Requires-Dist: opentelemetry-instrumentation-groq (>=0.33.
|
30
|
-
Requires-Dist: opentelemetry-instrumentation-haystack (>=0.33.
|
31
|
-
Requires-Dist: opentelemetry-instrumentation-lancedb (>=0.33.
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-langchain (>=0.33.
|
33
|
-
Requires-Dist: opentelemetry-instrumentation-llamaindex (>=0.33.
|
34
|
-
Requires-Dist: opentelemetry-instrumentation-marqo (>=0.33.
|
35
|
-
Requires-Dist: opentelemetry-instrumentation-milvus (>=0.33.
|
36
|
-
Requires-Dist: opentelemetry-instrumentation-mistralai (>=0.33.
|
37
|
-
Requires-Dist: opentelemetry-instrumentation-ollama (>=0.33.
|
38
|
-
Requires-Dist: opentelemetry-instrumentation-openai (>=0.33.
|
39
|
-
Requires-Dist: opentelemetry-instrumentation-pinecone (>=0.33.
|
40
|
-
Requires-Dist: opentelemetry-instrumentation-qdrant (>=0.33.
|
41
|
-
Requires-Dist: opentelemetry-instrumentation-replicate (>=0.33.
|
22
|
+
Requires-Dist: opentelemetry-instrumentation-alephalpha (>=0.33.5)
|
23
|
+
Requires-Dist: opentelemetry-instrumentation-anthropic (>=0.33.5)
|
24
|
+
Requires-Dist: opentelemetry-instrumentation-bedrock (>=0.33.5)
|
25
|
+
Requires-Dist: opentelemetry-instrumentation-chromadb (>=0.33.5)
|
26
|
+
Requires-Dist: opentelemetry-instrumentation-cohere (>=0.33.5)
|
27
|
+
Requires-Dist: opentelemetry-instrumentation-google-generativeai (>=0.33.5)
|
28
|
+
Requires-Dist: opentelemetry-instrumentation-groq (>=0.33.5)
|
29
|
+
Requires-Dist: opentelemetry-instrumentation-haystack (>=0.33.5)
|
30
|
+
Requires-Dist: opentelemetry-instrumentation-lancedb (>=0.33.5)
|
31
|
+
Requires-Dist: opentelemetry-instrumentation-langchain (>=0.33.5)
|
32
|
+
Requires-Dist: opentelemetry-instrumentation-llamaindex (>=0.33.5)
|
33
|
+
Requires-Dist: opentelemetry-instrumentation-marqo (>=0.33.5)
|
34
|
+
Requires-Dist: opentelemetry-instrumentation-milvus (>=0.33.5)
|
35
|
+
Requires-Dist: opentelemetry-instrumentation-mistralai (>=0.33.5)
|
36
|
+
Requires-Dist: opentelemetry-instrumentation-ollama (>=0.33.5)
|
37
|
+
Requires-Dist: opentelemetry-instrumentation-openai (>=0.33.5)
|
38
|
+
Requires-Dist: opentelemetry-instrumentation-pinecone (>=0.33.5)
|
39
|
+
Requires-Dist: opentelemetry-instrumentation-qdrant (>=0.33.5)
|
40
|
+
Requires-Dist: opentelemetry-instrumentation-replicate (>=0.33.5)
|
42
41
|
Requires-Dist: opentelemetry-instrumentation-requests (>=0.48b0,<0.49)
|
43
42
|
Requires-Dist: opentelemetry-instrumentation-sqlalchemy (>=0.48b0,<0.49)
|
44
43
|
Requires-Dist: opentelemetry-instrumentation-threading (>=0.48b0,<0.49)
|
45
|
-
Requires-Dist: opentelemetry-instrumentation-together (>=0.33.
|
46
|
-
Requires-Dist: opentelemetry-instrumentation-transformers (>=0.33.
|
44
|
+
Requires-Dist: opentelemetry-instrumentation-together (>=0.33.5)
|
45
|
+
Requires-Dist: opentelemetry-instrumentation-transformers (>=0.33.5)
|
47
46
|
Requires-Dist: opentelemetry-instrumentation-urllib3 (>=0.48b0,<0.49)
|
48
|
-
Requires-Dist: opentelemetry-instrumentation-vertexai (>=0.33.
|
49
|
-
Requires-Dist: opentelemetry-instrumentation-watsonx (>=0.33.
|
50
|
-
Requires-Dist: opentelemetry-instrumentation-weaviate (>=0.33.
|
47
|
+
Requires-Dist: opentelemetry-instrumentation-vertexai (>=0.33.5)
|
48
|
+
Requires-Dist: opentelemetry-instrumentation-watsonx (>=0.33.5)
|
49
|
+
Requires-Dist: opentelemetry-instrumentation-weaviate (>=0.33.5)
|
51
50
|
Requires-Dist: opentelemetry-sdk (>=1.27.0,<2.0.0)
|
52
|
-
Requires-Dist: opentelemetry-semantic-conventions-ai (==0.4.
|
51
|
+
Requires-Dist: opentelemetry-semantic-conventions-ai (==0.4.2)
|
53
52
|
Requires-Dist: pydantic (>=2.7,<3.0)
|
54
53
|
Requires-Dist: python-dotenv (>=1.0,<2.0)
|
55
54
|
Requires-Dist: requests (>=2.0,<3.0)
|
@@ -0,0 +1,79 @@
|
|
1
|
+
[project]
|
2
|
+
name = "lmnr"
|
3
|
+
version = "0.4.28"
|
4
|
+
description = "Python SDK for Laminar AI"
|
5
|
+
authors = [
|
6
|
+
{ name = "lmnr.ai", email = "founders@lmnr.ai" }
|
7
|
+
]
|
8
|
+
readme = "README.md"
|
9
|
+
requires-python = "^3.9"
|
10
|
+
license = "Apache-2.0"
|
11
|
+
|
12
|
+
[tool.poetry]
|
13
|
+
name = "lmnr"
|
14
|
+
version = "0.4.28"
|
15
|
+
description = "Python SDK for Laminar AI"
|
16
|
+
authors = ["lmnr.ai"]
|
17
|
+
readme = "README.md"
|
18
|
+
license = "Apache-2.0"
|
19
|
+
|
20
|
+
[tool.poetry.dependencies]
|
21
|
+
python = ">=3.9,<4"
|
22
|
+
pydantic = "~=2.7"
|
23
|
+
requests = "~=2.0"
|
24
|
+
python-dotenv = "~=1.0"
|
25
|
+
backoff = "~=2.0"
|
26
|
+
opentelemetry-api = "^1.27.0"
|
27
|
+
opentelemetry-sdk = "^1.27.0"
|
28
|
+
opentelemetry-exporter-otlp-proto-http = "^1.27.0"
|
29
|
+
opentelemetry-exporter-otlp-proto-grpc = "^1.27.0"
|
30
|
+
opentelemetry-instrumentation-requests = "^0.48b0"
|
31
|
+
opentelemetry-instrumentation-sqlalchemy = "^0.48b0"
|
32
|
+
opentelemetry-instrumentation-urllib3 = "^0.48b0"
|
33
|
+
opentelemetry-instrumentation-threading = "^0.48b0"
|
34
|
+
opentelemetry-semantic-conventions-ai = "0.4.2"
|
35
|
+
tenacity = ">=8.0"
|
36
|
+
jinja2 = "~=3.0"
|
37
|
+
deprecated = "~=1.0"
|
38
|
+
opentelemetry-instrumentation-mistralai = ">=0.33.5"
|
39
|
+
opentelemetry-instrumentation-openai = ">=0.33.5"
|
40
|
+
opentelemetry-instrumentation-ollama = ">=0.33.5"
|
41
|
+
opentelemetry-instrumentation-anthropic = ">=0.33.5"
|
42
|
+
opentelemetry-instrumentation-cohere = ">=0.33.5"
|
43
|
+
opentelemetry-instrumentation-google-generativeai = ">=0.33.5"
|
44
|
+
opentelemetry-instrumentation-pinecone = ">=0.33.5"
|
45
|
+
opentelemetry-instrumentation-qdrant = ">=0.33.5"
|
46
|
+
opentelemetry-instrumentation-langchain = ">=0.33.5"
|
47
|
+
opentelemetry-instrumentation-lancedb = ">=0.33.5"
|
48
|
+
opentelemetry-instrumentation-chromadb = ">=0.33.5"
|
49
|
+
opentelemetry-instrumentation-transformers = ">=0.33.5"
|
50
|
+
opentelemetry-instrumentation-together = ">=0.33.5"
|
51
|
+
opentelemetry-instrumentation-llamaindex = ">=0.33.5"
|
52
|
+
opentelemetry-instrumentation-milvus = ">=0.33.5"
|
53
|
+
opentelemetry-instrumentation-haystack = ">=0.33.5"
|
54
|
+
opentelemetry-instrumentation-bedrock = ">=0.33.5"
|
55
|
+
opentelemetry-instrumentation-replicate = ">=0.33.5"
|
56
|
+
opentelemetry-instrumentation-vertexai = ">=0.33.5"
|
57
|
+
opentelemetry-instrumentation-watsonx = ">=0.33.5"
|
58
|
+
opentelemetry-instrumentation-weaviate = ">=0.33.5"
|
59
|
+
opentelemetry-instrumentation-alephalpha = ">=0.33.5"
|
60
|
+
opentelemetry-instrumentation-marqo = ">=0.33.5"
|
61
|
+
opentelemetry-instrumentation-groq = ">=0.33.5"
|
62
|
+
tqdm = "~=4.0"
|
63
|
+
argparse = "~=1.0"
|
64
|
+
|
65
|
+
[tool.poetry.group.dev.dependencies]
|
66
|
+
autopep8 = "^2.2.0"
|
67
|
+
flake8 = "7.0.0"
|
68
|
+
pytest = "^8.2.2"
|
69
|
+
pytest-sugar = "1.0.0"
|
70
|
+
|
71
|
+
[build-system]
|
72
|
+
requires = ["poetry-core"]
|
73
|
+
build-backend = "poetry.core.masonry.api"
|
74
|
+
|
75
|
+
[tool.poetry.scripts]
|
76
|
+
lmnr = "lmnr.cli:cli"
|
77
|
+
|
78
|
+
[project.optional-dependencies]
|
79
|
+
test = ["pytest"]
|
@@ -34,7 +34,7 @@ class LaminarDataset(EvaluationDataset):
|
|
34
34
|
self._fetched_items = []
|
35
35
|
self._offset = 0
|
36
36
|
self._fetch_size = fetch_size
|
37
|
-
self._logger = get_default_logger(self.__class__.__name__
|
37
|
+
self._logger = get_default_logger(self.__class__.__name__)
|
38
38
|
|
39
39
|
def _fetch_batch(self):
|
40
40
|
self._logger.debug(
|
@@ -61,6 +61,7 @@ class Laminar:
|
|
61
61
|
__project_api_key: Optional[str] = None
|
62
62
|
__env: dict[str, str] = {}
|
63
63
|
__initialized: bool = False
|
64
|
+
__http_session: Optional[requests.Session] = None
|
64
65
|
|
65
66
|
@classmethod
|
66
67
|
def initialize(
|
@@ -125,6 +126,7 @@ class Laminar:
|
|
125
126
|
cls.__env = env
|
126
127
|
cls.__initialized = True
|
127
128
|
cls._initialize_logger()
|
129
|
+
cls.__http_session = requests.Session()
|
128
130
|
Traceloop.init(
|
129
131
|
exporter=OTLPSpanExporter(
|
130
132
|
endpoint=cls.__base_grpc_url,
|
@@ -213,10 +215,18 @@ class Laminar:
|
|
213
215
|
except Exception as e:
|
214
216
|
raise ValueError(f"Invalid request: {e}")
|
215
217
|
|
216
|
-
response =
|
217
|
-
cls.
|
218
|
-
|
219
|
-
|
218
|
+
response = (
|
219
|
+
cls.__http_session.post(
|
220
|
+
cls.__base_http_url + "/v1/pipeline/run",
|
221
|
+
data=json.dumps(request.to_dict()),
|
222
|
+
headers=cls._headers(),
|
223
|
+
)
|
224
|
+
if cls.__http_session
|
225
|
+
else requests.post(
|
226
|
+
cls.__base_http_url + "/v1/pipeline/run",
|
227
|
+
data=json.dumps(request.to_dict()),
|
228
|
+
headers=cls._headers(),
|
229
|
+
)
|
220
230
|
)
|
221
231
|
if response.status_code != 200:
|
222
232
|
raise PipelineRunError(response)
|
@@ -5,6 +5,7 @@ SPAN_INPUT = "lmnr.span.input"
|
|
5
5
|
SPAN_OUTPUT = "lmnr.span.output"
|
6
6
|
SPAN_TYPE = "lmnr.span.type"
|
7
7
|
SPAN_PATH = "lmnr.span.path"
|
8
|
+
SPAN_INSTRUMENTATION_SOURCE = "lmnr.span.instrumentation_source"
|
8
9
|
|
9
10
|
ASSOCIATION_PROPERTIES = "lmnr.association.properties"
|
10
11
|
SESSION_ID = "session_id"
|
@@ -25,7 +25,11 @@ from opentelemetry.instrumentation.threading import ThreadingInstrumentor
|
|
25
25
|
|
26
26
|
# from lmnr.traceloop_sdk import Telemetry
|
27
27
|
from lmnr.traceloop_sdk.instruments import Instruments
|
28
|
-
from lmnr.traceloop_sdk.tracing.attributes import
|
28
|
+
from lmnr.traceloop_sdk.tracing.attributes import (
|
29
|
+
ASSOCIATION_PROPERTIES,
|
30
|
+
SPAN_INSTRUMENTATION_SOURCE,
|
31
|
+
SPAN_PATH,
|
32
|
+
)
|
29
33
|
from lmnr.traceloop_sdk.tracing.content_allow_list import ContentAllowList
|
30
34
|
from lmnr.traceloop_sdk.utils import is_notebook
|
31
35
|
from lmnr.traceloop_sdk.utils.package_check import is_package_installed
|
@@ -235,6 +239,8 @@ class TracerWrapper(object):
|
|
235
239
|
# the final part of the name to the span on the backend.
|
236
240
|
span.set_attribute(SPAN_PATH, span_path)
|
237
241
|
|
242
|
+
span.set_attribute(SPAN_INSTRUMENTATION_SOURCE, "python")
|
243
|
+
|
238
244
|
association_properties = get_value("association_properties")
|
239
245
|
if association_properties is not None:
|
240
246
|
_set_association_properties_attributes(span, association_properties)
|
@@ -266,10 +272,7 @@ class TracerWrapper(object):
|
|
266
272
|
if hasattr(cls, "instance"):
|
267
273
|
return True
|
268
274
|
|
269
|
-
|
270
|
-
return False
|
271
|
-
|
272
|
-
print("Warning: Laminar not initialized, make sure to initialize")
|
275
|
+
logging.warning("Warning: Laminar not initialized, make sure to initialize")
|
273
276
|
return False
|
274
277
|
|
275
278
|
def flush(self):
|
@@ -557,7 +560,9 @@ def init_langchain_instrumentor():
|
|
557
560
|
instrumentor.instrument()
|
558
561
|
return True
|
559
562
|
except Exception as e:
|
560
|
-
|
563
|
+
# FIXME: silence this error temporarily, it appears to not be critical
|
564
|
+
if str(e) != "No module named 'langchain_community'":
|
565
|
+
logging.error(f"Error initializing LangChain instrumentor: {e}")
|
561
566
|
# Telemetry().log_exception(e)
|
562
567
|
return False
|
563
568
|
|
lmnr-0.4.26/pyproject.toml
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
[project]
|
2
|
-
name = "lmnr"
|
3
|
-
version = "0.4.26"
|
4
|
-
description = "Python SDK for Laminar AI"
|
5
|
-
authors = [
|
6
|
-
{ name = "lmnr.ai", email = "founders@lmnr.ai" }
|
7
|
-
]
|
8
|
-
readme = "README.md"
|
9
|
-
requires-python = "^3.9"
|
10
|
-
license = "Apache-2.0"
|
11
|
-
|
12
|
-
[tool.poetry]
|
13
|
-
name = "lmnr"
|
14
|
-
version = "0.4.26"
|
15
|
-
description = "Python SDK for Laminar AI"
|
16
|
-
authors = ["lmnr.ai"]
|
17
|
-
readme = "README.md"
|
18
|
-
license = "Apache-2.0"
|
19
|
-
|
20
|
-
[tool.poetry.dependencies]
|
21
|
-
python = ">=3.9,<4"
|
22
|
-
pydantic = "~=2.7"
|
23
|
-
requests = "~=2.0"
|
24
|
-
python-dotenv = "~=1.0"
|
25
|
-
backoff = "~=2.0"
|
26
|
-
opentelemetry-api = "^1.27.0"
|
27
|
-
opentelemetry-sdk = "^1.27.0"
|
28
|
-
opentelemetry-exporter-otlp-proto-http = "^1.27.0"
|
29
|
-
opentelemetry-exporter-otlp-proto-grpc = "^1.27.0"
|
30
|
-
opentelemetry-instrumentation-requests = "^0.48b0"
|
31
|
-
opentelemetry-instrumentation-sqlalchemy = "^0.48b0"
|
32
|
-
opentelemetry-instrumentation-urllib3 = "^0.48b0"
|
33
|
-
opentelemetry-instrumentation-threading = "^0.48b0"
|
34
|
-
opentelemetry-semantic-conventions-ai = "0.4.1"
|
35
|
-
tenacity = ">=8.0"
|
36
|
-
jinja2 = "~=3.0"
|
37
|
-
deprecated = "~=1.0"
|
38
|
-
opentelemetry-instrumentation-mistralai = ">=0.33.1"
|
39
|
-
opentelemetry-instrumentation-openai = ">=0.33.1"
|
40
|
-
opentelemetry-instrumentation-ollama = ">=0.33.1"
|
41
|
-
opentelemetry-instrumentation-anthropic = ">=0.33.1"
|
42
|
-
opentelemetry-instrumentation-cohere = ">=0.33.1"
|
43
|
-
opentelemetry-instrumentation-google-generativeai = ">=0.33.1"
|
44
|
-
opentelemetry-instrumentation-pinecone = ">=0.33.1"
|
45
|
-
opentelemetry-instrumentation-qdrant = ">=0.33.1"
|
46
|
-
opentelemetry-instrumentation-langchain = ">=0.33.1"
|
47
|
-
opentelemetry-instrumentation-lancedb = ">=0.33.1"
|
48
|
-
opentelemetry-instrumentation-chromadb = ">=0.33.1"
|
49
|
-
opentelemetry-instrumentation-transformers = ">=0.33.1"
|
50
|
-
opentelemetry-instrumentation-together = ">=0.33.1"
|
51
|
-
opentelemetry-instrumentation-llamaindex = ">=0.33.1"
|
52
|
-
opentelemetry-instrumentation-milvus = ">=0.33.1"
|
53
|
-
opentelemetry-instrumentation-haystack = ">=0.33.1"
|
54
|
-
opentelemetry-instrumentation-bedrock = ">=0.33.1"
|
55
|
-
opentelemetry-instrumentation-replicate = ">=0.33.1"
|
56
|
-
opentelemetry-instrumentation-vertexai = ">=0.33.1"
|
57
|
-
opentelemetry-instrumentation-watsonx = ">=0.33.1"
|
58
|
-
opentelemetry-instrumentation-weaviate = ">=0.33.1"
|
59
|
-
opentelemetry-instrumentation-alephalpha = ">=0.33.1"
|
60
|
-
opentelemetry-instrumentation-marqo = ">=0.33.1"
|
61
|
-
opentelemetry-instrumentation-groq = ">=0.33.1"
|
62
|
-
tqdm = "~=4.0"
|
63
|
-
argparse = "~=1.0"
|
64
|
-
|
65
|
-
openai = "^1.52.0"
|
66
|
-
[tool.poetry.group.dev.dependencies]
|
67
|
-
autopep8 = "^2.2.0"
|
68
|
-
flake8 = "7.0.0"
|
69
|
-
pytest = "^8.2.2"
|
70
|
-
pytest-sugar = "1.0.0"
|
71
|
-
|
72
|
-
[build-system]
|
73
|
-
requires = ["poetry-core"]
|
74
|
-
build-backend = "poetry.core.masonry.api"
|
75
|
-
|
76
|
-
[tool.poetry.scripts]
|
77
|
-
lmnr = "lmnr.cli:cli"
|
78
|
-
|
79
|
-
[project.optional-dependencies]
|
80
|
-
test = ["pytest"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|