| src / ai_lls_lib / __init__.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| src / ai_lls_lib / admin / __init__.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / apikeys / __init__.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
compute_legacy_key_hash |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
LegacyApiKeyService.__init__ |
|
9 |
4 |
0 |
|
56% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
LegacyApiKeyService.rotate_key |
|
14 |
1 |
0 |
|
93% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
LegacyApiKeyService._deactivate_user_keys |
|
11 |
4 |
0 |
|
64% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
LegacyApiKeyService.validate_by_lookup_hash |
|
13 |
1 |
0 |
|
92% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
LegacyApiKeyService.backfill_lookup_hash |
|
4 |
1 |
0 |
|
75% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
LegacyApiKeyService.validate_key |
|
19 |
3 |
0 |
|
84% |
| src / ai_lls_lib / apikeys / legacy_key_service.py |
(no function) |
|
27 |
3 |
2 |
|
89% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService.__init__ |
|
9 |
4 |
0 |
|
56% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService._get_key |
|
9 |
1 |
0 |
|
89% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService.list_keys |
|
9 |
1 |
0 |
|
89% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService.create_key |
|
19 |
1 |
0 |
|
95% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService.update_key |
|
25 |
3 |
0 |
|
88% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService.rotate_key |
|
9 |
1 |
0 |
|
89% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
ManagedApiKeyService.revoke_key |
|
9 |
1 |
0 |
|
89% |
| src / ai_lls_lib / apikeys / managed_key_service.py |
(no function) |
|
27 |
3 |
2 |
|
89% |
| src / ai_lls_lib / auth / __init__.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
get_user_from_event |
|
5 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
get_email_from_event |
|
5 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
is_admin |
|
7 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
get_groups_from_event |
|
7 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
require_admin |
|
3 |
0 |
1 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
require_admin.wrapper |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
get_auth_type |
|
5 |
0 |
0 |
|
100% |
| src / ai_lls_lib / auth / context_parser.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src / ai_lls_lib / common.py |
DecimalEncoder.default |
|
3 |
0 |
0 |
|
100% |
| src / ai_lls_lib / common.py |
extract_area_code |
|
6 |
0 |
0 |
|
100% |
| src / ai_lls_lib / common.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / cache.py |
DynamoDBCache.__init__ |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / cache.py |
DynamoDBCache.get |
|
11 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / cache.py |
DynamoDBCache.set |
|
6 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / cache.py |
DynamoDBCache.batch_get |
|
14 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / cache.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / models.py |
(no function) |
|
43 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / processor.py |
BulkProcessor.__init__ |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / processor.py |
BulkProcessor.process_csv |
|
31 |
6 |
0 |
|
81% |
| src / ai_lls_lib / core / processor.py |
BulkProcessor._find_phone_column |
|
11 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / processor.py |
BulkProcessor.generate_results_csv |
|
25 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / processor.py |
BulkProcessor.process_csv_stream |
|
39 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / processor.py |
BulkProcessor.generate_results_csv_stream |
|
36 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / processor.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / verifier.py |
PhoneVerifier.__init__ |
|
3 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / verifier.py |
PhoneVerifier.normalize_phone |
|
8 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / verifier.py |
PhoneVerifier.verify |
|
13 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / verifier.py |
PhoneVerifier._check_line_type |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / verifier.py |
PhoneVerifier._check_dnc |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / core / verifier.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / __init__.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / file_service.py |
_get_filename |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / file_service.py |
_map_file_fields |
|
14 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / file_service.py |
_map_admin_fields |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / file_service.py |
FileService.__init__ |
|
9 |
4 |
0 |
|
56% |
| src / ai_lls_lib / files / file_service.py |
FileService._query_all_user_files |
|
12 |
2 |
0 |
|
83% |
| src / ai_lls_lib / files / file_service.py |
FileService.list_user_files |
|
15 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / file_service.py |
FileService.list_user_files_admin |
|
7 |
0 |
0 |
|
100% |
| src / ai_lls_lib / files / file_service.py |
(no function) |
|
23 |
3 |
2 |
|
87% |
| src / ai_lls_lib / key_management.py |
generate_key_id |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / key_management.py |
generate_managed_key |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / key_management.py |
compute_key_hash |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / key_management.py |
validate_expiration_days |
|
1 |
0 |
0 |
|
100% |
| src / ai_lls_lib / key_management.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / __init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / credit_manager.py |
InsufficientCreditsError.__init__ |
|
3 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.__init__ |
|
9 |
1 |
0 |
|
89% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.get_balance |
|
13 |
1 |
0 |
|
92% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.add_credits |
|
12 |
1 |
0 |
|
92% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.deduct_credits |
|
11 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.set_credits |
|
14 |
1 |
0 |
|
93% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.set_subscription_state |
|
15 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.get_user_payment_info |
|
13 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.has_unlimited_access |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.set_stripe_customer_id |
|
8 |
1 |
0 |
|
88% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.idempotent_credit_grant |
|
12 |
3 |
0 |
|
75% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.grant_first_card_bonus |
|
12 |
3 |
0 |
|
75% |
| src / ai_lls_lib / payment / credit_manager.py |
CreditManager.check_and_deduct |
|
11 |
2 |
0 |
|
82% |
| src / ai_lls_lib / payment / credit_manager.py |
(no function) |
|
29 |
3 |
2 |
|
90% |
| src / ai_lls_lib / payment / models.py |
Plan.to_dict |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / models.py |
Plan.from_stripe_price |
|
22 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / models.py |
(no function) |
|
27 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.__init__ |
|
7 |
2 |
0 |
|
71% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.list_plans |
|
17 |
1 |
0 |
|
94% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.create_setup_intent |
|
7 |
7 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.attach_payment_method |
|
13 |
13 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.verify_payment_method |
|
7 |
7 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.charge_prepaid |
|
47 |
11 |
0 |
|
77% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.customer_has_payment_method |
|
6 |
6 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.list_payment_methods |
|
14 |
3 |
0 |
|
79% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager._get_or_create_customer |
|
17 |
13 |
0 |
|
24% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.create_subscription |
|
10 |
10 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.pause_subscription |
|
6 |
6 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.resume_subscription |
|
6 |
6 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.cancel_subscription |
|
6 |
6 |
0 |
|
0% |
| src / ai_lls_lib / payment / stripe_manager.py |
StripeManager.create_billing_portal_session |
|
6 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / stripe_manager.py |
(no function) |
|
27 |
3 |
0 |
|
89% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor.__init__ |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor.verify_and_parse |
|
11 |
1 |
0 |
|
91% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor.process_event |
|
21 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor.process_eventbridge_event |
|
11 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_checkout_completed |
|
12 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_subscription_created |
|
18 |
2 |
0 |
|
89% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_subscription_updated |
|
16 |
1 |
0 |
|
94% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._try_renewal_credit_grant |
|
28 |
10 |
0 |
|
64% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_subscription_deleted |
|
12 |
2 |
0 |
|
83% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_invoice_paid |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_invoice_failed |
|
3 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_payment_intent_succeeded |
|
19 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
WebhookProcessor._handle_dispute_created |
|
8 |
0 |
0 |
|
100% |
| src / ai_lls_lib / payment / webhook_processor.py |
(no function) |
|
35 |
5 |
0 |
|
86% |
| src / ai_lls_lib / providers / __init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / base.py |
VerificationProvider.verify_phone |
|
0 |
0 |
1 |
|
100% |
| src / ai_lls_lib / providers / base.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / exceptions.py |
ProviderError.__init__ |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / exceptions.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / external.py |
ExternalAPIProvider.__init__ |
|
6 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / external.py |
ExternalAPIProvider.verify_phone |
|
24 |
3 |
0 |
|
88% |
| src / ai_lls_lib / providers / external.py |
ExternalAPIProvider._map_line_type |
|
3 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / external.py |
ExternalAPIProvider.__del__ |
|
2 |
0 |
0 |
|
100% |
| src / ai_lls_lib / providers / external.py |
(no function) |
|
11 |
0 |
0 |
|
100% |