prompty 0.1.37__tar.gz → 0.1.38__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. {prompty-0.1.37 → prompty-0.1.38}/PKG-INFO +1 -1
  2. {prompty-0.1.37 → prompty-0.1.38}/prompty/tracer.py +21 -1
  3. {prompty-0.1.37 → prompty-0.1.38}/pyproject.toml +1 -1
  4. {prompty-0.1.37 → prompty-0.1.38}/tests/test_tracing.py +15 -0
  5. {prompty-0.1.37 → prompty-0.1.38}/LICENSE +0 -0
  6. {prompty-0.1.37 → prompty-0.1.38}/README.md +0 -0
  7. {prompty-0.1.37 → prompty-0.1.38}/prompty/__init__.py +0 -0
  8. {prompty-0.1.37 → prompty-0.1.38}/prompty/azure/__init__.py +0 -0
  9. {prompty-0.1.37 → prompty-0.1.38}/prompty/azure/executor.py +0 -0
  10. {prompty-0.1.37 → prompty-0.1.38}/prompty/azure/processor.py +0 -0
  11. {prompty-0.1.37 → prompty-0.1.38}/prompty/azure_beta/__init__.py +0 -0
  12. {prompty-0.1.37 → prompty-0.1.38}/prompty/azure_beta/executor.py +0 -0
  13. {prompty-0.1.37 → prompty-0.1.38}/prompty/cli.py +0 -0
  14. {prompty-0.1.37 → prompty-0.1.38}/prompty/core.py +0 -0
  15. {prompty-0.1.37 → prompty-0.1.38}/prompty/invoker.py +0 -0
  16. {prompty-0.1.37 → prompty-0.1.38}/prompty/openai/__init__.py +0 -0
  17. {prompty-0.1.37 → prompty-0.1.38}/prompty/openai/executor.py +0 -0
  18. {prompty-0.1.37 → prompty-0.1.38}/prompty/openai/processor.py +0 -0
  19. {prompty-0.1.37 → prompty-0.1.38}/prompty/parsers.py +0 -0
  20. {prompty-0.1.37 → prompty-0.1.38}/prompty/renderers.py +0 -0
  21. {prompty-0.1.37 → prompty-0.1.38}/prompty/serverless/__init__.py +0 -0
  22. {prompty-0.1.37 → prompty-0.1.38}/prompty/serverless/executor.py +0 -0
  23. {prompty-0.1.37 → prompty-0.1.38}/prompty/serverless/processor.py +0 -0
  24. {prompty-0.1.37 → prompty-0.1.38}/prompty/utils.py +0 -0
  25. {prompty-0.1.37 → prompty-0.1.38}/tests/__init__.py +0 -0
  26. {prompty-0.1.37 → prompty-0.1.38}/tests/fake_azure_executor.py +0 -0
  27. {prompty-0.1.37 → prompty-0.1.38}/tests/fake_serverless_executor.py +0 -0
  28. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/1contoso.md +0 -0
  29. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/2contoso.md +0 -0
  30. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/3contoso.md +0 -0
  31. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/4contoso.md +0 -0
  32. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/basic.prompty.md +0 -0
  33. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/camping.jpg +0 -0
  34. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/context.prompty.md +0 -0
  35. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/contoso_multi.md +0 -0
  36. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/faithfulness.prompty.md +0 -0
  37. {prompty-0.1.37 → prompty-0.1.38}/tests/generated/groundedness.prompty.md +0 -0
  38. {prompty-0.1.37 → prompty-0.1.38}/tests/hello_world-goodbye_world-hello_again.embedding.json +0 -0
  39. {prompty-0.1.37 → prompty-0.1.38}/tests/hello_world.embedding.json +0 -0
  40. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/__init__.py +0 -0
  41. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/basic.prompty +0 -0
  42. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/basic.prompty.execution.json +0 -0
  43. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/basic_json_output.prompty +0 -0
  44. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/camping.jpg +0 -0
  45. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/chat.prompty +0 -0
  46. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/context.json +0 -0
  47. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/context.prompty +0 -0
  48. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/context.prompty.execution.json +0 -0
  49. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/embedding.prompty +0 -0
  50. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/embedding.prompty.execution.json +0 -0
  51. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/evaluation.prompty +0 -0
  52. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/faithfulness.prompty +0 -0
  53. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/faithfulness.prompty.execution.json +0 -0
  54. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/fake.prompty +0 -0
  55. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/funcfile.json +0 -0
  56. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/funcfile.prompty +0 -0
  57. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/functions.prompty +0 -0
  58. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/functions.prompty.execution.json +0 -0
  59. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/groundedness.prompty +0 -0
  60. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/groundedness.prompty.execution.json +0 -0
  61. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/prompty.json +0 -0
  62. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/serverless.prompty +0 -0
  63. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/serverless.prompty.execution.json +0 -0
  64. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/serverless_stream.prompty +0 -0
  65. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/serverless_stream.prompty.execution.json +0 -0
  66. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/streaming.prompty +0 -0
  67. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/streaming.prompty.execution.json +0 -0
  68. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/structured_output.prompty +0 -0
  69. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/structured_output.prompty.execution.json +0 -0
  70. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/structured_output_schema.json +0 -0
  71. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/sub/__init__.py +0 -0
  72. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/sub/basic.prompty +0 -0
  73. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/sub/sub/__init__.py +0 -0
  74. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/sub/sub/basic.prompty +0 -0
  75. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/sub/sub/prompty.json +0 -0
  76. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/sub/sub/test.py +0 -0
  77. {prompty-0.1.37 → prompty-0.1.38}/tests/prompts/test.py +0 -0
  78. {prompty-0.1.37 → prompty-0.1.38}/tests/prompty.json +0 -0
  79. {prompty-0.1.37 → prompty-0.1.38}/tests/test_common.py +0 -0
  80. {prompty-0.1.37 → prompty-0.1.38}/tests/test_execute.py +0 -0
  81. {prompty-0.1.37 → prompty-0.1.38}/tests/test_factory_invoker.py +0 -0
  82. {prompty-0.1.37 → prompty-0.1.38}/tests/test_path_exec.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prompty
3
- Version: 0.1.37
3
+ Version: 0.1.38
4
4
  Summary: Prompty is a new asset class and format for LLM prompts that aims to provide observability, understandability, and portability for developers. It includes spec, tooling, and a runtime. This Prompty runtime supports Python
5
5
  Author-Email: Seth Juarez <seth.juarez@microsoft.com>
6
6
  License: MIT
@@ -134,7 +134,17 @@ def _trace_sync(
134
134
  @wraps(func)
135
135
  def wrapper(*args, **kwargs):
136
136
  name, signature = _name(func, args)
137
+ altname: str = None
138
+ # special case
139
+ if "name" in okwargs:
140
+ altname = name
141
+ name = okwargs["name"]
142
+ del okwargs["name"]
143
+
137
144
  with Tracer.start(name) as trace:
145
+ if altname != None:
146
+ trace("function", altname)
147
+
138
148
  trace("signature", signature)
139
149
 
140
150
  # support arbitrary keyword
@@ -178,10 +188,20 @@ def _trace_async(
178
188
  @wraps(func)
179
189
  async def wrapper(*args, **kwargs):
180
190
  name, signature = _name(func, args)
191
+ altname: str = None
192
+ # special case
193
+ if "name" in okwargs:
194
+ altname = name
195
+ name = okwargs["name"]
196
+ del okwargs["name"]
197
+
181
198
  with Tracer.start(name) as trace:
199
+ if altname != None:
200
+ trace("function", altname)
201
+
182
202
  trace("signature", signature)
183
203
 
184
- # support arbitrary keyword
204
+ # support arbitrary keyword
185
205
  # arguments for trace decorator
186
206
  for k, v in okwargs.items():
187
207
  trace(k, to_dict(v))
@@ -15,7 +15,7 @@ dependencies = [
15
15
  "click>=8.1.7",
16
16
  "aiofiles>=24.1.0",
17
17
  ]
18
- version = "0.1.37"
18
+ version = "0.1.38"
19
19
 
20
20
  [project.license]
21
21
  text = "MIT"
@@ -308,3 +308,18 @@ def test_tracing_attributes():
308
308
  with Tracer.start("Test3", {"signature": "9", "ten": 10}) as trace:
309
309
  trace("inputs", 11)
310
310
  trace(Tracer.RESULT, 12)
311
+
312
+
313
+ @trace(name="OTHER")
314
+ def test_named_tracer():
315
+ with Tracer.start("Test1", {Tracer.SIGNATURE: "test1", "two": 2}) as trace:
316
+ trace(Tracer.INPUTS, 3)
317
+ trace(Tracer.RESULT, 4)
318
+
319
+
320
+ @pytest.mark.asyncio
321
+ @trace(name="OTHER")
322
+ async def test_named_tracer_async():
323
+ with Tracer.start("Test1", {Tracer.SIGNATURE: "test1", "two": 2}) as trace:
324
+ trace(Tracer.INPUTS, 3)
325
+ trace(Tracer.RESULT, 4)
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