electripy-ai 0.5.0__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.
- electripy_ai-0.5.0/.gitignore +144 -0
- electripy_ai-0.5.0/LICENSE +21 -0
- electripy_ai-0.5.0/PKG-INFO +593 -0
- electripy_ai-0.5.0/README.md +546 -0
- electripy_ai-0.5.0/pyproject.toml +158 -0
- electripy_ai-0.5.0/src/electripy/__init__.py +18 -0
- electripy_ai-0.5.0/src/electripy/ai/__init__.py +49 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/README.md +48 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/__init__.py +27 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/domain.py +56 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/errors.py +21 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/ports.py +16 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_collaboration/services.py +181 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_runtime/__init__.py +20 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_runtime/domain.py +36 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_runtime/ports.py +15 -0
- electripy_ai-0.5.0/src/electripy/ai/agent_runtime/services.py +53 -0
- electripy_ai-0.5.0/src/electripy/ai/batch_complete.py +94 -0
- electripy_ai-0.5.0/src/electripy/ai/context_assembly/__init__.py +26 -0
- electripy_ai-0.5.0/src/electripy/ai/context_assembly/domain.py +54 -0
- electripy_ai-0.5.0/src/electripy/ai/context_assembly/errors.py +11 -0
- electripy_ai-0.5.0/src/electripy/ai/context_assembly/services.py +71 -0
- electripy_ai-0.5.0/src/electripy/ai/conversation_memory/__init__.py +32 -0
- electripy_ai-0.5.0/src/electripy/ai/conversation_memory/domain.py +48 -0
- electripy_ai-0.5.0/src/electripy/ai/conversation_memory/errors.py +7 -0
- electripy_ai-0.5.0/src/electripy/ai/conversation_memory/services.py +157 -0
- electripy_ai-0.5.0/src/electripy/ai/cost_ledger.py +121 -0
- electripy_ai-0.5.0/src/electripy/ai/eval_assertions/__init__.py +58 -0
- electripy_ai-0.5.0/src/electripy/ai/eval_assertions/domain.py +49 -0
- electripy_ai-0.5.0/src/electripy/ai/eval_assertions/services.py +233 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/__init__.py +138 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/adapters.py +340 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/domain.py +314 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/errors.py +42 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/ports.py +159 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/scorers.py +446 -0
- electripy_ai-0.5.0/src/electripy/ai/evals/services.py +303 -0
- electripy_ai-0.5.0/src/electripy/ai/fallback_chain.py +76 -0
- electripy_ai-0.5.0/src/electripy/ai/hallucination_guard/__init__.py +12 -0
- electripy_ai-0.5.0/src/electripy/ai/hallucination_guard/domain.py +15 -0
- electripy_ai-0.5.0/src/electripy/ai/hallucination_guard/services.py +66 -0
- electripy_ai-0.5.0/src/electripy/ai/json_repair.py +244 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_cache/__init__.py +42 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_cache/adapters.py +152 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_cache/domain.py +46 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_cache/ports.py +50 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_cache/services.py +86 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/README.md +382 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/__init__.py +104 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/adapters.py +463 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/config.py +95 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/domain.py +151 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/errors.py +193 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/ports.py +102 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/provider_adapters.py +271 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/providers.py +195 -0
- electripy_ai-0.5.0/src/electripy/ai/llm_gateway/services.py +491 -0
- electripy_ai-0.5.0/src/electripy/ai/mcp/__init__.py +114 -0
- electripy_ai-0.5.0/src/electripy/ai/mcp/adapters.py +280 -0
- electripy_ai-0.5.0/src/electripy/ai/mcp/domain.py +333 -0
- electripy_ai-0.5.0/src/electripy/ai/mcp/errors.py +68 -0
- electripy_ai-0.5.0/src/electripy/ai/mcp/ports.py +119 -0
- electripy_ai-0.5.0/src/electripy/ai/mcp/services.py +530 -0
- electripy_ai-0.5.0/src/electripy/ai/model_router/__init__.py +26 -0
- electripy_ai-0.5.0/src/electripy/ai/model_router/domain.py +68 -0
- electripy_ai-0.5.0/src/electripy/ai/model_router/errors.py +11 -0
- electripy_ai-0.5.0/src/electripy/ai/model_router/services.py +104 -0
- electripy_ai-0.5.0/src/electripy/ai/policy/__init__.py +97 -0
- electripy_ai-0.5.0/src/electripy/ai/policy/adapters.py +210 -0
- electripy_ai-0.5.0/src/electripy/ai/policy/domain.py +381 -0
- electripy_ai-0.5.0/src/electripy/ai/policy/errors.py +33 -0
- electripy_ai-0.5.0/src/electripy/ai/policy/ports.py +96 -0
- electripy_ai-0.5.0/src/electripy/ai/policy/services.py +269 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/README.md +47 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/__init__.py +56 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/adapters.py +78 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/domain.py +124 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/errors.py +21 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/integrations.py +75 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/ports.py +30 -0
- electripy_ai-0.5.0/src/electripy/ai/policy_gateway/services.py +256 -0
- electripy_ai-0.5.0/src/electripy/ai/prompt_engine/__init__.py +33 -0
- electripy_ai-0.5.0/src/electripy/ai/prompt_engine/domain.py +61 -0
- electripy_ai-0.5.0/src/electripy/ai/prompt_engine/errors.py +19 -0
- electripy_ai-0.5.0/src/electripy/ai/prompt_engine/services.py +118 -0
- electripy_ai-0.5.0/src/electripy/ai/prompt_fingerprint.py +67 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/README.md +168 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/__init__.py +92 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/adapters/openai_embeddings_adapter.py +115 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/adapters/pgvector_adapter.py +213 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/config.py +72 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/domain.py +223 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/errors.py +69 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/evaluation.py +130 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/ports.py +123 -0
- electripy_ai-0.5.0/src/electripy/ai/rag/services.py +372 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/README.md +129 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/__init__.py +25 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/adapters.py +122 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/domain.py +187 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/errors.py +19 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_eval_runner/services.py +602 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_quality/__init__.py +22 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_quality/domain.py +23 -0
- electripy_ai-0.5.0/src/electripy/ai/rag_quality/services.py +79 -0
- electripy_ai-0.5.0/src/electripy/ai/realtime/__init__.py +124 -0
- electripy_ai-0.5.0/src/electripy/ai/realtime/adapters.py +164 -0
- electripy_ai-0.5.0/src/electripy/ai/realtime/domain.py +321 -0
- electripy_ai-0.5.0/src/electripy/ai/realtime/errors.py +35 -0
- electripy_ai-0.5.0/src/electripy/ai/realtime/ports.py +97 -0
- electripy_ai-0.5.0/src/electripy/ai/realtime/services.py +476 -0
- electripy_ai-0.5.0/src/electripy/ai/replay_tape/__init__.py +46 -0
- electripy_ai-0.5.0/src/electripy/ai/replay_tape/domain.py +54 -0
- electripy_ai-0.5.0/src/electripy/ai/replay_tape/services.py +223 -0
- electripy_ai-0.5.0/src/electripy/ai/response_robustness/__init__.py +19 -0
- electripy_ai-0.5.0/src/electripy/ai/response_robustness/domain.py +14 -0
- electripy_ai-0.5.0/src/electripy/ai/response_robustness/services.py +68 -0
- electripy_ai-0.5.0/src/electripy/ai/sensitive_data_scanner.py +180 -0
- electripy_ai-0.5.0/src/electripy/ai/skills/__init__.py +126 -0
- electripy_ai-0.5.0/src/electripy/ai/skills/adapters.py +535 -0
- electripy_ai-0.5.0/src/electripy/ai/skills/domain.py +389 -0
- electripy_ai-0.5.0/src/electripy/ai/skills/errors.py +43 -0
- electripy_ai-0.5.0/src/electripy/ai/skills/ports.py +173 -0
- electripy_ai-0.5.0/src/electripy/ai/skills/services.py +323 -0
- electripy_ai-0.5.0/src/electripy/ai/streaming_chat/__init__.py +31 -0
- electripy_ai-0.5.0/src/electripy/ai/streaming_chat/domain.py +22 -0
- electripy_ai-0.5.0/src/electripy/ai/streaming_chat/ports.py +28 -0
- electripy_ai-0.5.0/src/electripy/ai/streaming_chat/services.py +62 -0
- electripy_ai-0.5.0/src/electripy/ai/structured_output/__init__.py +69 -0
- electripy_ai-0.5.0/src/electripy/ai/structured_output/domain.py +57 -0
- electripy_ai-0.5.0/src/electripy/ai/structured_output/errors.py +49 -0
- electripy_ai-0.5.0/src/electripy/ai/structured_output/ports.py +51 -0
- electripy_ai-0.5.0/src/electripy/ai/structured_output/services.py +201 -0
- electripy_ai-0.5.0/src/electripy/ai/token_budget/__init__.py +35 -0
- electripy_ai-0.5.0/src/electripy/ai/token_budget/domain.py +44 -0
- electripy_ai-0.5.0/src/electripy/ai/token_budget/errors.py +16 -0
- electripy_ai-0.5.0/src/electripy/ai/token_budget/ports.py +17 -0
- electripy_ai-0.5.0/src/electripy/ai/token_budget/services.py +156 -0
- electripy_ai-0.5.0/src/electripy/ai/tool_registry/__init__.py +33 -0
- electripy_ai-0.5.0/src/electripy/ai/tool_registry/domain.py +94 -0
- electripy_ai-0.5.0/src/electripy/ai/tool_registry/errors.py +16 -0
- electripy_ai-0.5.0/src/electripy/ai/tool_registry/services.py +218 -0
- electripy_ai-0.5.0/src/electripy/ai/workload_router/__init__.py +108 -0
- electripy_ai-0.5.0/src/electripy/ai/workload_router/adapters.py +82 -0
- electripy_ai-0.5.0/src/electripy/ai/workload_router/domain.py +362 -0
- electripy_ai-0.5.0/src/electripy/ai/workload_router/errors.py +41 -0
- electripy_ai-0.5.0/src/electripy/ai/workload_router/ports.py +84 -0
- electripy_ai-0.5.0/src/electripy/ai/workload_router/services.py +412 -0
- electripy_ai-0.5.0/src/electripy/cli/__init__.py +5 -0
- electripy_ai-0.5.0/src/electripy/cli/app.py +125 -0
- electripy_ai-0.5.0/src/electripy/cli/demo.py +218 -0
- electripy_ai-0.5.0/src/electripy/cli/rag.py +151 -0
- electripy_ai-0.5.0/src/electripy/concurrency/__init__.py +18 -0
- electripy_ai-0.5.0/src/electripy/concurrency/circuit_breaker.py +201 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/README.md +182 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/__init__.py +56 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/adapters.py +209 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/circuit_breaker.py +170 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/domain.py +280 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/ports.py +117 -0
- electripy_ai-0.5.0/src/electripy/concurrency/http_resilience/services.py +402 -0
- electripy_ai-0.5.0/src/electripy/concurrency/rate_limiter.py +81 -0
- electripy_ai-0.5.0/src/electripy/concurrency/retry.py +112 -0
- electripy_ai-0.5.0/src/electripy/concurrency/task_groups.py +70 -0
- electripy_ai-0.5.0/src/electripy/core/__init__.py +17 -0
- electripy_ai-0.5.0/src/electripy/core/config.py +44 -0
- electripy_ai-0.5.0/src/electripy/core/errors.py +39 -0
- electripy_ai-0.5.0/src/electripy/core/logging.py +39 -0
- electripy_ai-0.5.0/src/electripy/core/typing.py +7 -0
- electripy_ai-0.5.0/src/electripy/io/__init__.py +9 -0
- electripy_ai-0.5.0/src/electripy/io/jsonl.py +78 -0
- electripy_ai-0.5.0/src/electripy/observability/__init__.py +12 -0
- electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/README.md +184 -0
- electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/__init__.py +59 -0
- electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/adapters.py +527 -0
- electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/domain.py +222 -0
- electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/ports.py +140 -0
- electripy_ai-0.5.0/src/electripy/observability/ai_telemetry/services.py +360 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/README.md +40 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/__init__.py +108 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/adapters.py +567 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/decorators.py +234 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/domain.py +595 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/errors.py +32 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/ports.py +242 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/redaction.py +133 -0
- electripy_ai-0.5.0/src/electripy/observability/observe/services.py +530 -0
- electripy_ai-0.5.0/tests/ai/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/agent_collaboration/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/agent_collaboration/test_services.py +102 -0
- electripy_ai-0.5.0/tests/ai/agent_runtime/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/agent_runtime/test_services.py +33 -0
- electripy_ai-0.5.0/tests/ai/context_assembly/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/context_assembly/test_services.py +75 -0
- electripy_ai-0.5.0/tests/ai/conversation_memory/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/conversation_memory/test_services.py +100 -0
- electripy_ai-0.5.0/tests/ai/eval_assertions/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/eval_assertions/test_eval_assertions.py +232 -0
- electripy_ai-0.5.0/tests/ai/evals/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/evals/test_adapters.py +223 -0
- electripy_ai-0.5.0/tests/ai/evals/test_domain.py +246 -0
- electripy_ai-0.5.0/tests/ai/evals/test_errors.py +49 -0
- electripy_ai-0.5.0/tests/ai/evals/test_scorers.py +452 -0
- electripy_ai-0.5.0/tests/ai/evals/test_services.py +467 -0
- electripy_ai-0.5.0/tests/ai/hallucination_guard/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/hallucination_guard/test_services.py +19 -0
- electripy_ai-0.5.0/tests/ai/llm_cache/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/llm_cache/test_llm_cache.py +248 -0
- electripy_ai-0.5.0/tests/ai/llm_gateway/test_async_gateway.py +158 -0
- electripy_ai-0.5.0/tests/ai/llm_gateway/test_provider_adapters.py +437 -0
- electripy_ai-0.5.0/tests/ai/llm_gateway/test_providers_and_http_adapter.py +183 -0
- electripy_ai-0.5.0/tests/ai/llm_gateway/test_structured_output_and_safety.py +109 -0
- electripy_ai-0.5.0/tests/ai/llm_gateway/test_sync_gateway.py +200 -0
- electripy_ai-0.5.0/tests/ai/mcp/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/mcp/test_adapters.py +95 -0
- electripy_ai-0.5.0/tests/ai/mcp/test_domain.py +341 -0
- electripy_ai-0.5.0/tests/ai/mcp/test_errors.py +76 -0
- electripy_ai-0.5.0/tests/ai/mcp/test_services.py +541 -0
- electripy_ai-0.5.0/tests/ai/model_router/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/model_router/test_services.py +108 -0
- electripy_ai-0.5.0/tests/ai/policy/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/policy/test_adapters.py +334 -0
- electripy_ai-0.5.0/tests/ai/policy/test_domain.py +296 -0
- electripy_ai-0.5.0/tests/ai/policy/test_errors.py +31 -0
- electripy_ai-0.5.0/tests/ai/policy/test_services.py +508 -0
- electripy_ai-0.5.0/tests/ai/policy_gateway/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/policy_gateway/test_integrations.py +61 -0
- electripy_ai-0.5.0/tests/ai/policy_gateway/test_services.py +73 -0
- electripy_ai-0.5.0/tests/ai/prompt_engine/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/prompt_engine/test_services.py +101 -0
- electripy_ai-0.5.0/tests/ai/rag/test_chunking_and_domain.py +24 -0
- electripy_ai-0.5.0/tests/ai/rag/test_embedding_and_indexing.py +88 -0
- electripy_ai-0.5.0/tests/ai/rag/test_evaluation.py +41 -0
- electripy_ai-0.5.0/tests/ai/rag_eval_runner/test_adapters_and_evaluator.py +89 -0
- electripy_ai-0.5.0/tests/ai/rag_eval_runner/test_cli_rag_eval.py +92 -0
- electripy_ai-0.5.0/tests/ai/rag_eval_runner/test_dataset_loader.py +100 -0
- electripy_ai-0.5.0/tests/ai/rag_quality/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/rag_quality/test_services.py +32 -0
- electripy_ai-0.5.0/tests/ai/realtime/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/realtime/conftest.py +41 -0
- electripy_ai-0.5.0/tests/ai/realtime/test_adapters.py +152 -0
- electripy_ai-0.5.0/tests/ai/realtime/test_domain.py +305 -0
- electripy_ai-0.5.0/tests/ai/realtime/test_services.py +378 -0
- electripy_ai-0.5.0/tests/ai/replay_tape/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/replay_tape/test_replay_tape.py +258 -0
- electripy_ai-0.5.0/tests/ai/response_robustness/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/response_robustness/test_services.py +21 -0
- electripy_ai-0.5.0/tests/ai/skills/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/skills/conftest.py +101 -0
- electripy_ai-0.5.0/tests/ai/skills/test_adapters.py +415 -0
- electripy_ai-0.5.0/tests/ai/skills/test_domain.py +254 -0
- electripy_ai-0.5.0/tests/ai/skills/test_errors.py +38 -0
- electripy_ai-0.5.0/tests/ai/skills/test_services.py +200 -0
- electripy_ai-0.5.0/tests/ai/streaming_chat/__init__.py +1 -0
- electripy_ai-0.5.0/tests/ai/streaming_chat/test_services.py +21 -0
- electripy_ai-0.5.0/tests/ai/structured_output/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/structured_output/test_structured_output.py +291 -0
- electripy_ai-0.5.0/tests/ai/test_batch_complete.py +131 -0
- electripy_ai-0.5.0/tests/ai/test_cost_ledger.py +116 -0
- electripy_ai-0.5.0/tests/ai/test_fallback_chain.py +97 -0
- electripy_ai-0.5.0/tests/ai/test_json_repair.py +74 -0
- electripy_ai-0.5.0/tests/ai/test_prompt_fingerprint.py +85 -0
- electripy_ai-0.5.0/tests/ai/test_sensitive_data_scanner.py +121 -0
- electripy_ai-0.5.0/tests/ai/token_budget/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/token_budget/test_services.py +92 -0
- electripy_ai-0.5.0/tests/ai/tool_registry/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/tool_registry/test_services.py +121 -0
- electripy_ai-0.5.0/tests/ai/workload_router/__init__.py +0 -0
- electripy_ai-0.5.0/tests/ai/workload_router/test_adapters.py +90 -0
- electripy_ai-0.5.0/tests/ai/workload_router/test_domain.py +272 -0
- electripy_ai-0.5.0/tests/ai/workload_router/test_errors.py +45 -0
- electripy_ai-0.5.0/tests/ai/workload_router/test_services.py +685 -0
- electripy_ai-0.5.0/tests/cli/test_app.py +30 -0
- electripy_ai-0.5.0/tests/cli/test_demo.py +40 -0
- electripy_ai-0.5.0/tests/concurrency/http_resilience/test_http_resilience.py +209 -0
- electripy_ai-0.5.0/tests/concurrency/test_circuit_breaker.py +163 -0
- electripy_ai-0.5.0/tests/concurrency/test_rate_limiter.py +70 -0
- electripy_ai-0.5.0/tests/concurrency/test_rate_limiter_properties.py +47 -0
- electripy_ai-0.5.0/tests/concurrency/test_retry.py +95 -0
- electripy_ai-0.5.0/tests/concurrency/test_task_groups.py +49 -0
- electripy_ai-0.5.0/tests/conftest.py +1 -0
- electripy_ai-0.5.0/tests/core/test_config.py +42 -0
- electripy_ai-0.5.0/tests/core/test_errors.py +41 -0
- electripy_ai-0.5.0/tests/core/test_logging.py +26 -0
- electripy_ai-0.5.0/tests/io/test_jsonl.py +87 -0
- electripy_ai-0.5.0/tests/observability/ai_telemetry/test_ai_telemetry.py +138 -0
- electripy_ai-0.5.0/tests/observability/observe/__init__.py +0 -0
- electripy_ai-0.5.0/tests/observability/observe/test_adapters.py +183 -0
- electripy_ai-0.5.0/tests/observability/observe/test_decorators.py +190 -0
- electripy_ai-0.5.0/tests/observability/observe/test_domain.py +274 -0
- electripy_ai-0.5.0/tests/observability/observe/test_redaction.py +186 -0
- electripy_ai-0.5.0/tests/observability/observe/test_services.py +356 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
PYTHONPATH
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
*.manifest
|
|
32
|
+
*.spec
|
|
33
|
+
|
|
34
|
+
# Installer logs
|
|
35
|
+
pip-log.txt
|
|
36
|
+
pip-delete-this-directory.txt
|
|
37
|
+
|
|
38
|
+
# Unit test / coverage reports
|
|
39
|
+
htmlcov/
|
|
40
|
+
.tox/
|
|
41
|
+
.nox/
|
|
42
|
+
.coverage
|
|
43
|
+
.coverage.*
|
|
44
|
+
.cache
|
|
45
|
+
nosetests.xml
|
|
46
|
+
coverage.xml
|
|
47
|
+
*.cover
|
|
48
|
+
*.py,cover
|
|
49
|
+
.hypothesis/
|
|
50
|
+
.pytest_cache/
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
local_settings.py
|
|
59
|
+
db.sqlite3
|
|
60
|
+
db.sqlite3-journal
|
|
61
|
+
|
|
62
|
+
# Flask stuff:
|
|
63
|
+
instance/
|
|
64
|
+
.webassets-cache
|
|
65
|
+
|
|
66
|
+
# Scrapy stuff:
|
|
67
|
+
.scrapy
|
|
68
|
+
|
|
69
|
+
# Sphinx documentation
|
|
70
|
+
docs/_build/
|
|
71
|
+
|
|
72
|
+
# PyBuilder
|
|
73
|
+
target/
|
|
74
|
+
|
|
75
|
+
# Jupyter Notebook
|
|
76
|
+
.ipynb_checkpoints
|
|
77
|
+
|
|
78
|
+
# IPython
|
|
79
|
+
profile_default/
|
|
80
|
+
ipython_config.py
|
|
81
|
+
|
|
82
|
+
# pyenv
|
|
83
|
+
.python-version
|
|
84
|
+
|
|
85
|
+
# pipenv
|
|
86
|
+
Pipfile.lock
|
|
87
|
+
|
|
88
|
+
# PEP 582
|
|
89
|
+
__pypackages__/
|
|
90
|
+
|
|
91
|
+
# Celery stuff
|
|
92
|
+
celerybeat-schedule
|
|
93
|
+
celerybeat.pid
|
|
94
|
+
|
|
95
|
+
# SageMath parsed files
|
|
96
|
+
*.sage.py
|
|
97
|
+
|
|
98
|
+
# Environments
|
|
99
|
+
.env
|
|
100
|
+
.venv
|
|
101
|
+
env/
|
|
102
|
+
venv/
|
|
103
|
+
ENV/
|
|
104
|
+
env.bak/
|
|
105
|
+
venv.bak/
|
|
106
|
+
|
|
107
|
+
# Spyder project settings
|
|
108
|
+
.spyderproject
|
|
109
|
+
.spyproject
|
|
110
|
+
|
|
111
|
+
# Rope project settings
|
|
112
|
+
.ropeproject
|
|
113
|
+
|
|
114
|
+
# mkdocs documentation
|
|
115
|
+
/site
|
|
116
|
+
|
|
117
|
+
# mypy
|
|
118
|
+
.mypy_cache/
|
|
119
|
+
.dmypy.json
|
|
120
|
+
dmypy.json
|
|
121
|
+
|
|
122
|
+
# Pyre type checker
|
|
123
|
+
.pyre/
|
|
124
|
+
|
|
125
|
+
# IDEs
|
|
126
|
+
.vscode/
|
|
127
|
+
.idea/
|
|
128
|
+
*.swp
|
|
129
|
+
*.swo
|
|
130
|
+
*~
|
|
131
|
+
|
|
132
|
+
# OS
|
|
133
|
+
.DS_Store
|
|
134
|
+
Thumbs.db
|
|
135
|
+
|
|
136
|
+
# Node
|
|
137
|
+
node_modules/
|
|
138
|
+
npm-debug.log*
|
|
139
|
+
yarn-debug.log*
|
|
140
|
+
yarn-error.log*
|
|
141
|
+
package-lock.json
|
|
142
|
+
|
|
143
|
+
# Local component prompt (not for checkout)
|
|
144
|
+
ComponentPrompt.md
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Inference Stack
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|