snowglobe 0.4.5__tar.gz → 0.4.7__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 (25) hide show
  1. {snowglobe-0.4.5/src/snowglobe.egg-info → snowglobe-0.4.7}/PKG-INFO +1 -1
  2. {snowglobe-0.4.5 → snowglobe-0.4.7}/pyproject.toml +1 -1
  3. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/app.py +7 -16
  4. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/cli.py +6 -0
  5. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/cli_utils.py +1 -1
  6. {snowglobe-0.4.5 → snowglobe-0.4.7/src/snowglobe.egg-info}/PKG-INFO +1 -1
  7. {snowglobe-0.4.5 → snowglobe-0.4.7}/tests/test_cli.py +4 -2
  8. {snowglobe-0.4.5 → snowglobe-0.4.7}/LICENSE +0 -0
  9. {snowglobe-0.4.5 → snowglobe-0.4.7}/README.md +0 -0
  10. {snowglobe-0.4.5 → snowglobe-0.4.7}/setup.cfg +0 -0
  11. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/__init__.py +0 -0
  12. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/config.py +0 -0
  13. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/models.py +0 -0
  14. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/project_manager.py +0 -0
  15. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/stats.py +0 -0
  16. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe/client/src/utils.py +0 -0
  17. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe.egg-info/SOURCES.txt +0 -0
  18. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe.egg-info/dependency_links.txt +0 -0
  19. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe.egg-info/entry_points.txt +0 -0
  20. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe.egg-info/requires.txt +0 -0
  21. {snowglobe-0.4.5 → snowglobe-0.4.7}/src/snowglobe.egg-info/top_level.txt +0 -0
  22. {snowglobe-0.4.5 → snowglobe-0.4.7}/tests/test_app.py +0 -0
  23. {snowglobe-0.4.5 → snowglobe-0.4.7}/tests/test_config.py +0 -0
  24. {snowglobe-0.4.5 → snowglobe-0.4.7}/tests/test_heartbeat.py +0 -0
  25. {snowglobe-0.4.5 → snowglobe-0.4.7}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowglobe
3
- Version: 0.4.5
3
+ Version: 0.4.7
4
4
  Summary: client server for usage with snowglobe experiments
5
5
  Author-email: Guardrails AI <contact@guardrailsai.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "snowglobe"
3
- version = "0.4.5"
3
+ version = "0.4.7"
4
4
  authors = [
5
5
  {name = "Guardrails AI", email = "contact@guardrailsai.com"}
6
6
  ]
@@ -151,18 +151,18 @@ async def process_application_heartbeat(app_id):
151
151
  f"Completion function for application {app_id} did not return a valid response. Expected a string, got {type(response.response)}"
152
152
  )
153
153
  connection_test_payload["status"] = "failed"
154
- connection_test_payload["error"] = (
155
- "Completion function did not return a valid response. Expected a string, got {type(response.response)}"
156
- )
154
+ connection_test_payload[
155
+ "error"
156
+ ] = "Completion function did not return a valid response. Expected a string, got {type(response.response)}"
157
157
 
158
158
  if response.response == "This is a string response from your application":
159
159
  LOGGER.error(
160
160
  f"Completion function for application {app_id} returned a default response. This indicates the application is not properly connected."
161
161
  )
162
162
  connection_test_payload["status"] = "failed"
163
- connection_test_payload["error"] = (
164
- "Completion function returned a default response. "
165
- )
163
+ connection_test_payload[
164
+ "error"
165
+ ] = "Completion function returned a default response. "
166
166
 
167
167
  if connection_test_payload.get("status") != "failed":
168
168
  connection_test_payload["response"] = response.response
@@ -693,17 +693,8 @@ async def lifespan(app: FastAPI):
693
693
  )
694
694
  continue
695
695
 
696
- # Wrap process_scenario to match the expected completion_fn interface
697
- def make_completion_fn(process_fn):
698
- def completion_fn(request):
699
- return process_fn(request)
700
-
701
- return completion_fn
702
-
703
696
  apps[app_id] = {
704
- "completion_fn": make_completion_fn(
705
- agent_module.process_scenario
706
- ),
697
+ "completion_fn": agent_module.process_scenario,
707
698
  "name": app_name,
708
699
  }
709
700
 
@@ -401,6 +401,8 @@ def test_agent_wrapper(filename: str, app_id: str, app_name: str) -> Tuple[bool,
401
401
  return False, "Invalid response format"
402
402
 
403
403
  except Exception as e:
404
+ import traceback
405
+ traceback.print_exc()
404
406
  return False, f"Error: {str(e)}"
405
407
 
406
408
 
@@ -603,6 +605,8 @@ def _create_auth_server(config_key: str, rc_path: str) -> FastAPI:
603
605
 
604
606
  return {"written": True}
605
607
  except Exception as e:
608
+ import traceback
609
+ traceback.print_exc()
606
610
  error(f"Failed to process key configuration: {e}")
607
611
  return {"error": "Failed to process key configuration request"}
608
612
 
@@ -787,6 +791,8 @@ def start(
787
791
  else:
788
792
  console.print()
789
793
  except Exception:
794
+ import traceback
795
+ traceback.print_exc()
790
796
  # Do not block startup if we cannot load agents mapping
791
797
  pass
792
798
 
@@ -270,7 +270,7 @@ def graceful_shutdown(_sig_num, _frame):
270
270
 
271
271
  if cli_state.verbose:
272
272
  console.print(f"signal received: {_sig_num}, frame: {_frame}")
273
-
273
+
274
274
  # Show session summary and exit cleanly
275
275
  console.print("\n[bold blue]🛑 Shutting down...[/bold blue]")
276
276
  show_session_summary()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowglobe
3
- Version: 0.4.5
3
+ Version: 0.4.7
4
4
  Summary: client server for usage with snowglobe experiments
5
5
  Author-email: Guardrails AI <contact@guardrailsai.com>
6
6
  License: MIT License
@@ -531,12 +531,14 @@ class TestCli(unittest.TestCase):
531
531
  # Test Case 19: Valid agent with default template response
532
532
  template_file = os.path.join(tmpdir, "template.py")
533
533
  with open(template_file, "w") as f:
534
- f.write("""
534
+ f.write(
535
+ """
535
536
  from snowglobe.client import CompletionRequest, CompletionFunctionOutputs
536
537
 
537
538
  def process_scenario(request):
538
539
  return CompletionFunctionOutputs(response="Your response here")
539
- """)
540
+ """
541
+ )
540
542
 
541
543
  with mock.patch("os.getcwd", return_value=tmpdir):
542
544
  result, message = cli.test_agent_wrapper(
File without changes
File without changes
File without changes
File without changes
File without changes