lmnr 0.6.20__py3-none-any.whl → 0.7.0__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.
Files changed (46) hide show
  1. lmnr/__init__.py +0 -4
  2. lmnr/opentelemetry_lib/decorators/__init__.py +211 -151
  3. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py +678 -0
  4. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py +13 -0
  5. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_emitter.py +211 -0
  6. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_models.py +41 -0
  7. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py +256 -0
  8. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py +295 -0
  9. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py +179 -0
  10. lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py +1 -0
  11. lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py +4 -0
  12. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/__init__.py +488 -0
  13. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/config.py +8 -0
  14. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_emitter.py +143 -0
  15. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_models.py +41 -0
  16. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/span_utils.py +229 -0
  17. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/utils.py +92 -0
  18. lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py +1 -0
  19. lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py +16 -16
  20. lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py +3 -0
  21. lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py +3 -0
  22. lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py +3 -3
  23. lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +3 -0
  24. lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py +7 -0
  25. lmnr/opentelemetry_lib/opentelemetry/instrumentation/threading/__init__.py +190 -0
  26. lmnr/opentelemetry_lib/tracing/__init__.py +90 -2
  27. lmnr/opentelemetry_lib/tracing/_instrument_initializers.py +12 -7
  28. lmnr/opentelemetry_lib/tracing/context.py +109 -0
  29. lmnr/opentelemetry_lib/tracing/processor.py +6 -7
  30. lmnr/opentelemetry_lib/tracing/tracer.py +29 -0
  31. lmnr/opentelemetry_lib/utils/package_check.py +9 -0
  32. lmnr/sdk/browser/browser_use_otel.py +9 -7
  33. lmnr/sdk/browser/patchright_otel.py +14 -26
  34. lmnr/sdk/browser/playwright_otel.py +72 -73
  35. lmnr/sdk/browser/pw_utils.py +436 -119
  36. lmnr/sdk/client/asynchronous/resources/browser_events.py +1 -0
  37. lmnr/sdk/decorators.py +39 -4
  38. lmnr/sdk/evaluations.py +23 -9
  39. lmnr/sdk/laminar.py +181 -209
  40. lmnr/sdk/types.py +0 -6
  41. lmnr/version.py +1 -1
  42. {lmnr-0.6.20.dist-info → lmnr-0.7.0.dist-info}/METADATA +10 -8
  43. {lmnr-0.6.20.dist-info → lmnr-0.7.0.dist-info}/RECORD +45 -29
  44. {lmnr-0.6.20.dist-info → lmnr-0.7.0.dist-info}/WHEEL +1 -1
  45. lmnr/opentelemetry_lib/tracing/context_properties.py +0 -65
  46. {lmnr-0.6.20.dist-info → lmnr-0.7.0.dist-info}/entry_points.txt +0 -0
@@ -1,32 +1,38 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lmnr
3
- Version: 0.6.20
3
+ Version: 0.7.0
4
4
  Summary: Python SDK for Laminar
5
5
  Author: lmnr.ai
6
6
  Author-email: lmnr.ai <founders@lmnr.ai>
7
7
  License-Expression: Apache-2.0
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
8
14
  Requires-Dist: pydantic>=2.0.3,<3.0.0
9
15
  Requires-Dist: python-dotenv>=1.0
10
16
  Requires-Dist: opentelemetry-api>=1.33.0
11
17
  Requires-Dist: opentelemetry-sdk>=1.33.0
12
18
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.33.0
13
19
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.33.0
20
+ Requires-Dist: opentelemetry-instrumentation>=0.54b0
14
21
  Requires-Dist: opentelemetry-semantic-conventions>=0.54b0
15
22
  Requires-Dist: opentelemetry-semantic-conventions-ai>=0.4.9
16
23
  Requires-Dist: tqdm>=4.0
17
24
  Requires-Dist: tenacity>=8.0
18
25
  Requires-Dist: grpcio>=1
19
26
  Requires-Dist: httpx>=0.25.0
20
- Requires-Dist: opentelemetry-instrumentation-threading>=0.54b0
27
+ Requires-Dist: orjson>=3.10.18
28
+ Requires-Dist: packaging>=22.0
21
29
  Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.40.12 ; extra == 'alephalpha'
22
30
  Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.40.12 ; extra == 'all'
23
- Requires-Dist: opentelemetry-instrumentation-anthropic>=0.40.12 ; extra == 'all'
24
31
  Requires-Dist: opentelemetry-instrumentation-bedrock>=0.40.12 ; extra == 'all'
25
32
  Requires-Dist: opentelemetry-instrumentation-chromadb>=0.40.12 ; extra == 'all'
26
33
  Requires-Dist: opentelemetry-instrumentation-cohere>=0.40.12 ; extra == 'all'
27
34
  Requires-Dist: opentelemetry-instrumentation-crewai>=0.40.12 ; extra == 'all'
28
35
  Requires-Dist: opentelemetry-instrumentation-google-generativeai<0.40.10 ; extra == 'all'
29
- Requires-Dist: opentelemetry-instrumentation-groq>=0.40.12 ; extra == 'all'
30
36
  Requires-Dist: opentelemetry-instrumentation-haystack>=0.40.12 ; extra == 'all'
31
37
  Requires-Dist: opentelemetry-instrumentation-lancedb>=0.40.12 ; extra == 'all'
32
38
  Requires-Dist: opentelemetry-instrumentation-langchain>=0.40.12 ; extra == 'all'
@@ -45,13 +51,11 @@ Requires-Dist: opentelemetry-instrumentation-transformers>=0.40.12 ; extra == 'a
45
51
  Requires-Dist: opentelemetry-instrumentation-vertexai>=0.40.12 ; extra == 'all'
46
52
  Requires-Dist: opentelemetry-instrumentation-watsonx>=0.40.12 ; extra == 'all'
47
53
  Requires-Dist: opentelemetry-instrumentation-weaviate>=0.40.12 ; extra == 'all'
48
- Requires-Dist: opentelemetry-instrumentation-anthropic>=0.40.12 ; extra == 'anthropic'
49
54
  Requires-Dist: opentelemetry-instrumentation-bedrock>=0.40.12 ; extra == 'bedrock'
50
55
  Requires-Dist: opentelemetry-instrumentation-chromadb>=0.40.12 ; extra == 'chromadb'
51
56
  Requires-Dist: opentelemetry-instrumentation-cohere>=0.40.12 ; extra == 'cohere'
52
57
  Requires-Dist: opentelemetry-instrumentation-crewai>=0.40.12 ; extra == 'crewai'
53
58
  Requires-Dist: opentelemetry-instrumentation-google-generativeai<0.40.10 ; extra == 'google-generativeai'
54
- Requires-Dist: opentelemetry-instrumentation-groq>=0.40.12 ; extra == 'groq'
55
59
  Requires-Dist: opentelemetry-instrumentation-haystack>=0.40.12 ; extra == 'haystack'
56
60
  Requires-Dist: opentelemetry-instrumentation-lancedb>=0.40.12 ; extra == 'lancedb'
57
61
  Requires-Dist: opentelemetry-instrumentation-langchain>=0.40.12 ; extra == 'langchain'
@@ -73,13 +77,11 @@ Requires-Dist: opentelemetry-instrumentation-weaviate>=0.40.12 ; extra == 'weavi
73
77
  Requires-Python: >=3.10, <4
74
78
  Provides-Extra: alephalpha
75
79
  Provides-Extra: all
76
- Provides-Extra: anthropic
77
80
  Provides-Extra: bedrock
78
81
  Provides-Extra: chromadb
79
82
  Provides-Extra: cohere
80
83
  Provides-Extra: crewai
81
84
  Provides-Extra: google-generativeai
82
- Provides-Extra: groq
83
85
  Provides-Extra: haystack
84
86
  Provides-Extra: lancedb
85
87
  Provides-Extra: langchain
@@ -1,59 +1,75 @@
1
- lmnr/__init__.py,sha256=81183c3dbfb45d5cc2f979a22e51c8f41af9c80257c13eacacf1715c839a675a,1373
1
+ lmnr/__init__.py,sha256=47422a1fd58f5be3e7870ccb3ed7de4f1ac520d942e0c83cbcf903b0600a08f6,1278
2
2
  lmnr/cli.py,sha256=b8780b51f37fe9e20db5495c41d3ad3837f6b48f408b09a58688d017850c0796,6047
3
3
  lmnr/opentelemetry_lib/.flake8,sha256=6c2c6e0e51b1dd8439e501ca3e21899277076a787da868d0254ba37056b79405,150
4
4
  lmnr/opentelemetry_lib/__init__.py,sha256=6962aca915d485586ed814b9e799ced898594ac2bc6d35329405705b26eab861,2160
5
- lmnr/opentelemetry_lib/decorators/__init__.py,sha256=e391d5a189c70b563d0ff552922a036ea0f7826e113c2e6c2a8ceda26048e63f,8496
5
+ lmnr/opentelemetry_lib/decorators/__init__.py,sha256=7bd673692d15591ca1fbf48e16ab63e6e4d6a61d5123b41ad680687145b8efb6,9533
6
6
  lmnr/opentelemetry_lib/litellm/__init__.py,sha256=c23a38e88b7919d866c4f09a880f2468ac9acf756cb910d1614082b2dbcad3e6,14858
7
7
  lmnr/opentelemetry_lib/litellm/utils.py,sha256=da8cf0553f82dc7203109f117a4c7b4185e8baf34caad12d7823875515201a27,539
8
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=8eb4abc2a96aa09ab9104d74ae508ea9ea6a6cbf60f8cd333b4c15c425db48e8,20166
8
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py,sha256=984b8f97eb31d4345ea4c52237451f791af189c4a94aaf2625edfd05107d8a6e,20696
9
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py,sha256=972919b821b9b7e5dc7cd191ba7e78b30b6efa5d63514e8cb301996d6386392c,369
10
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_emitter.py,sha256=812b3ea1c5a04412113d4dd770717561861595f9eec5b94dd8174c6ddfb7572a,6831
11
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
12
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py,sha256=9d0bb3825a6b5c28ac3778d49b7e67dc829530b2ebe34ef3f0e273f51caebcea,9422
13
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py,sha256=e999ad093275c5195b5d31dfea456726afd5f474cd779be7af892f54d7b416b8,10129
14
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py,sha256=0044f02da8b99322fdbf3f8f6663f04ff5d1295ddae92a635fd16eb685d5fbb6,5386
15
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py,sha256=5aacde4ca55ef50ed07a239ad8a86889e0621b1cc72be19bd93be7c9e20910a9,23
16
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=7d2cfb6007cbed2c9809f07911d42e07cc2a520ddafb384bd7a750a75b6fd92a,20316
9
17
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py,sha256=db9cdebc9ee0dccb493ffe608eede3047efec20ed26c3924b72b2e50edbd92c2,245
10
18
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/schema_utils.py,sha256=857a6bc52f8bfd4da72786173615d31faaf3f9378f8f6150ffe8f6f9c4bb78f9,685
11
19
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py,sha256=f1248196246826d899304e510c4c2df74088d8169d28f1d0aed578a7a6c3cbfd,7669
12
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py,sha256=272bfd92865d180e3ea13681ec04c1ec3697eda34e63edd83862f8c17d1cecf3,3107
20
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/__init__.py,sha256=1e98467711405e4ff8ccd0b53c002e7a676c581616ef015e8b6606bd7057478b,14986
21
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/config.py,sha256=29d557d9dee56354e89634bdc3f4795f346ee67bbfec56184b4fb394e45a7e03,203
22
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_emitter.py,sha256=1f07d78bf360832951c708fcb3737718e50d39ce05beb8adbf57e818b4873703,4481
23
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
24
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/span_utils.py,sha256=7a1cd03539ff2c9e5114a26483dc50066cd5f1b7283e584431dd036949e1f31b,7461
25
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/utils.py,sha256=139f085a337ae321f68822bbbd2400bfc008c4d6a706ab319e522bef6b91e552,2360
26
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py,sha256=5aacde4ca55ef50ed07a239ad8a86889e0621b1cc72be19bd93be7c9e20910a9,23
27
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py,sha256=b77a70771741b95006cb27d7f9fc26e4b79b1f10ca24b93a3160a458c3397a9d,3313
13
28
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/utils.py,sha256=9dff6c2595e79edb38818668aed1220efc188d8a982594c04f4ceeb6e3ff47a6,1512
14
29
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/__init__.py,sha256=8b91dc16af927eee75b969c0980c606680b347a87f8533bc0f4a092e5ec6e5c9,2071
15
30
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py,sha256=dcc910aa6df02263cad89c1feac2aa21e316fdd6b491ebca2b93fd24a5149625,14911
16
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=15a1236b0b383089f4ddf8bef50ccab48e57d01fa403b1f6008922980d931f46,33422
17
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=cb72111e7a5a7a13920b79b6f76bb504e54ece81855dc997978fdbdd11d36f85,9180
31
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=59438bac0abb79bc7e5868a8bf5b975ff4e956fa31bf0569e0839b876188ef4a,33571
32
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=1ac4a2f05e9c548b19fa66b71208bb40b5585876d3ce4835ae8998fb94ad472a,9329
18
33
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/config.py,sha256=8016e4af0291a77484ce88d7d1ca06146b1229ae0e0a0f46e042faf75b456a8f,507
19
34
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py,sha256=345c4c795019418b9c7cbf4e571689b566f2b0e350579b48fd2f5f2535351586,9076
20
35
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_emitter.py,sha256=9c96455b5ca2064dd3a9fb570d78b14ebbdf3d02f8e33255ee9e301c31336c9e,3043
21
36
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
22
37
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py,sha256=9650a0e4ad2d3bfb2a072590da189bcf4f807aca070945af26a9f9b99d779b77,2021
23
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py,sha256=88796cca1f8ee07c5face21e1fbe66f572191cecc2c93c62c22f84ee5a47e299,4727
38
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py,sha256=541e94d60c94b8a8035ee74cda00ca3576a3f50a215df03d948de58665dbc25b,4649
24
39
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v0/__init__.py,sha256=7f43421e052bd8f64d5d5b03170a3b7187c2ce038362fa15b5d1d0c43bc1a40d,6143
25
40
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/__init__.py,sha256=662afd935c52b42512280614bf502554389c8854ab1256efbfde03fe364dac64,12932
26
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=8f36cb3eeeead7abdfa43bca3fdf73fdf2fba562bb1a746225696a2b2dde4f50,10111
41
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=0284307113b148b1d59d5b9bd922cbf89679e8a466800f8022e0973b4e92fccf,10260
27
42
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=18d106e77f26ebb233bf3379edf3116540891d643be72be73ea47be3724a89b8,4211
28
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=84842236814038421c7d2fa5bd15361a8c0ad625a81b1cd963a351399fec9efb,23733
43
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=059b28106e2f473dd361e3cf85ef2db54f2aaaa8092286a03d589d4d337d8bc9,24062
29
44
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/version.py,sha256=4f39aaa913f3e49b0c174bc23028687d00bfaffc745bd3fe241e0ae6b442bed1,24
30
45
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/opentelemetry/__init__.py,sha256=1f86cdf738e2f68586b0a4569bb1e40edddd85c529f511ef49945ddb7b61fab5,2648
31
46
  lmnr/opentelemetry_lib/opentelemetry/instrumentation/skyvern/__init__.py,sha256=764e4fe979fb08d7821419a3cc5c3ae89a6664b626ef928259f8f175c939eaea,6334
32
- lmnr/opentelemetry_lib/tracing/__init__.py,sha256=dbb4288007be687cab56be9be7af8376e526d0a104db82b5695d9ed67a2e4cd8,6007
33
- lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=53444be1c6c1f9c5acc3291a4984222519d3237abf9ed1c9296b438776e7ec36,15110
47
+ lmnr/opentelemetry_lib/opentelemetry/instrumentation/threading/__init__.py,sha256=90aa8558467d7e469fe1a6c75372c113da403557715f03b522b2fab94b287c40,6320
48
+ lmnr/opentelemetry_lib/tracing/__init__.py,sha256=a39e9a48f8a842ce7f7ec53364d793c1a303dcfd485aee7a72ade07d1b3635a2,9662
49
+ lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=a15a46a0515462319195a96f7cdb695e72a1559c3212964f5883ab824031bf70,15125
34
50
  lmnr/opentelemetry_lib/tracing/attributes.py,sha256=32fa30565b977c2a92202dc2bf1ded583a81d02a6bf5ba52958f75a8be08cbbe,1497
35
- lmnr/opentelemetry_lib/tracing/context_properties.py,sha256=6966ef31d581e10eeea9cd06192b237115cc4dc3b5f1a58e68865edd0c92fda0,2314
51
+ lmnr/opentelemetry_lib/tracing/context.py,sha256=33d133a396af8585e51597ed58b28e8efe4ae688b71b85b4dbff920465ec84f6,3428
36
52
  lmnr/opentelemetry_lib/tracing/exporter.py,sha256=6af8e61fd873e8f5db315d9b9f1edbf46b860ba7e50140f0bdcc6864c6d35a03,2082
37
53
  lmnr/opentelemetry_lib/tracing/instruments.py,sha256=e3c12315bda301416d1f3bc8d354ad16d4da211e2ecfa019265f4b565307c118,5655
38
- lmnr/opentelemetry_lib/tracing/processor.py,sha256=609ff68f4da853f6190fc72e0e5b5790253f7cdd61700088eb55f9aa009977bb,3441
39
- lmnr/opentelemetry_lib/tracing/tracer.py,sha256=a0d0ba57c785bee2b78b92165ec2838c43052ff6b1792a2fdcbd5f3debf0b963,476
54
+ lmnr/opentelemetry_lib/tracing/processor.py,sha256=fd11e4d48eb5932f47898b8f70b8b5880f7ee7e58478f1ef20caff20e1f34252,3381
55
+ lmnr/opentelemetry_lib/tracing/tracer.py,sha256=33769a9a97385f5697eb0e0a6b1813a57ed956c7a8379d7ac2523e700e7dd528,1362
40
56
  lmnr/opentelemetry_lib/utils/__init__.py,sha256=a4d85fd06def4dde5c728734de2d4c5c36eb89c49a8aa09b8b50cb5a149e90af,604
41
57
  lmnr/opentelemetry_lib/utils/json_encoder.py,sha256=74ae9bfdac6bef42182fb56ff9bbb8c27b6f0c3bb29eda2ab0769d76a5fb3f9f,463
42
- lmnr/opentelemetry_lib/utils/package_check.py,sha256=493d81bc3c6dd1b6b1fa287d17d59fd2394a004ae6ced6f12a639c15fef5deb2,265
58
+ lmnr/opentelemetry_lib/utils/package_check.py,sha256=f8274186c96815c996a25fae06bf913f0bb7c835507739949f37c03bbe5d9ca9,527
43
59
  lmnr/py.typed,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
44
60
  lmnr/sdk/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
45
61
  lmnr/sdk/browser/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
46
- lmnr/sdk/browser/browser_use_otel.py,sha256=aa7470285eb09648f9bf2f3f8fb4409b0ca68ab1cc545d37914a9ac04cc0048e,5092
47
- lmnr/sdk/browser/patchright_otel.py,sha256=e72b5c42ffa2fd4107aa630b6d1253f18fbda4cef84396538a3e0ccefaa03e47,5079
48
- lmnr/sdk/browser/playwright_otel.py,sha256=59f477e921e777d49ccda4ef1017a50bb5584fd901cf7d9ed7889468f0586a16,9470
49
- lmnr/sdk/browser/pw_utils.py,sha256=81bb14ffc53c47a72961e8d1e231efc473f9b2cb7e2992e97751e8dad0e69184,11009
62
+ lmnr/sdk/browser/browser_use_otel.py,sha256=37d26de1af37f76774af176cb226e0b04988fc3bf419a2fd899ad36e79562fad,5104
63
+ lmnr/sdk/browser/patchright_otel.py,sha256=9d22ab1f28f1eddbcfd0032a14fe306bfe00bfc7f11128cb99836c4dd15fb7c8,4800
64
+ lmnr/sdk/browser/playwright_otel.py,sha256=50c0a5a75155a3a7ff5db84790ffb409c9cbd0351eef212d83d923893730223b,9459
65
+ lmnr/sdk/browser/pw_utils.py,sha256=63364e31b31734a1a941847289ba5f00902c13181ce1ef624c73c25dcbc26b3c,22297
50
66
  lmnr/sdk/browser/rrweb/rrweb.umd.min.cjs,sha256=2f2da38b00bb85312d8225f3069a09352135564ceed2564f652f1bae3bac016d,260896
51
67
  lmnr/sdk/browser/utils.py,sha256=4a668776d2938108d25fbcecd61c8e1710a4da3e56230d5fefca5964dd09e3c1,2371
52
68
  lmnr/sdk/client/asynchronous/async_client.py,sha256=e8feae007506cd2e4b08e72706f5f1bb4ea54492b4aa6b68ef184a129de8f466,4948
53
69
  lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=993423ea462aa8ea37d8d91662341c1ca0711cb2447cd476aacc373858f76135,481
54
70
  lmnr/sdk/client/asynchronous/resources/agent.py,sha256=3a78372b62912cdeda831d7ff9a671306713fce185dff646b452e6f1a3cc6d8c,17788
55
71
  lmnr/sdk/client/asynchronous/resources/base.py,sha256=689e37435ae5b60db7210688e1e79a64a724c554e00d46c226b0a18500941281,986
56
- lmnr/sdk/client/asynchronous/resources/browser_events.py,sha256=4fe0d46db01f310d95aa255f815a65c6e4da259ba835c0b53ba442c5d7f0ed44,1163
72
+ lmnr/sdk/client/asynchronous/resources/browser_events.py,sha256=76f4d7599ee54c0592198585301adc2e9c338398332eb11e445f763f4ab4c7ca,1164
57
73
  lmnr/sdk/client/asynchronous/resources/evals.py,sha256=8c6f8096916657ef269463b2d0585795d9cedad056a047abcde6365ff0b320bd,5761
58
74
  lmnr/sdk/client/asynchronous/resources/evaluators.py,sha256=964046f5146e89032fbb701b883f4f3a7cb996aeb9ff368f86e8f967df2fef10,2918
59
75
  lmnr/sdk/client/asynchronous/resources/tags.py,sha256=14fc2e38cae2f6fe126dc8dca085d7ad02d8d7c1a09bc4b5b5b8e38a0edf7348,2314
@@ -66,15 +82,15 @@ lmnr/sdk/client/synchronous/resources/evaluators.py,sha256=3cd6a17e7a9cc0441c2d2
66
82
  lmnr/sdk/client/synchronous/resources/tags.py,sha256=123deec43128662c21cb275b2df6a102372f875315b0bd36806555394c1d4b5b,2270
67
83
  lmnr/sdk/client/synchronous/sync_client.py,sha256=0bebe88e3aed689505e9ed3d32036f76df4c3496e4d659162bd41abedc026f16,5299
68
84
  lmnr/sdk/datasets.py,sha256=3fd851c5f97bf88eaa84b1451a053eaff23b4497cbb45eac2f9ea0e5f2886c00,1708
69
- lmnr/sdk/decorators.py,sha256=d6ebbdc7105881b945aa5850a87d7b71962aedb69b026075944b6f0604ec3f41,4468
85
+ lmnr/sdk/decorators.py,sha256=0c6b95b92ec8023f28cd15ddc47849888fa91f2534d575f626e3557f5f0a0c02,6451
70
86
  lmnr/sdk/eval_control.py,sha256=291394ac385c653ae9b5167e871bebeb4fe8fc6b7ff2ed38e636f87015dcba86,184
71
- lmnr/sdk/evaluations.py,sha256=ad40c6a48d5e34aa33f3d9ad80514f2055e7eb360b820697bd6cb828a6364625,21806
72
- lmnr/sdk/laminar.py,sha256=a0e55ca3f73d66cb53ef51ecaae1ac81bb45ba65ddd848f3d2b97faa998c9535,33996
87
+ lmnr/sdk/evaluations.py,sha256=b41f7737b084dc5b64b2952659b729622e0918fd492bfcddde7177d1a1c690ae,22572
88
+ lmnr/sdk/laminar.py,sha256=7e63c547dc5a5fa15967fe374ef60463234f41eac0936a2bfeb3e1bb159cc6fd,33388
73
89
  lmnr/sdk/log.py,sha256=9edfd83263f0d4845b1b2d1beeae2b4ed3f8628de941f371a893d72b79c348d4,2213
74
- lmnr/sdk/types.py,sha256=650a7949e609359b0adcaadb49e5cf63fc67ea61a35b9992c3f8b445dfce6b89,12328
90
+ lmnr/sdk/types.py,sha256=116fd2f8cfa2985c4ae5b9ca021b702975ec9aff614e0e9e24d13b89abd61c16,12258
75
91
  lmnr/sdk/utils.py,sha256=4beb884ae6fbbc7d8cf639b036b726ea6a2a658f0a6386faf5735a13d706a2d8,5039
76
- lmnr/version.py,sha256=fec940af89e4f538f3f2c79e3670aaf085c8fa8edd10da2a292bcd224a3f2a26,1322
77
- lmnr-0.6.20.dist-info/WHEEL,sha256=66530aef82d5020ef5af27ae0123c71abb9261377c5bc519376c671346b12918,79
78
- lmnr-0.6.20.dist-info/entry_points.txt,sha256=abdf3411b7dd2d7329a241f2da6669bab4e314a747a586ecdb9f888f3035003c,39
79
- lmnr-0.6.20.dist-info/METADATA,sha256=dd5758deaf108a40ec4b216482914e90f414199c716887e94af4328b74a32878,14475
80
- lmnr-0.6.20.dist-info/RECORD,,
92
+ lmnr/version.py,sha256=54170fa0ec116bd0098e49eb35a28551fd5ec28ab1414e05b2d2dee3979404e5,1321
93
+ lmnr-0.7.0.dist-info/WHEEL,sha256=ab6157bc637547491fb4567cd7ddf26b04d63382916ca16c29a5c8e94c9c9ef7,79
94
+ lmnr-0.7.0.dist-info/entry_points.txt,sha256=abdf3411b7dd2d7329a241f2da6669bab4e314a747a586ecdb9f888f3035003c,39
95
+ lmnr-0.7.0.dist-info/METADATA,sha256=a7e7ad2b1a865c39bfc75358dd0f0da33975534dcfc6cbbea2ca4b0d3406766e,14473
96
+ lmnr-0.7.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.7.20
2
+ Generator: uv 0.7.22
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,65 +0,0 @@
1
- import copy
2
-
3
- from lmnr.opentelemetry_lib.tracing.attributes import (
4
- ASSOCIATION_PROPERTIES,
5
- TRACING_LEVEL,
6
- )
7
-
8
- from opentelemetry.context import Context, attach, set_value, get_value
9
- from opentelemetry.sdk.trace import Span
10
- from opentelemetry import trace
11
-
12
-
13
- # TODO: delete this once deprecated Laminar.with_labels is removed. The logic
14
- # should be moved into Laminar.set_tracing_level
15
- def set_association_properties(properties: dict) -> None:
16
- attach(set_value("association_properties", properties))
17
-
18
- span = trace.get_current_span()
19
- _set_association_properties_attributes(span, properties)
20
-
21
-
22
- # TODO: delete this once deprecated Laminar.with_labels is removed
23
- def get_association_properties(context: Context | None = None) -> dict:
24
- return get_value("association_properties", context) or {}
25
-
26
-
27
- # TODO: delete this once deprecated Laminar.with_labels is removed. The logic
28
- # should be moved into Laminar.set_tracing_level
29
- def update_association_properties(
30
- properties: dict,
31
- set_on_current_span: bool = True,
32
- context: Context | None = None,
33
- ) -> None:
34
- """Only adds or updates properties that are not already present"""
35
- association_properties = get_value("association_properties", context) or {}
36
- association_properties.update(properties)
37
-
38
- attach(set_value("association_properties", association_properties, context))
39
-
40
- if set_on_current_span:
41
- span = trace.get_current_span()
42
- _set_association_properties_attributes(span, properties)
43
-
44
-
45
- # TODO: this logic should be moved into Laminar.set_tracing_level
46
- def remove_association_properties(properties: dict) -> None:
47
- props: dict = copy.copy(get_value("association_properties") or {})
48
- for k in properties.keys():
49
- props.pop(k, None)
50
- set_association_properties(props)
51
-
52
-
53
- def _set_association_properties_attributes(span: Span, properties: dict) -> None:
54
- if not span.is_recording():
55
- return
56
- for key, value in properties.items():
57
- if key == TRACING_LEVEL:
58
- span.set_attribute(f"lmnr.internal.{TRACING_LEVEL}", value)
59
- continue
60
- if (
61
- key in ["langgraph.edges", "langgraph.nodes"]
62
- and span.name != "LangGraph.workflow"
63
- ):
64
- continue
65
- span.set_attribute(f"{ASSOCIATION_PROPERTIES}.{key}", value)