| src / app / __init__.py |
(no function) |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / main.py |
greet |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / main.py |
main |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / main.py |
(no function) |
|
100% |
5 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserNotFoundError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserAlreadyExistsError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserCreationError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserRepository.save |
|
100% |
0 |
0 |
7 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserRepository.get_by_id |
|
100% |
0 |
0 |
10 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
InMemoryUserRepository.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
InMemoryUserRepository.save |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
InMemoryUserRepository.get_by_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserService.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserService.create_user |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / app / secure_system.py |
UserService.get_user |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / app / secure_system.py |
(no function) |
|
100% |
35 |
0 |
4 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / __init__.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / __init__.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / _imports.py |
require_dependency |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / _imports.py |
get_attr_or_err |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / _imports.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
_breaker_is_open |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientDatabase.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientDatabase._handle_attempt_failure |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientDatabase._execute_loop |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientDatabase.execute |
|
100% |
10 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientDatabase.health_check |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientRedis.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientRedis.execute |
|
100% |
15 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
ResilientRedis.health_check |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / db_bridge.py |
(no function) |
|
100% |
31 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
_check_circuit_breaker |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
_check_ssrf |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
_should_retry_status |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
_handle_http_exception |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
_execute_single_attempt |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
_execute_with_retries |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
safe_request |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
safe_request._do_request |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.__aenter__ |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.__aexit__ |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.request |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.request._do_request |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.get |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.post |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.put |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.delete |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
SafeHttpClient.patch |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / http_bridge.py |
(no function) |
|
100% |
60 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
SecurityHeadersConfig.to_headers |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
result_to_response |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
_send_json_response |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
TaipanMiddleware.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
TaipanMiddleware._wrap_send_with_security_headers |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
TaipanMiddleware._wrap_send_with_security_headers.send_with_headers |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
TaipanMiddleware._handle_rate_limit |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
TaipanMiddleware.__call__ |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / bridges / web_bridge.py |
(no function) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / __init__.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_ruff_config |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_mypy_config |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_pytest_config |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_coverage_config |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
generate_pyproject_config |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_bandit_hook |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_safety_hook |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_semgrep_hook |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_detect_secrets_hook |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
_generate_paranoid_hooks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
generate_pre_commit_config |
|
100% |
12 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
generate_security_policy |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / generators.py |
(no function) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / models.py |
StackConfig.validate_project_name |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / config / models.py |
StackConfig.validate_python_version |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / config / models.py |
StackConfig.validate_project_dir |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / config / models.py |
StackConfig.validate_config_consistency |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / config / models.py |
StackConfig.to_target_version |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / models.py |
(no function) |
|
100% |
49 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
VersionRecommendations.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
_get_311_recommendations |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
_get_312_recommendations |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
_get_313_recommendations |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
_get_314_recommendations |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
get_version_recommendations |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / config / version_config.py |
(no function) |
|
100% |
30 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / __init__.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_check_jit_available |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_check_free_threading_available |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_check_mimalloc_available |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_check_tail_call_interpreter |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
is_experimental_enabled |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
get_optimization_level |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
PythonFeatures.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_get_version_tier |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_get_build_features |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
_get_language_features |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
get_features |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
get_python_info |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / compat.py |
(no function) |
|
100% |
59 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
OptimizationResult.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
_get_base_profile |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
_build_aggressive_profile |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
get_optimization_profile |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
_apply_gc_tuning |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
_apply_gc_freeze |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
_apply_experimental |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
apply_optimizations |
|
100% |
21 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
get_recommended_thread_pool_size |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / optimizations.py |
(no function) |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe.async_wrapper |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe.wrapper |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
SafeFromDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
SafeFromDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe_from |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe_from.decorator |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe_from.decorator.async_wrapper |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
safe_from.decorator.wrapper |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
_collect_list |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
collect_results |
|
100% |
15 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src / taipanstack / core / result.py |
map_async |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
map_async |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
map_async |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
map_async |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / core / result.py |
and_then_async |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
and_then_async |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
and_then_async |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / core / result.py |
and_then_async |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / core / result.py |
(no function) |
|
100% |
18 |
0 |
34 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / __init__.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / __init__.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.__init__ |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.state |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker._evaluate_trip |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.record_success |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.record_failure |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.evaluate_result |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.should_allow |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.reset |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
AdaptiveCircuitBreaker.metrics |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_breaker.py |
(no function) |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_retry.py |
AdaptiveRetry.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_retry.py |
AdaptiveRetry.record_outcome |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_retry.py |
AdaptiveRetry.get_delay |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_retry.py |
AdaptiveRetry.to_retry_config |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_retry.py |
AdaptiveRetry.metrics |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / adaptive_retry.py |
(no function) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
BulkheadFullError.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
Bulkhead.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
Bulkhead.available_permits |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
Bulkhead.queued |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
Bulkhead.active |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
Bulkhead.execute |
|
100% |
20 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / bulkhead.py |
(no function) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.with_bulkhead |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.with_circuit_breaker |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.with_retry |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.with_timeout |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.with_fallback |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator.execute |
|
100% |
20 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._evaluate_circuit_breaker |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._record_success_outcome |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._record_failure_outcome |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._calculate_retry_delay |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._execute_inner |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._handle_retry_failure |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._execute_with_retries |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._execute_with_timeout |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
ResilienceOrchestrator._apply_fallback |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / adaptive / orchestrator.py |
(no function) |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreakerDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreakerDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreakerError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreakerConfig.__post_init__ |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._check_finite_val |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._validate_thresholds |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.__init__ |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.failure_count |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._log_callback_failure |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._notify_state_change |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._handle_open_state |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._handle_attempt_half_open |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._should_attempt |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._handle_success_half_open |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._record_success |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._handle_failure_half_open |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._handle_failure_closed |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._update_failure_metrics |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._record_failure |
|
100% |
14 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.reset |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._process_result |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker._decrement_half_open |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.__call__ |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.__call__.async_wrapper |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
CircuitBreaker.__call__.wrapper |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
circuit_breaker |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
circuit_breaker.decorator |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / circuit_breaker.py |
(no function) |
|
100% |
70 |
0 |
4 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
FallbackDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
FallbackDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
fallback |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
fallback.decorator |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
fallback.decorator.async_wrapper |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
fallback.decorator.sync_wrapper |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
TimeoutDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
TimeoutDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
timeout |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
timeout.decorator |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
timeout.decorator.async_wrapper |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
timeout.decorator.sync_wrapper |
|
100% |
20 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
timeout.decorator.sync_wrapper.worker |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / resilience.py |
(no function) |
|
100% |
17 |
0 |
8 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
RetryDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
RetryDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_validate_finite_or_default |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
RetryConfig.__post_init__ |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
RetryError.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_calculate_base_delay |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_apply_jitter |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
calculate_delay |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_log_retry_callback_failure |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_log_retry_attempt_fallback |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_invoke_retry_callback |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_log_retry_attempt |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_log_all_failed |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
_raise_retry_error |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
retry |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
retry.decorator |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
retry.decorator.async_wrapper |
|
100% |
22 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
retry.decorator.wrapper |
|
100% |
22 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
retry_on_exception |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
Retrier.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
Retrier.__enter__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
Retrier.__exit__ |
|
100% |
16 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / resilience / retry.py |
(no function) |
|
100% |
52 |
0 |
4 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / __init__.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher.is_running |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher.start |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher.stop |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher._loop |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher._run |
|
100% |
0 |
0 |
5 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher._get_extra_repr |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
BaseWatcher.__repr__ |
|
100% |
0 |
0 |
5 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / _base.py |
(no function) |
|
100% |
13 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
_hash_file |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
_parse_env |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
_parse_json |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
_load_file_data |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
validate_config |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher._process_hash_result |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher._detect_changes |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher._handle_validation_success |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher._handle_validation_failure |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher._validate_and_apply |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
ConfigWatcher._run |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / config_watcher.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
check_target |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
check_all |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
HealthPinger.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
HealthPinger._process_target |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
HealthPinger._check_and_open_breaker |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
HealthPinger._notify_health_change |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
HealthPinger._update_target_status |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
HealthPinger._run |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
_force_open_breaker |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / health_pinger.py |
(no function) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
check_resources |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
ResourceWatcher.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
ResourceWatcher.start |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
ResourceWatcher._check_threshold |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
ResourceWatcher._handle_snapshot |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
ResourceWatcher._run |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / resilience / watchdogs / resource_watcher.py |
(no function) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / __init__.py |
(no function) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
ValidatorFunc.__call__ |
|
100% |
0 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
OperationTimeoutError.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
ValidationError.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
validate_inputs |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
validate_inputs.decorator |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
validate_inputs.decorator.wrapper |
|
100% |
12 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
guard_exceptions |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
guard_exceptions.decorator |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
guard_exceptions.decorator.wrapper |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
timeout |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
timeout.decorator |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
timeout.decorator.wrapper |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
_timeout_with_signal |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
_timeout_with_signal.handler |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
_timeout_with_thread |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
_timeout_with_thread.target |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
deprecated |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
deprecated.decorator |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
deprecated.decorator.wrapper |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
require_type |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
require_type.decorator |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
require_type.decorator.wrapper |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / decorators.py |
(no function) |
|
100% |
27 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
SecurityError.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_traversal_patterns |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_resolve_and_check_bounds |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_symlink_safety |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
guard_path_traversal |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_command_not_empty |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_command_null_bytes |
|
100% |
3 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_command_patterns |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_allowed_commands |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
guard_command_injection |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_filename_null_bytes |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_clean_filename_end |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_normalize_ext |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_denied_extension |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_allowed_extension |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
guard_file_extension |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_env_denied |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_env_sensitive |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
guard_env_variable |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_validate_ssrf_url_type_and_length |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_validate_ssrf_url_parse |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_validate_ssrf_url |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_is_ip_safe |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
_check_ip_safety |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
guard_ssrf |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / guards.py |
(no function) |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / jwt.py |
encode_jwt |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / jwt.py |
decode_jwt |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / jwt.py |
(no function) |
|
100% |
12 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / models.py |
_mask_dict |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / models.py |
_mask_list |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / models.py |
_mask_data |
|
100% |
9 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / security / models.py |
SecureBaseModel.__str__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / models.py |
SecureBaseModel.__repr_args__ |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / models.py |
SecureBaseModel.model_dump |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / models.py |
SecureBaseModel.model_dump_json |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / models.py |
(no function) |
|
100% |
20 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / password.py |
_get_password_str |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / password.py |
hash_password |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / password.py |
_verify_legacy_pbkdf2 |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / password.py |
_verify_argon2 |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / password.py |
verify_password |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / security / password.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_handle_html |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_handle_unicode |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
sanitize_string |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_get_filename_from_path |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_has_valid_extension |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_extract_stem_and_suffix |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_remove_invalid_chars |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_collapse_replacements |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_truncate_filename |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_is_filename_safe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_finalize_filename |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
sanitize_filename |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_get_stem |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_is_safe_path_part |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_handle_dot_dot |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_handle_normal_part |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_process_path_part |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_clean_path_parts |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_apply_base_dir_constraint |
|
100% |
12 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_normalize_path_input |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_reconstruct_path |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_validate_path_depth |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
sanitize_path |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_sanitize_env_multiline |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_sanitize_env_singleline |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
sanitize_env_value |
|
100% |
10 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
_sanitize_sql_identifier_slow_path |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
sanitize_sql_identifier |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / sanitizers.py |
(no function) |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_validate_safe_url |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_validate_safe_path |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_validate_safe_command |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_validate_safe_project_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_validate_safe_url_format |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_sanitize_safe_html |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / types.py |
_validate_safe_sql_identifier |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / types.py |
(no function) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_validate_type |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_project_name_length |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_build_project_name_pattern |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_build_invalid_chars_msg |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_project_name_chars |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_project_name_reserved |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
validate_project_name |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_version_format |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_version_numbers |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
validate_python_version |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_email_basics |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_email_format |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_email_parts |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
validate_email |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_url_basics |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_scheme |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_tld |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
_check_url_domain |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
validate_url |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / security / validators.py |
(no function) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / __init__.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
CacheDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
CacheDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
cached |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
cached.get_cache_key |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
cached.get_cache_key._make_hashable |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
cached.decorator |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
cached.decorator.async_wrapper |
|
100% |
36 |
0 |
0 |
|
100% |
16 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
cached.decorator.sync_wrapper |
|
100% |
19 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src / taipanstack / utils / cache.py |
(no function) |
|
100% |
15 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / circuit_breaker.py |
(no function) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
OverloadError.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
ConcurrencyLimitDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
ConcurrencyLimitDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
_handle_async_concurrency |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
_handle_async_concurrency.async_wrapper |
|
100% |
15 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
_handle_sync_concurrency |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
_handle_sync_concurrency.wrapper |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
limit_concurrency |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
limit_concurrency.decorator |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / concurrency.py |
(no function) |
|
100% |
16 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / context.py |
get_correlation_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / context.py |
set_correlation_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / context.py |
correlation_scope |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / context.py |
(no function) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
FileNotFoundErr.message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
NotAFileErr.message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
_validate_path |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
FileTooLargeErr.message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
safe_read |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
_validate_safe_write_path |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
_sanitize_write_path |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
_perform_atomic_write |
|
100% |
17 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
safe_write |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
ensure_dir |
|
100% |
16 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src / taipanstack / utils / filesystem.py |
(no function) |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
_is_sensitive |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
_redact |
|
100% |
16 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
_redact_dict |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
mask_sensitive_data_processor |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
correlation_id_processor |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.bind |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.unbind |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger._format_message |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.debug |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.info |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.warning |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.error |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.critical |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
StackLogger.exception |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
_configure_structlog |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
_get_log_format |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
setup_logging |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
get_logger |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
log_operation |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
log_operation._log_context |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / logging.py |
(no function) |
|
100% |
41 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimitError.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter._is_valid_bucket_state |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter._calculate_new_tokens |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter._apply_new_tokens |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter._add_tokens |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter._try_consume |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimiter.consume |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimitDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
RateLimitDecorator.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
rate_limit |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
rate_limit.decorator |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
rate_limit.decorator.async_wrapper |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
rate_limit.decorator.wrapper |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / rate_limit.py |
(no function) |
|
100% |
23 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / resilience.py |
(no function) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / retry.py |
(no function) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / serialization.py |
default_encoder |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / utils / serialization.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
SafeCommandResult.success |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
SafeCommandResult.raise_on_error |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_validate_and_resolve_command |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_get_allowed_keys |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_filter_environment |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_extract_timeout_stdout |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_execute_command |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_validate_cwd |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_handle_dry_run |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
_validate_timeout |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
run_safe_command |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src / taipanstack / utils / subprocess.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |