lmnr 0.4.14__tar.gz → 0.4.15__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.
Files changed (50) hide show
  1. {lmnr-0.4.14 → lmnr-0.4.15}/PKG-INFO +2 -3
  2. {lmnr-0.4.14 → lmnr-0.4.15}/pyproject.toml +3 -4
  3. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/decorators.py +9 -8
  4. {lmnr-0.4.14 → lmnr-0.4.15}/LICENSE +0 -0
  5. {lmnr-0.4.14 → lmnr-0.4.15}/README.md +0 -0
  6. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/__init__.py +0 -0
  7. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/cli.py +0 -0
  8. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/__init__.py +0 -0
  9. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/evaluations.py +0 -0
  10. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/laminar.py +0 -0
  11. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/log.py +0 -0
  12. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/types.py +0 -0
  13. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/sdk/utils.py +0 -0
  14. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/.flake8 +0 -0
  15. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/.python-version +0 -0
  16. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/__init__.py +0 -0
  17. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/config/__init__.py +0 -0
  18. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/decorators/__init__.py +0 -0
  19. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/decorators/base.py +0 -0
  20. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/instruments.py +0 -0
  21. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/__init__.py +0 -0
  22. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_association_properties/test_langchain_and_external_association_properties.yaml +0 -0
  23. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_association_properties/test_langchain_association_properties.yaml +0 -0
  24. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_manual/test_manual_report.yaml +0 -0
  25. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_manual/test_resource_attributes.yaml +0 -0
  26. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_privacy_no_prompts/test_simple_workflow.yaml +0 -0
  27. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_prompt_management/test_prompt_management.yaml +0 -0
  28. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_sdk_initialization/test_resource_attributes.yaml +0 -0
  29. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_tasks/test_task_io_serialization_with_langchain.yaml +0 -0
  30. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_simple_aworkflow.yaml +0 -0
  31. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_simple_workflow.yaml +0 -0
  32. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_streaming_workflow.yaml +0 -0
  33. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/conftest.py +0 -0
  34. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_association_properties.py +0 -0
  35. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_manual.py +0 -0
  36. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_nested_tasks.py +0 -0
  37. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_privacy_no_prompts.py +0 -0
  38. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_sdk_initialization.py +0 -0
  39. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_tasks.py +0 -0
  40. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tests/test_workflows.py +0 -0
  41. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tracing/__init__.py +0 -0
  42. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tracing/attributes.py +0 -0
  43. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tracing/content_allow_list.py +0 -0
  44. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tracing/context_manager.py +0 -0
  45. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/tracing/tracing.py +0 -0
  46. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/utils/__init__.py +0 -0
  47. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/utils/in_memory_span_exporter.py +0 -0
  48. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/utils/json_encoder.py +0 -0
  49. {lmnr-0.4.14 → lmnr-0.4.15}/src/lmnr/traceloop_sdk/utils/package_check.py +0 -0
  50. {lmnr-0.4.14 → lmnr-0.4.15}/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.14
3
+ Version: 0.4.15
4
4
  Summary: Python SDK for Laminar AI
5
5
  License: Apache-2.0
6
6
  Author: lmnr.ai
@@ -49,11 +49,10 @@ Requires-Dist: opentelemetry-instrumentation-watsonx (>=0.30.0,<0.31.0)
49
49
  Requires-Dist: opentelemetry-instrumentation-weaviate (>=0.30.0,<0.31.0)
50
50
  Requires-Dist: opentelemetry-sdk (>=1.27.0,<2.0.0)
51
51
  Requires-Dist: opentelemetry-semantic-conventions-ai (==0.4.1)
52
- Requires-Dist: posthog (>=3.0,<4.0)
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)
56
- Requires-Dist: tenacity (>=8.0,<9.0)
55
+ Requires-Dist: tenacity (>=8.0)
57
56
  Requires-Dist: tqdm (>=4.0,<5.0)
58
57
  Description-Content-Type: text/markdown
59
58
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lmnr"
3
- version = "0.4.14"
3
+ version = "0.4.15"
4
4
  description = "Python SDK for Laminar AI"
5
5
  authors = [
6
6
  { name = "lmnr.ai", email = "founders@lmnr.ai" }
@@ -11,7 +11,7 @@ license = "Apache-2.0"
11
11
 
12
12
  [tool.poetry]
13
13
  name = "lmnr"
14
- version = "0.4.14"
14
+ version = "0.4.15"
15
15
  description = "Python SDK for Laminar AI"
16
16
  authors = ["lmnr.ai"]
17
17
  readme = "README.md"
@@ -33,10 +33,9 @@ opentelemetry-instrumentation-sqlalchemy = "^0.48b0"
33
33
  opentelemetry-instrumentation-urllib3 = "^0.48b0"
34
34
  opentelemetry-instrumentation-threading = "^0.48b0"
35
35
  opentelemetry-semantic-conventions-ai = "0.4.1"
36
- tenacity = "~=8.0"
36
+ tenacity = ">=8.0"
37
37
  jinja2 = "~=3.0"
38
38
  deprecated = "~=1.0"
39
- posthog = "~=3.0"
40
39
  opentelemetry-instrumentation-mistralai = "^0.30.0"
41
40
  opentelemetry-instrumentation-openai = "^0.30.0"
42
41
  opentelemetry-instrumentation-ollama = "^0.30.0"
@@ -4,7 +4,8 @@ from lmnr.traceloop_sdk.decorators.base import (
4
4
  )
5
5
  from opentelemetry.trace import INVALID_SPAN, get_current_span
6
6
 
7
- from typing import Callable, Optional, cast
7
+ from typing import Callable, Optional, TypeVar, cast
8
+ from typing_extensions import ParamSpec
8
9
 
9
10
  from lmnr.traceloop_sdk.tracing.attributes import SESSION_ID, USER_ID
10
11
  from lmnr.traceloop_sdk.tracing.tracing import update_association_properties
@@ -12,12 +13,16 @@ from lmnr.traceloop_sdk.tracing.tracing import update_association_properties
12
13
  from .utils import is_async
13
14
 
14
15
 
16
+ P = ParamSpec("P")
17
+ R = TypeVar("R")
18
+
19
+
15
20
  def observe(
16
21
  *,
17
22
  name: Optional[str] = None,
18
23
  user_id: Optional[str] = None,
19
24
  session_id: Optional[str] = None,
20
- ) -> Callable[[Callable], Callable]:
25
+ ) -> Callable[[Callable[P, R]], Callable[P, R]]:
21
26
  """The main decorator entrypoint for Laminar. This is used to wrap
22
27
  functions and methods to create spans.
23
28
 
@@ -43,13 +48,9 @@ def observe(
43
48
  current_span = get_current_span()
44
49
  if current_span != INVALID_SPAN:
45
50
  if session_id is not None:
46
- current_span.set_attribute(
47
- SESSION_ID, session_id
48
- )
51
+ current_span.set_attribute(SESSION_ID, session_id)
49
52
  if user_id is not None:
50
- current_span.set_attribute(
51
- USER_ID, user_id
52
- )
53
+ current_span.set_attribute(USER_ID, user_id)
53
54
  association_properties = {}
54
55
  if session_id is not None:
55
56
  association_properties["session_id"] = session_id
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