ai-lls-lib 1.5.0rc2__tar.gz → 1.5.0rc3__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.

Potentially problematic release.


This version of ai-lls-lib might be problematic. Click here for more details.

Files changed (32) hide show
  1. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/PKG-INFO +1 -1
  2. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/pyproject.toml +1 -1
  3. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/__init__.py +1 -1
  4. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/commands/stripe.py +8 -4
  5. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/env_loader.py +10 -4
  6. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/README.md +0 -0
  7. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/auth/__init__.py +0 -0
  8. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/auth/context_parser.py +0 -0
  9. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/__init__.py +0 -0
  10. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/__main__.py +0 -0
  11. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/aws_client.py +0 -0
  12. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/commands/__init__.py +0 -0
  13. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/commands/admin.py +0 -0
  14. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/commands/cache.py +0 -0
  15. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/commands/test_stack.py +0 -0
  16. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/cli/commands/verify.py +0 -0
  17. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/core/__init__.py +0 -0
  18. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/core/cache.py +0 -0
  19. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/core/models.py +0 -0
  20. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/core/processor.py +0 -0
  21. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/core/verifier.py +0 -0
  22. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/payment/__init__.py +0 -0
  23. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/payment/credit_manager.py +0 -0
  24. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/payment/models.py +0 -0
  25. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/payment/stripe_manager.py +0 -0
  26. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/payment/webhook_processor.py +0 -0
  27. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/providers/__init__.py +0 -0
  28. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/providers/base.py +0 -0
  29. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/providers/external.py +0 -0
  30. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/providers/stub.py +0 -0
  31. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/testing/__init__.py +0 -0
  32. {ai_lls_lib-1.5.0rc2 → ai_lls_lib-1.5.0rc3}/src/ai_lls_lib/testing/fixtures.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-lls-lib
3
- Version: 1.5.0rc2
3
+ Version: 1.5.0rc3
4
4
  Summary: Landline Scrubber core library - phone verification and DNC checking
5
5
  Author: LandlineScrubber Team
6
6
  Requires-Python: >=3.12,<4.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ai-lls-lib"
3
- version = "1.5.0-rc.2"
3
+ version = "1.5.0-rc.3"
4
4
  description = "Landline Scrubber core library - phone verification and DNC checking"
5
5
  authors = ["LandlineScrubber Team"]
6
6
  readme = "README.md"
@@ -17,7 +17,7 @@ from ai_lls_lib.core.verifier import PhoneVerifier
17
17
  from ai_lls_lib.core.processor import BulkProcessor
18
18
  from ai_lls_lib.core.cache import DynamoDBCache
19
19
 
20
- __version__ = "1.5.0-rc.2"
20
+ __version__ = "1.5.0-rc.3"
21
21
  __all__ = [
22
22
  "PhoneVerification",
23
23
  "BulkJob",
@@ -28,8 +28,9 @@ def seed_products(environment: str, api_key: Optional[str], dry_run: bool):
28
28
  if not api_key:
29
29
  api_key = get_stripe_key(environment)
30
30
  if not api_key:
31
+ env_prefix = 'STAGING' if environment == 'staging' else 'PROD'
31
32
  click.echo(f"Error: No Stripe API key found for {environment} environment", err=True)
32
- click.echo(f"Set {environment.upper()}_STRIPE_SECRET_KEY or STRIPE_SECRET_KEY", err=True)
33
+ click.echo(f"Set {env_prefix}_STRIPE_SECRET_KEY or STRIPE_SECRET_KEY", err=True)
33
34
  return
34
35
  click.echo(f"Using Stripe key for {environment} environment", err=True)
35
36
 
@@ -283,8 +284,9 @@ def list_products(environment: str, api_key: Optional[str], output_json: bool):
283
284
  if not api_key:
284
285
  api_key = get_stripe_key(environment)
285
286
  if not api_key:
287
+ env_prefix = 'STAGING' if environment == 'staging' else 'PROD'
286
288
  click.echo(f"Error: No Stripe API key found for {environment} environment", err=True)
287
- click.echo(f"Set {environment.upper()}_STRIPE_SECRET_KEY or STRIPE_SECRET_KEY", err=True)
289
+ click.echo(f"Set {env_prefix}_STRIPE_SECRET_KEY or STRIPE_SECRET_KEY", err=True)
288
290
  return
289
291
 
290
292
  try:
@@ -327,11 +329,13 @@ def setup_webhook(endpoint_url: Optional[str], environment: str, api_key: Option
327
329
  if not api_key:
328
330
  api_key = get_stripe_key(environment)
329
331
  if not api_key:
332
+ env_prefix = 'STAGING' if environment == 'staging' else 'PROD'
330
333
  click.echo(f"Error: No Stripe API key found for {environment} environment", err=True)
331
- click.echo(f"Set {environment.upper()}_STRIPE_SECRET_KEY or STRIPE_SECRET_KEY", err=True)
334
+ click.echo(f"Set {env_prefix}_STRIPE_SECRET_KEY or STRIPE_SECRET_KEY", err=True)
332
335
  return
333
336
 
334
337
  stripe.api_key = api_key
338
+ env_prefix = 'STAGING' if environment == 'staging' else 'PROD'
335
339
 
336
340
  if print_secret:
337
341
  # List existing webhooks
@@ -371,7 +375,7 @@ def setup_webhook(endpoint_url: Optional[str], environment: str, api_key: Option
371
375
  click.echo(f" ID: {webhook.id}")
372
376
  click.echo(f" Secret: {webhook.secret}")
373
377
  click.echo(f"\nAdd this to your environment:")
374
- click.echo(f" {environment.upper()}_STRIPE_WEBHOOK_SECRET={webhook.secret}")
378
+ click.echo(f" {env_prefix}_STRIPE_WEBHOOK_SECRET={webhook.secret}")
375
379
 
376
380
  except stripe.error.StripeError as e:
377
381
  click.echo(f"Error creating webhook: {e}", err=True)
@@ -74,10 +74,13 @@ def get_stripe_key(environment: str, env_vars: Optional[Dict[str, str]] = None)
74
74
  env_vars = load_environment_config()
75
75
 
76
76
  # Map environment names to prefixes
77
- env_prefix = {
77
+ env_prefix_map = {
78
78
  'staging': 'STAGING',
79
79
  'production': 'PROD'
80
- }.get(environment, environment.upper())
80
+ }
81
+ if environment not in env_prefix_map:
82
+ raise ValueError(f"Invalid environment '{environment}'. Must be 'staging' or 'production'")
83
+ env_prefix = env_prefix_map[environment]
81
84
 
82
85
  # Try environment-specific key first
83
86
  env_key = f"{env_prefix}_STRIPE_SECRET_KEY"
@@ -108,10 +111,13 @@ def get_env_variable(key: str, environment: Optional[str] = None,
108
111
  env_vars = load_environment_config()
109
112
 
110
113
  if environment:
111
- env_prefix = {
114
+ env_prefix_map = {
112
115
  'staging': 'STAGING',
113
116
  'production': 'PROD'
114
- }.get(environment, environment.upper())
117
+ }
118
+ if environment not in env_prefix_map:
119
+ raise ValueError(f"Invalid environment '{environment}'. Must be 'staging' or 'production'")
120
+ env_prefix = env_prefix_map[environment]
115
121
 
116
122
  # Try environment-specific key first
117
123
  env_key = f"{env_prefix}_{key}"
File without changes